Class: TicketEvolution::Collection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/ticket_evolution/core/collection.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Collection

Returns a new instance of Collection.



12
13
14
15
# File 'lib/ticket_evolution/core/collection.rb', line 12

def initialize(options = {})
  options.each {|k,v| send("#{k}=", v)}
  @entries ||= []
end

Instance Attribute Details

#balance_sumObject

Returns the value of attribute balance_sum.



3
4
5
# File 'lib/ticket_evolution/core/collection.rb', line 3

def balance_sum
  @balance_sum
end

#current_pageObject

Returns the value of attribute current_page.



3
4
5
# File 'lib/ticket_evolution/core/collection.rb', line 3

def current_page
  @current_page
end

#entriesObject Also known as: all

Returns the value of attribute entries.



3
4
5
# File 'lib/ticket_evolution/core/collection.rb', line 3

def entries
  @entries
end

#per_pageObject

Returns the value of attribute per_page.



3
4
5
# File 'lib/ticket_evolution/core/collection.rb', line 3

def per_page
  @per_page
end

#status_codeObject Also known as: code

Returns the value of attribute status_code.



3
4
5
# File 'lib/ticket_evolution/core/collection.rb', line 3

def status_code
  @status_code
end

#total_entriesObject

Returns the value of attribute total_entries.



3
4
5
# File 'lib/ticket_evolution/core/collection.rb', line 3

def total_entries
  @total_entries
end

#total_sumObject

Returns the value of attribute total_sum.



3
4
5
# File 'lib/ticket_evolution/core/collection.rb', line 3

def total_sum
  @total_sum
end

#unique_categoriesObject

Returns the value of attribute unique_categories.



3
4
5
# File 'lib/ticket_evolution/core/collection.rb', line 3

def unique_categories
  @unique_categories
end

Class Method Details

.build_from_response(response, entries_key, singular_class) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/ticket_evolution/core/collection.rb', line 17

def self.build_from_response(response, entries_key, singular_class)
  entries = response.body[entries_key] || []
  values = {
    :status_code => response.response_code,
    :total_entries => response.body['total_entries'],
    :per_page => response.body['per_page'],
    :current_page => response.body['current_page'],
    :entries => entries.collect do |entry|
      singular_class.new(entry.merge({:connection => response.body[:connection]}))
    end
  }
  values[:unique_categories] = response.body['unique_categories'] if response.body['unique_categories']
  values[:balance_sum] = response.body['balance_sum'] if response.body['balance_sum']
  values[:total_sum] = response.body['total_sum'] if response.body['total_sum']
  new(values)
end