Rails Test 1 Model
Nov 30, 16
Model에서 테스트 해야 할 것. 유효한 attritutes를 넘겼을 때 model의 create method가 유효해야한다. 유효하지 않은 데이터는 유효성 검사를 통과하지 않아야 한다. 클래스 매소드(+scope)와 인스턴스 매소드가 예상한것과 같이 동작한다. item.rb class Item < ActiveRecord::Base ... validate :name, presence: true 1) 유효한 attritutes를 넘겼을 때 model의 create method가 유효해야한다. context 'with valid attritues' do it '#create' do expect { Item.create(name: "A") }.to change(Item, :count).by(1) 2) 유효하지 않은 데이터는 유효성 검사를 통과하지 않아야 한다. item = Item.new() item.valid?...
Jekyll에서 다른 post 링크를 넣는 방법
Nov 30, 16
Post에서 다른 post(2016-11-30-filename.md)의 링크를 넣는 방법.
{% post_url 2016-11-30-filename %}
Jekyll documentation에서는 sub directory가 있는 경우 subDirectory를 명시하도록 되어있지만, 시도해보니, directory path를 넣으면 compile error가 발생하고 subdirectory없이 파일명으로만 하였더니, 링크가 제대로 생성되었다.
post_url을 이용해서 링크를 만드는 방법
[link_text]({% post_url 2016-11-30-filename %})
jekyll doc
stackoverflow
Jekyll에서 forloop index 알아내기
Nov 30, 16
jekyll은 liquid 문법을 사용합니다.
for loop에서 몇번 째 iteration인지 아는 방법
{% for category in page.categories %}
{{ forloop.index }}
{% endfor %}
forloop.index 는 1 부터 시작합니다. (왜 0이 아닌거지?)
liquid reference - forloop
Gem - Factory_girl
Nov 30, 16
FactoryGirl Rails v4.4 기준입니다. Fixture 쓰지 말고, FactoryGirl 쓰자. Fixture는 Active Record를 우회해서 validation이 안된다. 데이터가 쉽게 변경되어서 test code만큼 test db 관리에 신경써야 된다. Valid / invalid factory 한 모델에 대해 factory를 만들 때 기본적으로 valid / invalid factory를 생성해둔다. # app/models/item.rb class Item < ActiveRecord::Base validates :name, presence: true ... end # spec/factories.rb factory :item do sequence(:name) { |n| "Item_#{n}"} ... factory :invalid_item do name nil end end valid/invalid factory는 attributes_for method를 이용해서...
Gem Nokogiri - 웹페이지 크롤링
Nov 28, 16
Nokogiri는 selector를 이용해 웹페이지의 정보를 가져올 수 있게 해줍니다. 링크를 타고 가면서 크롤링 하는 것을 원할 경우엔, Mechanize를 사용하세요. Nokogiri gem 설치 gem install nokogiri 설치 오류시 limbiconv error는 nokogiri tutorial 참고 libxml이 없는 경우엔 설치 brew install libxml xz 오류시 workaround nokogiri-issue-1483 brew uninstall xz 요약 doc = Nokogiri::HTML(open(url)) #CSS selector로 찾기 doc.css('nav ul.menu li a', 'article h2').each do |link| # attributes puts link.attributes["id"].value if link.attributes["id"] puts link.content end 한글 인코딩 문제 wolfapple doc...