try

32
「安心・安全・安定・信頼」できるインターネットサービスを 株式会社クルウィット 井澤 志充 Rubyでトライ! Kanazawa.rb #7 13331日日曜日

Upload: yukimitsu-izawa

Post on 05-Dec-2014

970 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

  • 1. Ruby Kanazawa.rb #7 13331
  • 2. 213331
  • 3. () 213331
  • 4. () 213331
  • 5. () () 213331
  • 6. () () () 213331
  • 7. () () () 213331
  • 8. Ruby 313331
  • 9. Ruby NoMethodError: undefined method `XXX for nil:NilClass 313331
  • 10. Ruby NoMethodError: undefined method `XXX for nil:NilClass 1 313331
  • 11. 413331
  • 12. 413331
  • 13. 513331
  • 14. 513331
  • 15. 513331
  • 16. method 513331
  • 17. method 513331
  • 18. method 2 513331
  • 19. XML handlerole XML 613331
  • 20. Nokogiri http://nokogiri.org/ XML/HTML XPATH/CSS3 gem install nokogiri 713331
  • 21. 1 require nokogiri xml = Nokogiri::XML(open("kzrb.xml")) members = xml.xpath("//member") members.each { |member| puts member.attribute("handle").value if member.attribute("role").value == "staff" puts " =>staff" end } 813331
  • 22. xml members () => [#, # ] >, #, # ] >, # ] >] Role 913331
  • 23. 1 require nokogiri xml = Nokogiri::XML(open("kzrb.xml")) members = xml.xpath("//member") members.each { |member| puts member.attribute("handle").value if member.attribute("role").value == "staff" puts " =>staff" end } 1013331
  • 24. 1 % ruby xml.rb wtnabe =>staff libero =>staff kiyohara xml.rb:9:in `block in : undefined method `value for nil:NilClass (NoMethodError) from /Users/izawa/.rvm/gems/ruby-2.0.0-p0/gems/ nokogiri-1.5.9/lib/nokogiri/xml/node_set.rb:239:in `block in each : : 1113331
  • 25. 2 require nokogiri xml = Nokogiri::XML(open("kzrb.xml")) members = xml.xpath("//member") members.each { |member| puts member.attribute("handle").value if member.attribute("role") && member.attribute("role").value == "staff" puts " =>staff" end } 1213331
  • 26. 2 % ruby xml.rb wtnabe =>staff libero =>staff kiyohara % 1313331
  • 27. try Object#try NilClass#try active_support argumentblock Person.try(:nd, 1) @people.try(:collect) {|p| p.name} @person.try { |p| p "#{p.rst_name#{p.last_name}" } Object#send NoMethodError exception nil 1413331
  • 28. try require nokogiri xml = Nokogiri::XML(open("kzrb.xml")) members = xml.xpath("//member") members.each { |member| puts member.attribute("handle").value if member.attribute("role") && member.attribute("role").value == "staff" puts " =>staff" end } 1513331
  • 29. try require nokogiri xml = Nokogiri::XML(open("kzrb.xml")) members = xml.xpath("//member") members.each { |member| puts member.attribute("handle").value if member.attribute("role").try(:value) == "staff" puts " =>staff" end } 1513331
  • 30. try require nokogiri xml = Nokogiri::XML(open("kzrb.xml")) members = xml.xpath("//member") members.each { |member| puts member.attribute("handle").value if member.attribute("role").try(:value) == "staff" puts " =>staff" end } 1513331
  • 31. active_support 2.x require active_support active_support 3.x require active_support/core_ext ( active_support/all) 1613331
  • 32. Thank You! If you have any comments, please send to: Mail: [email protected] / [email protected] Twitter: @Yukimitsu_Izawa 1713331