Module: RailsOnboarding::Configuration::ProgressiveDisclosure
- Included in:
- RailsOnboarding::Configuration
- Defined in:
- lib/rails_onboarding/configuration/progressive_disclosure.rb
Overview
Progressive feature disclosure configuration.
Instance Attribute Summary collapse
-
#progressive_disclosure_enabled ⇒ Object
Returns the value of attribute progressive_disclosure_enabled.
-
#progressive_features ⇒ Object
Returns the value of attribute progressive_features.
Instance Method Summary collapse
-
#show_progressive_feature?(feature_key, user) ⇒ Boolean
Check if a feature should be shown based on progressive disclosure.
Instance Attribute Details
#progressive_disclosure_enabled ⇒ Object
Returns the value of attribute progressive_disclosure_enabled.
5 6 7 |
# File 'lib/rails_onboarding/configuration/progressive_disclosure.rb', line 5 def progressive_disclosure_enabled @progressive_disclosure_enabled end |
#progressive_features ⇒ Object
Returns the value of attribute progressive_features.
5 6 7 |
# File 'lib/rails_onboarding/configuration/progressive_disclosure.rb', line 5 def progressive_features @progressive_features end |
Instance Method Details
#show_progressive_feature?(feature_key, user) ⇒ Boolean
Check if a feature should be shown based on progressive disclosure
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/rails_onboarding/configuration/progressive_disclosure.rb', line 12 def show_progressive_feature?(feature_key, user) return true unless progressive_disclosure_enabled feature = progressive_features.find { |f| f[:key] == feature_key.to_sym } return true unless feature # Check if feature meets its reveal conditions case feature[:reveal_condition] when :time_based user.created_at + feature[:delay].seconds <= Time.current when :action_based user.send(feature[:check_method]) if user.respond_to?(feature[:check_method]) when :step_based step_index(user.onboarding_current_step) >= step_index(feature[:after_step]) else true end rescue StandardError true # Default to showing feature if check fails end |