Sha256: bdcb20ca3bbb3249364321414c6910c4e4b8ced5f7241205807cce1b793df4d8
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
module Amazon module Associates class Item < ApiResult # forward-declaration... end class BrowseNode < ApiResult xml_reader :id, :from => 'xmlns:BrowseNodeId', :required => true xml_reader :name, :from => 'Name' xml_reader :parent, :as => BrowseNode, :from => 'xmlns:BrowseNode', :in => 'xmlns:Ancestors' xml_reader :children, :as => [BrowseNode] xml_reader :top_sellers, :as => [Item] def self.find(browse_node_id, opts = {}, &block) Amazon::Associates.browse_node_lookup(opts.merge(:browse_node_id => browse_node_id), &block).browse_nodes.first end def initialize(id = nil, name = nil, parent = nil) @id = id @name = name @parent = parent end def to_s "#{@name}#{' : ' + @parent.to_s if @parent}" end def inspect "#<#{self.class}:#{@id} #{self}>" end def ==(other) return false unless other.respond_to?(:name, :id) @name == other.name and @id == other.id end {:brand => [:manufacturers, :custom_brands], :type => [:categories]}.each_pair do |name, aliases| define_method("#{name}?") do markers = ([name] + aliases).map {|n| n.to_s.titleize} return true if markers.include? instance_variable_get(:@name) parent = instance_variable_get :@parent while parent return true if markers.include? parent.name parent = parent.parent end false end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
amazon-associates-0.7.1 | lib/amazon-associates/types/browse_node.rb |