Class: MixpanelMagicLamp::Formatter

Inherits:
Object
  • Object
show all
Defined in:
lib/mixpanel_magic_lamp/formatter.rb

Constant Summary collapse

DEFAULT =
'values'

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ Formatter

Returns a new instance of Formatter.



7
8
9
# File 'lib/mixpanel_magic_lamp/formatter.rb', line 7

def initialize(request)
  @response = request.response.handled_response.dup
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object



35
36
37
38
# File 'lib/mixpanel_magic_lamp/formatter.rb', line 35

def method_missing(method, *args)
  puts "Format '#{method}' not available. Formatting as 'to_#{DEFAULT}' instead."
  send :"to_#{DEFAULT}"
end

Instance Method Details

#convert(format: DEFAULT) ⇒ Object



11
12
13
# File 'lib/mixpanel_magic_lamp/formatter.rb', line 11

def convert(format: DEFAULT)
  send :"to_#{format}"  
end

#to_lineObject



19
20
21
# File 'lib/mixpanel_magic_lamp/formatter.rb', line 19

def to_line
  @response['data']
end

#to_pieObject



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/mixpanel_magic_lamp/formatter.rb', line 23

def to_pie
  @response['data']['series'] = [ @response['data']['series'].first,
                                  @response['data']['series'].last ]
  date_for_value = @response['data']['series'].first

  @response['data']['values'].each do |section, values|
    @response['data']['values'][section] = @response['data']['values'][section][date_for_value]
  end

  @response['data']
end

#to_valuesObject



15
16
17
# File 'lib/mixpanel_magic_lamp/formatter.rb', line 15

def to_values
  @response['data']['values']
end