Module: FeatureFlagger::Model

Defined in:
lib/feature_flagger/model.rb

Overview

Model provides convinient methods for Rails Models class Account

include FeatureFlagger::Model

end

Example: Account.first.rollout?([:email_marketing, :new_awesome_feature]) #=> true

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



11
12
13
# File 'lib/feature_flagger/model.rb', line 11

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#release(*feature_key) ⇒ Object



27
28
29
30
31
# File 'lib/feature_flagger/model.rb', line 27

def release(*feature_key)
  resource_name = self.class.rollout_resource_name
  feature = Feature.new(feature_key, resource_name)
  FeatureFlagger.control.release(feature.key, id)
end

#release!(*feature_key) ⇒ Object

DEPRECATED: Please use release instead.



22
23
24
25
# File 'lib/feature_flagger/model.rb', line 22

def release!(*feature_key)
  warn "[DEPRECATION] `release!` is deprecated.  Please use `release` instead."
  release(*feature_key)
end

#rollout?(*feature_key) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
# File 'lib/feature_flagger/model.rb', line 15

def rollout?(*feature_key)
  resource_name = self.class.rollout_resource_name
  feature = Feature.new(feature_key, resource_name)
  FeatureFlagger.control.rollout?(feature.key, id)
end

#unrelease(*feature_key) ⇒ Object



39
40
41
42
43
# File 'lib/feature_flagger/model.rb', line 39

def unrelease(*feature_key)
  resource_name = self.class.rollout_resource_name
  feature = Feature.new(feature_key, resource_name)
  FeatureFlagger.control.unrelease(feature.key, id)
end

#unrelease!(*feature_key) ⇒ Object

DEPRECATED: Please use unrelease instead.



34
35
36
37
# File 'lib/feature_flagger/model.rb', line 34

def unrelease!(*feature_key)
  warn "[DEPRECATION] `unrelease!` is deprecated.  Please use `unrelease` instead."
  unrelease(*feature_key)
end