Sha256: ac01fbd8fed15ed9f772df8fb6acf1eeb0cdf23058631b712b452dde1ab3d38d
Contents?: true
Size: 903 Bytes
Versions: 2
Compression:
Stored size: 903 Bytes
Contents
module Mixpal class User attr_reader :properties def initialize(properties) @properties = properties end def render "mixpanel.people.set(#{properties_as_js_object_for_mixpanel});".html_safe end def to_store { properties: properties, } end def self.from_store(data) new(data[:properties]) end private def properties_as_js_object_for_mixpanel Mixpal::Util.hash_to_js_object_string(properties_for_mixpanel) end # Isolate special properties and rename their keys to align with # Mixpanel's naming. def properties_for_mixpanel Hash[properties.map {|k, v| [mixpanel_special_properties_map[k] || k, v] }] end def mixpanel_special_properties_map { name: "$name", email: "$email", created_at: "$created", }.with_indifferent_access end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mixpal-0.0.5 | lib/mixpal/user.rb |
mixpal-0.0.4 | lib/mixpal/user.rb |