class Beatport::Collection

Attributes

applied_date_filters[R]
applied_facets[R]
count[R]
date_filters[R]
facets[R]
host[R]
next_query[R]
page[R]
path[R]
per_page[R]
per_page_options[R]
query[R]
spellcheck[R]
total_pages[R]

Public Class Methods

new(klass, data) click to toggle source
# File lib/beatport/collection.rb, line 15
def initialize(klass, data)
  raise ArgumentError, "Invalid data passed to Collection.new" unless data.is_a?(Hash) && data['results'].is_a?(Array)

  data['metadata'].each do |k, v|
    instance_variable_set(:"@#{k}", v)
  end

  @results = if klass == :auto
    data['results'].map do |r|
      item_klass = Support::Inflector.constantize("Beatport::Catalog::#{r['type'].capitalize}")
      item_klass.new(r)
    end
  else
    data['results'].map { |r| klass.new(r) }
  end
end

Public Instance Methods

grouped() click to toggle source
# File lib/beatport/collection.rb, line 32
def grouped
  group_by { |i| i.type.capitalize }
end