module MixTape::Builder

Public Instance Methods

define(name, desc = '') { |*args| ... } click to toggle source
# File lib/mix_tape/builder.rb, line 16
def define(name, desc = '', &block)
  @@mix_tape << [name, desc]

  MixTape.define_singleton_method("track_#{name}") do |*args|
    data = yield(*args)
    distinct_id = data.delete(:distinct_id)
    MixTape.client.track distinct_id, name.to_s, data
  end

  MixTape.define_singleton_method("set_#{name}") do |id, *args|
    args = yield(*args)
    ip = args['$ip'] || args[:$ip] || args[:ip]

    MixTape.client.people.set id, args, ip
  end
end
definition(&block) click to toggle source
# File lib/mix_tape/builder.rb, line 12
def definition(&block)
  block.arity < 1 ? self.instance_eval(&block) : block.call(self) if block_given?
end
method_missing(key, *arguments, &block) click to toggle source
# File lib/mix_tape/builder.rb, line 33
def method_missing(key, *arguments, &block)
  define(key, arguments.first, &block)
end
mix_tape() click to toggle source
# File lib/mix_tape/builder.rb, line 8
def mix_tape
  @@mix_tape
end