module Eve::API::Response::Result
Public Instance Methods
[](name)
click to toggle source
# File lib/eve/api/response/result.rb, line 73 def [](name) send name end
all_fields()
click to toggle source
# File lib/eve/api/response/result.rb, line 2 def all_fields @all_fields ||= [] end
delegate_to_child(field_name, node)
click to toggle source
# File lib/eve/api/response/result.rb, line 28 def delegate_to_child(field_name, node) all_fields << field_name.underscore klass = (class << self; self; end) if !node.children.empty? && node.children.reject { |c| c.text? }.empty? # this seems less correct but specs pass this way if node.name != 'error' child = literal_value_for node.content.strip else child = Eve::API::Response::Row.new node end # if node.attributes.empty? # # node contains only text # child = literal_value_for node.content.strip # else # child = Eve::API::Response::Row.new node # end else child = Eve::API::Response::Row.new node end klass.module_eval do define_method field_name do child end if field_name.underscore != field_name alias_method field_name.underscore, field_name end end child end
delegate_to_rowset(field_name, rowset)
click to toggle source
# File lib/eve/api/response/result.rb, line 6 def delegate_to_rowset(field_name, rowset) all_fields << field_name.underscore klass = (class << self; self; end) rowset = Eve::API::Response::Rowset.new rowset klass.module_eval do define_method field_name do rowset end if field_name.underscore != field_name alias_method field_name.underscore, field_name end end rowset end
literal_value_for(str)
click to toggle source
# File lib/eve/api/response/result.rb, line 22 def literal_value_for(str) YAML::load str rescue (defined?(Psych::SyntaxError) ? Psych::SyntaxError : StandardError) str end
parse_children(node)
click to toggle source
# File lib/eve/api/response/result.rb, line 60 def parse_children(node) node.children.each do |child| next if child.text? case child.name when 'rowset' rowset = delegate_to_rowset child.attributes['name'].value, child rowsets << rowset else delegate_to_child child.name, child end end end
to_hash()
click to toggle source
# File lib/eve/api/response/result.rb, line 77 def to_hash all_fields.inject({}) do |hash, field_name| hash[field_name] = self[field_name] hash end end
to_yaml(*args)
click to toggle source
# File lib/eve/api/response/result.rb, line 84 def to_yaml(*args) to_hash.to_yaml(*args) end