Class: Unveil::Feature

Inherits:
Object
  • Object
show all
Defined in:
lib/unveil/feature.rb

Instance Method Summary collapse

Constructor Details

#initialize(attrs) ⇒ Feature

Returns a new instance of Feature.



3
4
5
# File 'lib/unveil/feature.rb', line 3

def initialize(attrs)
  @attributes = attrs
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/unveil/feature.rb', line 45

def method_missing(method, *args, &block)
  if attributes.has_key?(method)
    attributes[method]
  else
    super
  end
end

Instance Method Details

#activate_group(group) ⇒ Object



19
20
21
22
# File 'lib/unveil/feature.rb', line 19

def activate_group(group)
  group = group.is_a?(Unveil::Group) ? group.name : group
  Unveil.post 'features/activate_group', feature: name, group: group
end

#activate_percentage(percentage) ⇒ Object



37
38
39
# File 'lib/unveil/feature.rb', line 37

def activate_percentage(percentage)
  Unveil.post 'features/activate_percentage', feature: name, percentage: percentage
end

#activate_user(user_id) ⇒ Object



29
30
31
# File 'lib/unveil/feature.rb', line 29

def activate_user(user_id)
  Unveil.post 'features/activate_user', feature: name, user_id: user_id
end

#attributesObject



7
8
9
# File 'lib/unveil/feature.rb', line 7

def attributes
  @attributes.with_indifferent_access
end

#deactivate_allObject



15
16
17
# File 'lib/unveil/feature.rb', line 15

def deactivate_all
  Unveil.post 'features/deactivate_all', feature: name
end

#deactivate_group(group) ⇒ Object



24
25
26
27
# File 'lib/unveil/feature.rb', line 24

def deactivate_group(group)
  group = group.is_a?(Unveil::Group) ? group.name : group
  Unveil.post 'features/deactivate_group', feature: name, group: group
end

#deactivate_percentageObject



41
42
43
# File 'lib/unveil/feature.rb', line 41

def deactivate_percentage
  Unveil.post 'features/deactivate_percentage', feature: name
end

#deactivate_user(user_id) ⇒ Object



33
34
35
# File 'lib/unveil/feature.rb', line 33

def deactivate_user(user_id)
  Unveil.post 'features/deactivate_user', feature: name, user_id: user_id
end

#enabled(user_id) ⇒ Object



11
12
13
# File 'lib/unveil/feature.rb', line 11

def enabled(user_id)
  JSON.parse(Unveil.get("features/#{name}/enabled/#{user_id}").body)['enabled']
end