Sha256: decd3a18181e3602874d2bb57f9d21934fa98f4d04726e27c20514055f857a5d

Contents?: true

Size: 1.69 KB

Versions: 8

Compression:

Stored size: 1.69 KB

Contents

module Awis
  module Models
    class CategoryListings < Base
      attr_accessor :count, :recursive_count, :listings

      def initialize(response)
        @listings = []
        setup_data! loading_response(response)
      end

      def setup_data!(response)
        category_listings = []

        response.each_node do |node, path|
          text = node.inner_xml
          text = text.to_i if text.to_i.to_s === text
          text = nil if (text.class == String && text.empty?)

          if node.name == 'aws:RequestId'
            @request_id ||= text
          elsif node.name == 'aws:StatusCode'
            @status_code ||= text
          elsif node.name == 'aws:Count'
            @count ||= text
          elsif node.name == 'aws:RecursiveCount'
            @recursive_count ||= text
          elsif node.name == 'aws:DataUrl' && path == "#{base_node_name}/aws:DataUrl"
            category_listings << { data_url: text }
          elsif node.name == 'aws:Title' && path == "#{base_node_name}/aws:Title"
            category_listings << { title: text }
          elsif node.name == 'aws:PopularityRank' && path == "#{base_node_name}/aws:PopularityRank"
            category_listings << { popularity_rank: text }
          elsif node.name == 'aws:Description' && path == "#{base_node_name}/aws:Description"
            category_listings << { description: text }
          end
        end

        relationship_collections(@listings, category_listings, 4, Listing)
      end

      def base_node_name
        "#{root_node_name}/aws:CategoryListings/aws:Listings/aws:Listing"
      end
    end

    class Listing < BaseEntity
      attr_accessor :data_url, :title, :popularity_rank, :description
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
awis-sdk-ruby-1.0.0 lib/awis/models/category_listings.rb
awis-sdk-ruby-0.1.1 lib/awis/models/category_listings.rb
awis-sdk-ruby-0.1.0 lib/awis/models/category_listings.rb
awis-sdk-ruby-0.0.9 lib/awis/models/category_listings.rb
awis-sdk-ruby-0.0.8 lib/awis/models/category_listings.rb
awis-sdk-ruby-0.0.7 lib/awis/models/category_listings.rb
awis-sdk-ruby-0.0.6 lib/awis/models/category_listings.rb
awis-sdk-ruby-0.0.5 lib/awis/models/category_listings.rb