Sha256: c68b8b22e7270d44dc7d409c842ceaa0542ab4ff8bf7ba0ef7424c9c42049a41

Contents?: true

Size: 639 Bytes

Versions: 5

Compression:

Stored size: 639 Bytes

Contents

module Mixpal
  class Revenue
    attr_reader :amount, :properties

    def initialize(amount, properties)
      @amount = amount
      @properties = properties
    end

    def render
      args = "#{amount}, #{properties_as_js_object_for_mixpanel}"
      "mixpanel.people.track_charge(#{args});".html_safe
    end

    def to_store
      {
        'amount' => amount,
        'properties' => properties
      }
    end

    def self.from_store(data)
      new(data['amount'], data['properties'])
    end

    private

    def properties_as_js_object_for_mixpanel
      Mixpal::Util.hash_to_js_object_string(properties)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mixpal-0.5.0 lib/mixpal/revenue.rb
mixpal-0.4.2 lib/mixpal/revenue.rb
mixpal-0.4.1 lib/mixpal/revenue.rb
mixpal-0.4.0 lib/mixpal/revenue.rb
mixpal-0.3.0 lib/mixpal/revenue.rb