Class: SFanalytics::SFa

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSFa

Returns a new instance of SFa.



12
13
14
# File 'lib/sfanalytics.rb', line 12

def initialize()
  @line_items = ''
end

Instance Attribute Details

#analytics_idObject (readonly)

Returns the value of attribute analytics_id.



5
6
7
# File 'lib/sfanalytics.rb', line 5

def analytics_id
  @analytics_id
end

#line_itemsObject (readonly)

Returns the value of attribute line_items.



5
6
7
# File 'lib/sfanalytics.rb', line 5

def line_items
  @line_items
end

#transactionObject (readonly)

Returns the value of attribute transaction.



5
6
7
# File 'lib/sfanalytics.rb', line 5

def transaction
  @transaction
end

#transaction_idObject (readonly)

Returns the value of attribute transaction_id.



5
6
7
# File 'lib/sfanalytics.rb', line 5

def transaction_id
  @transaction_id
end

Instance Method Details

#add_line_item(item) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/sfanalytics.rb', line 50

def add_line_item(item)
  raise "No Transaction Defined" unless(@transaction)

  template = File.read(File.dirname(__FILE__) + '/../templates/line_item.html.haml')

  obj = Object.new
  Haml::Engine.new(template).def_method(obj, :render, :transaction, :item)
  @line_items << obj.render(
    :transaction => @transaction_id,
    :item => item
  )
  
  return true
end

#add_transaction(transaction) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/sfanalytics.rb', line 35

def add_transaction(transaction)
  
  template = File.read(File.dirname(__FILE__) + '/../templates/transaction.html.haml')
   
  obj = Object.new
  Haml::Engine.new(template).def_method(obj, :render, :analytics_id, :transaction)
  @transaction = obj.render(
    :analytics_id => @analytics_id,
    :transaction => transaction
  )

  @transaction_id = transaction[:id]
  return true
end

#generate(analytics_id) ⇒ Object

Raises:

  • (ArgumentError)


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

def generate(analytics_id)
  template = File.read(File.dirname(__FILE__) + '/../templates/analytics.html.haml')

  raise ArgumentError.new if ! analytics_id.match(/UA-\d{0,8}-\d{0,3}/)
  @analytics_id = analytics_id
  
  obj = Object.new
  Haml::Engine.new(template).def_method(obj, :render, :analytics_id, :analytics_transaction, :line_items)
  return obj.render(
    :analytics_id => @analytics_id,
    :analytics_transaction => @transaction,
    :line_items => @line_items
  )
  
  obj = Object.new
  Haml::Engine.new(template).def_method(obj, :render, :analytics_id)
  return obj.render(:analytics_id => "Hello!")
end