module StoreModel::CombineErrorsStrategies

Module with built-in strategies for combining errors.

Public Instance Methods

configure(options) click to toggle source

Finds a strategy based on options and global config.

@param options [Hash]

@return [Object] strategy

# File lib/store_model/combine_errors_strategies.rb, line 17
def configure(options)
  configured_strategy = options[:merge_errors] || StoreModel.config.merge_errors

  get_configured_strategy(
    configured_strategy,
    StoreModel::CombineErrorsStrategies::MergeErrorStrategy
  )
end
configure_array(options) click to toggle source

Finds a array strategy based on options and global config.

@param options [Hash]

@return [Object] strategy

# File lib/store_model/combine_errors_strategies.rb, line 31
def configure_array(options)
  configured_strategy = options[:merge_array_errors] || StoreModel.config.merge_array_errors

  get_configured_strategy(
    configured_strategy,
    StoreModel::CombineErrorsStrategies::MergeArrayErrorStrategy
  )
end
get_configured_strategy(configured_strategy, true_strategy_class) click to toggle source
# File lib/store_model/combine_errors_strategies.rb, line 40
def get_configured_strategy(configured_strategy, true_strategy_class)
  if configured_strategy.respond_to?(:call)
    configured_strategy
  elsif configured_strategy == true
    true_strategy_class.new
  elsif configured_strategy.nil?
    StoreModel::CombineErrorsStrategies::MarkInvalidErrorStrategy.new
  else
    const_get(configured_strategy.to_s.camelize).new
  end
end