Class: RailsOnboarding::ConfigurationValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_onboarding/configuration_validator.rb

Overview

Validates RailsOnboarding configuration to ensure all settings are valid

Constant Summary collapse

VALID_TRIGGERS =
[ :onboarding_step_completed, :onboarding_completed, :tooltip_shown,
:tooltip_clicked, :custom ].freeze
VALID_REDIRECT_TYPES =
[ Symbol, String, Proc ].freeze
VALID_ONBOARDING_REQUIREMENTS =
[ :new_users, :all_users, Proc ].freeze
VALID_API_AUTH_METHODS =
[ :token, :session, :custom ].freeze
VALID_REVEAL_CONDITIONS =
[ :time_based, :action_based, :step_based, :milestone_based, :engagement_based ].freeze
NAME_FORMAT =
/\A[a-z_][a-z0-9_]*\z/i

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ ConfigurationValidator

Returns a new instance of ConfigurationValidator.



16
17
18
19
# File 'lib/rails_onboarding/configuration_validator.rb', line 16

def initialize(config)
  @config = config
  @errors = []
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



14
15
16
# File 'lib/rails_onboarding/configuration_validator.rb', line 14

def config
  @config
end

#errorsObject (readonly)

Returns the value of attribute errors.



14
15
16
# File 'lib/rails_onboarding/configuration_validator.rb', line 14

def errors
  @errors
end

Instance Method Details

#valid?Boolean

Validate without raising exceptions

Returns:

  • (Boolean)

    true if valid, false otherwise



40
41
42
43
44
45
# File 'lib/rails_onboarding/configuration_validator.rb', line 40

def valid?
  validate!
  true
rescue ConfigurationError
  false
end

#validate!Object

Validate all configuration options

Raises:



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/rails_onboarding/configuration_validator.rb', line 23

def validate!
  validate_required_options
  validate_types
  validate_steps
  validate_milestones
  validate_redirect_paths
  validate_feature_tooltips
  validate_ab_tests
  validate_personalized_flows
  validate_progressive_features
  validate_mailer_config

  raise ConfigurationError, error_message unless errors.empty?
end