Sha256: f3f3d47cc14f9b3d11177159095c539907d74303dc07a71151cce4c6974f5f60

Contents?: true

Size: 1.45 KB

Versions: 1

Compression:

Stored size: 1.45 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({: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

1 entries across 1 versions & 1 rubygems

Version Path
td-logger-0.3.1 lib/td/logger/event.rb