Class: TrailGuide::Adapters::Participants::Unity
- Defined in:
- lib/trail_guide/adapters/participants/unity.rb
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
-
#unity ⇒ Object
readonly
Returns the value of attribute unity.
Instance Method Summary collapse
-
#initialize(&block) ⇒ Unity
constructor
A new instance of Unity.
- #new(context) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(&block) ⇒ Unity
Returns a new instance of Unity.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/trail_guide/adapters/participants/unity.rb', line 9 def initialize(&block) configure do |config| # TODO make visitor/user configuration more flexible, allow stuff like: # # config.visitor = -> (context) { context.cookies['visitor_id'] } # config.user = -> (context) { context.current_user.try(:id) } config. = nil config.user_id_key = :id config.user_adapter = TrailGuide::Adapters::Participants::Redis.configure do |config| config.namespace = 'unity:users' config.lookup = -> (user_id) { user_id } config.expiration = 1.year.seconds end # TODO use cookie or session adapter by default instead? config.visitor_adapter = TrailGuide::Adapters::Participants::Redis.configure do |config| config.namespace = 'unity:visitors' config.lookup = -> (visitor_id) { visitor_id } config.expiration = 1.year.seconds end config.anonymous_adapter = TrailGuide::Adapters::Participants::Anonymous yield(config) if block_given? end end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
7 8 9 |
# File 'lib/trail_guide/adapters/participants/unity.rb', line 7 def context @context end |
#unity ⇒ Object (readonly)
Returns the value of attribute unity.
7 8 9 |
# File 'lib/trail_guide/adapters/participants/unity.rb', line 7 def unity @unity end |
Instance Method Details
#new(context) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/trail_guide/adapters/participants/unity.rb', line 37 def new(context) @context = context @unity = TrailGuide::Unity.new if trailguide_context? unity.user_id ||= context.send(:try, :trailguide_user).try(configuration.user_id_key) unity.visitor_id ||= context.send(:try, :trailguide_visitor) end if logged_in_context? unity.user_id ||= context.send(:current_user).send(configuration.user_id_key) end if logged_out_context? unity.visitor_id ||= context.send(:cookies)[configuration.] end unity.sync! merge! if unity.synced? adapter = configuration.send("#{context_type}_adapter".to_sym) if anonymous_context? adapter.new(context) else adapter.new(unity.send("#{context_type}_id".to_sym)) end end |