Class: Determinator::ActorControl

Inherits:
Object
  • Object
show all
Defined in:
lib/determinator/actor_control.rb

Overview

A decorator to provide syntactic sugar for Determinator::Control. Useful for contexts where the actor remains constant (eg. inside the request cycle in a webapp)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(controller, id: nil, guid: nil, default_constraints: {}) ⇒ ActorControl

Returns a new instance of ActorControl.



8
9
10
11
12
13
# File 'lib/determinator/actor_control.rb', line 8

def initialize(controller, id: nil, guid: nil, default_constraints: {})
  @id = id
  @guid = guid
  @default_constraints = default_constraints
  @controller = controller
end

Instance Attribute Details

#default_constraints ⇒ Object (readonly)

Returns the value of attribute default_constraints.



6
7
8
# File 'lib/determinator/actor_control.rb', line 6

def default_constraints
  @default_constraints
end

#guid ⇒ Object (readonly)

Returns the value of attribute guid.



6
7
8
# File 'lib/determinator/actor_control.rb', line 6

def guid
  @guid
end

#id ⇒ Object (readonly)

Returns the value of attribute id.



6
7
8
# File 'lib/determinator/actor_control.rb', line 6

def id
  @id
end

Instance Method Details

#feature_flag_on?(name, constraints: {}) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
29
30
31
# File 'lib/determinator/actor_control.rb', line 24

def feature_flag_on?(name, constraints: {})
  controller.feature_flag_on?(
    name,
    id: id,
    guid: guid,
    constraints: default_constraints.merge(constraints)
  )
end

#inspect ⇒ Object



33
34
35
# File 'lib/determinator/actor_control.rb', line 33

def inspect
  "#<Determinator::ActorControl id=#{id.inspect} guid=#{guid.inspect}>"
end

#which_variant(name, constraints: {}) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/determinator/actor_control.rb', line 15

def which_variant(name, constraints: {})
  controller.which_variant(
    name,
    id: id,
    guid: guid,
    constraints: default_constraints.merge(constraints)
  )
end