Class: ModelScope::Analyzers::ValidationAnalyzer

Inherits:
Object
  • Object
show all
Defined in:
lib/modelscope/analyzers/validation_analyzer.rb

Constant Summary collapse

STANDARD_VALIDATIONS =
%w[
  presence uniqueness format length inclusion exclusion
  numericality acceptance confirmation
].freeze
STANDARD_VALIDATION_PATTERN =
/^validates?_(#{STANDARD_VALIDATIONS.join("|")})(?:_of)?$/

Class Method Summary collapse

Class Method Details

.belongs_to_validator?(filter, model) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
# File 'lib/modelscope/analyzers/validation_analyzer.rb', line 14

def belongs_to_validator?(filter, model)
  presence_validator?(filter) &&
    association_attribute?(filter.attributes.first, model, :belongs_to)
end

.detect_type(filter, model) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/modelscope/analyzers/validation_analyzer.rb', line 19

def detect_type(filter, model)
  return nil unless filter

  if belongs_to_validator?(filter, model)
    "associated"
  elsif validator?(filter)
    validator_type(filter)
  else
    normalize_validation_name(filter.to_s)
  end
end

.human_method_name(filter) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/modelscope/analyzers/validation_analyzer.rb', line 31

def human_method_name(filter)
  case filter
  when Proc then format_proc_location(filter)
  when Class, ActiveModel::Validator then format_validator(filter)
  else filter.to_s
  end
end