Class: Flipflop::FeaturesController::FeaturesPresenter
- Inherits:
-
Object
- Object
- Flipflop::FeaturesController::FeaturesPresenter
- Defined in:
- app/controllers/flipflop/features_controller.rb
Instance Attribute Summary collapse
-
#application_name ⇒ Object
readonly
Returns the value of attribute application_name.
-
#grouped_features ⇒ Object
readonly
Returns the value of attribute grouped_features.
-
#strategies ⇒ Object
readonly
Returns the value of attribute strategies.
Instance Method Summary collapse
- #grouped? ⇒ Boolean
-
#initialize(feature_set) ⇒ FeaturesPresenter
constructor
A new instance of FeaturesPresenter.
- #status(feature) ⇒ Object
- #strategy_status(strategy, feature) ⇒ Object
- #switch_url(strategy, feature) ⇒ Object
Constructor Details
#initialize(feature_set) ⇒ FeaturesPresenter
Returns a new instance of FeaturesPresenter.
21 22 23 24 25 26 27 28 29 |
# File 'app/controllers/flipflop/features_controller.rb', line 21 def initialize(feature_set) @cache = {} @feature_set = feature_set @strategies = @feature_set.strategies.reject(&:hidden?) @grouped_features = @feature_set.features.group_by(&:group) @application_name = Rails.application.class.parent_name.underscore.titleize end |
Instance Attribute Details
#application_name ⇒ Object (readonly)
Returns the value of attribute application_name.
19 20 21 |
# File 'app/controllers/flipflop/features_controller.rb', line 19 def application_name @application_name end |
#grouped_features ⇒ Object (readonly)
Returns the value of attribute grouped_features.
19 20 21 |
# File 'app/controllers/flipflop/features_controller.rb', line 19 def grouped_features @grouped_features end |
#strategies ⇒ Object (readonly)
Returns the value of attribute strategies.
19 20 21 |
# File 'app/controllers/flipflop/features_controller.rb', line 19 def strategies @strategies end |
Instance Method Details
#grouped? ⇒ Boolean
31 32 33 |
# File 'app/controllers/flipflop/features_controller.rb', line 31 def grouped? grouped_features.keys != [nil] end |
#status(feature) ⇒ Object
35 36 37 38 39 |
# File 'app/controllers/flipflop/features_controller.rb', line 35 def status(feature) cache(nil, feature) do status_to_sym(@feature_set.enabled?(feature.key)) end end |
#strategy_status(strategy, feature) ⇒ Object
41 42 43 44 45 |
# File 'app/controllers/flipflop/features_controller.rb', line 41 def strategy_status(strategy, feature) cache(strategy, feature) do status_to_sym(strategy.enabled?(feature.key)) end end |
#switch_url(strategy, feature) ⇒ Object
47 48 49 |
# File 'app/controllers/flipflop/features_controller.rb', line 47 def switch_url(strategy, feature) feature_strategy_path(feature.key, strategy.key) end |