Module: FeatureFlagger::Model::ClassMethods

Defined in:
lib/feature_flagger/model.rb

Instance Method Summary collapse

Instance Method Details

#all_released_ids_for(*feature_key) ⇒ Object



49
50
51
52
53
# File 'lib/feature_flagger/model.rb', line 49

def all_released_ids_for(*feature_key)
  feature_key.flatten!
  feature = Feature.new(feature_key, rollout_resource_name)
  FeatureFlagger.control.resource_ids(feature.key)
end

#release_to_all(*feature_key) ⇒ Object



55
56
57
58
# File 'lib/feature_flagger/model.rb', line 55

def release_to_all(*feature_key)
  feature = Feature.new(feature_key, rollout_resource_name)
  FeatureFlagger.control.release_to_all(feature.key)
end

#released_features_to_allObject



65
66
67
# File 'lib/feature_flagger/model.rb', line 65

def released_features_to_all
  FeatureFlagger.control.released_features_to_all
end

#released_id?(resource_id, *feature_key) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
47
# File 'lib/feature_flagger/model.rb', line 44

def released_id?(resource_id, *feature_key)
  feature = Feature.new(feature_key, rollout_resource_name)
  FeatureFlagger.control.rollout?(feature.key, resource_id)
end

#rollout_resource_nameObject



69
70
71
72
73
74
75
76
77
# File 'lib/feature_flagger/model.rb', line 69

def rollout_resource_name
  klass_name = self.to_s
  klass_name.gsub!(/::/, '_')
  klass_name.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
  klass_name.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
  klass_name.tr!("-", "_")
  klass_name.downcase!
  klass_name
end

#unrelease_to_all(*feature_key) ⇒ Object



60
61
62
63
# File 'lib/feature_flagger/model.rb', line 60

def unrelease_to_all(*feature_key)
  feature = Feature.new(feature_key, rollout_resource_name)
  FeatureFlagger.control.unrelease_to_all(feature.key)
end