inky-rb
inky-rb copied to clipboard
Use children instead of elements
Nokogiri, when run with JRuby, doesn't seem to like having css called on its elements, if they are missing (empty).
ActionView::Template::Error:
undefined method `root' for nil:NilClass
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/nokogiri-1.9.1-java/lib/nokogiri/xml/searchable.rb:224:in `extract_params'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/nokogiri-1.9.1-java/lib/nokogiri/xml/node_set.rb:80:in `css'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky/component_factory.rb:97:in `_transform_columns'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky/component_factory.rb:8:in `component_factory'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky.rb:54:in `transform_doc'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky.rb:52:in `block in transform_doc'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/nokogiri-1.9.1-java/lib/nokogiri/xml/node_set.rb:204:in `block in each'
# org/jruby/RubyInteger.java:206:in `upto'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/nokogiri-1.9.1-java/lib/nokogiri/xml/node_set.rb:203:in `each'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky.rb:51:in `transform_doc'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky.rb:52:in `block in transform_doc'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/nokogiri-1.9.1-java/lib/nokogiri/xml/node_set.rb:204:in `block in each'
# org/jruby/RubyInteger.java:206:in `upto'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/nokogiri-1.9.1-java/lib/nokogiri/xml/node_set.rb:203:in `each'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky.rb:51:in `transform_doc'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky.rb:52:in `block in transform_doc'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/nokogiri-1.9.1-java/lib/nokogiri/xml/node_set.rb:204:in `block in each'
# org/jruby/RubyInteger.java:206:in `upto'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/nokogiri-1.9.1-java/lib/nokogiri/xml/node_set.rb:203:in `each'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky.rb:51:in `transform_doc'
# /Users/ohm/.rbenv/versions/jruby-9.2.5.0/lib/ruby/gems/shared/gems/inky-rb-1.3.7.5/lib/inky.rb:43:in `release_the_kraken'
As this comment
https://github.com/zurb/inky-rb/blob/208ade8b9fa95afae0e81b8cd0bb23ab96371e5b/lib/inky/component_factory.rb#L108-L109
already states that elements work differently than children (even though children isn't used here) I believe all of these should just be replaced with children.