Module: QuickShoulda::Generator::Validation

Included in:
QuickShoulda::Generator
Defined in:
lib/quick_shoulda/generator/validation.rb

Constant Summary collapse

AllowsValidators =
[
  'presence', 'uniqueness', 'acceptance', 'confirmation', 'exclusion', 'format', 'inclusion', 'length', 'numericality'
]
InclusionOptions =
{
  :range      => 'in_range',
  :array      => 'in_array'
}
OptionMethods =
{
  :minimum          => 'is_at_least',
  :maximum          => 'is_at_most',
  :is               => 'is_equal_to',
  :scope            => 'scoped_to',
  :too_short        => 'with_short_message',
  :too_long         => 'with_long_message',
  :message          => 'with_message',        
  :only_integer     => 'only_integer',
  :case_insensitive => 'case_insensitive',
  :allow_nil        => 'allow_nil',
  :allow_blank      => 'allow_blank',        
  :in               => InclusionOptions,
  :within           => InclusionOptions
}
Filters =
{
  :allow_blank      => ['inclusion'],
  :allow_nil        => ['inclusion', 'uniqueness'],
  :case_insensitive => ['uniqueness']
}
AttrsFilters =
['friendly_id']

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



39
40
41
42
43
# File 'lib/quick_shoulda/generator/validation.rb', line 39

def self.included(base)
  base.class_eval do
    attr_accessor :validation_type
  end
end

Instance Method Details

#generate_validations(model) ⇒ Object



45
46
47
# File 'lib/quick_shoulda/generator/validation.rb', line 45

def generate_validations(model)
  model.validators.map { |validator| generate_for_validator(validator) }.compact.flatten
end