Sha256: d72c4fa894ca7ea744c315c17a8bc2845e9483f39c75d462fab7606859085e5f

Contents?: true

Size: 1.47 KB

Versions: 8

Compression:

Stored size: 1.47 KB

Contents

module TreasureData
module Logger

  module Event
    def self.use(mod)
      send(:include, mod)
    end
  end

  module EventPreset
    def action(name, record, uid=TD.event.attribute[:uid])
      unless uid
        raise ArgumentError, "wrong number of arguments (2 for 3): :uid attribute is required"
      end
      post(name, record.merge({:action=>name.to_s, :uid=>uid}))
    end

    def register(uid=TD.event.attribute[:uid])
      unless uid
        raise ArgumentError, "wrong number of arguments (0 for 1): :uid attribute is required"
      end
      action(:register, {}, uid)
    end

    def login(uid=TD.event.attribute[:uid])
      unless uid
        raise ArgumentError, "wrong number of arguments (0 for 1): :uid attribute is required"
      end
      action(:login, {}, uid)
    end

    def pay(category, sub_category, name, price, count, uid=TD.event.attribute[:uid])
      unless uid
        raise ArgumentError, "wrong number of arguments (3 for 4): :uid attribute is required"
      end
      action(:pay, {:category=>category, :sub_category=>sub_category, :name=>name, :price=>price, :count=>count}, uid)
    end
  end

  Event.use EventPreset

  class EventCollector
    def initialize
      @attribute = {}
    end

    attr_accessor :attribute

    def post(action, record={})
      TreasureData::Logger.post(action, @attribute.merge(record))
    end

    include Event
  end

  def self.event
    Thread.current[:td_event_collector] ||= EventCollector.new
  end

end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
td-logger-0.3.9 lib/td/logger/event.rb
td-logger-0.3.8 lib/td/logger/event.rb
td-logger-0.3.7 lib/td/logger/event.rb
td-logger-0.3.6 lib/td/logger/event.rb
td-logger-0.3.5 lib/td/logger/event.rb
td-logger-0.3.4 lib/td/logger/event.rb
td-logger-0.3.3 lib/td/logger/event.rb
td-logger-0.3.2 lib/td/logger/event.rb