Sha256: c3cdc0fc00056c3160d6f6746725f526d3722bc4d9a38c03d384deaf3d464336

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

module Songkickr
  class ResultSet
    attr_accessor :page, :per_page, :total_entries, :results, :result_type, :result_key_string, :status

    def initialize(result_hash = {})
      results_page = result_hash["resultsPage"]

      if results_page
        @status        = results_page["status"]                if results_page.include? "status"
        @page          = results_page["page"]                  if results_page.include? "page"
        @per_page      = results_page["per_page"]              if results_page.include? "per_page"
        @total_entries = results_page["totalEntries"]          if results_page.include? "totalEntries"
        @results       = parse_results results_page["results"] if results_page.include? "results"
      end
    end

    protected

      def parse_results(results = {})
        return [] unless results.include? result_key_string
        results[result_key_string].inject([]) do |result_items, result_item|
          result_items << eval("Songkickr::#{result_type}.new(#{result_item})")
        end
      end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
songkickr-0.5.3 lib/songkickr/result_set.rb
songkickr-0.5.2 lib/songkickr/result_set.rb
songkickr-0.5.0 lib/songkickr/result_set.rb