Sha256: d69e45e5df96586b2fa808be9b7796e2581132d8fbfb0f3d6cd9c435dcdf7601

Contents?: true

Size: 1.59 KB

Versions: 3

Compression:

Stored size: 1.59 KB

Contents

require 'haml'

class SFanalytics
  attr_reader :analytics_id, :transaction, :line_items, :transaction_id
  
  def initialize(analytics_id)
    raise ArgumentError.new if ! analytics_id.match(/UA-\d{0,8}-\d{0,3}/)
    @analytics_id = analytics_id
    @line_items = ''
  end
  
  def generate
    
    template = File.read(File.dirname(__FILE__) + '/../templates/analytics.html.haml')
    
    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

  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
  
  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
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sfanalytics-0.2.1 lib/sfanalytics.rb
sfanalytics-0.2.0 lib/sfanalytics.rb
sfanalytics-0.1.0 lib/sfanalytics.rb