module FeatureFlagger::Model

Model provides convinient methods for Rails Models class Account

include FeatureFlagger::Model

end

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

Public Class Methods

included(base) click to toggle source
# File lib/feature_flagger/model.rb, line 11
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

release(*feature_key) click to toggle source
# File lib/feature_flagger/model.rb, line 19
def release(*feature_key)
  self.class.release_id(feature_flagger_identifier, *feature_key)
end
released?(*feature_key, **options) click to toggle source
# File lib/feature_flagger/model.rb, line 15
def released?(*feature_key, **options)
  self.class.released_id?(feature_flagger_identifier, feature_key, options)
end
releases(options = {}) click to toggle source
# File lib/feature_flagger/model.rb, line 29
def releases(options = {})
  resource_name = self.class.feature_flagger_model_settings.entity_name
  FeatureFlagger.control.releases(resource_name, id, options)
end
unrelease(*feature_key) click to toggle source
# File lib/feature_flagger/model.rb, line 23
def unrelease(*feature_key)
  resource_name = self.class.feature_flagger_model_settings.entity_name
  feature = Feature.new(feature_key, resource_name)
  FeatureFlagger.control.unrelease(feature.key, id)
end

Private Instance Methods

feature_flagger_identifier() click to toggle source
# File lib/feature_flagger/model.rb, line 36
def feature_flagger_identifier
  public_send(self.class.feature_flagger_model_settings.identifier_field)
end