class Dry::Generators::ValidationGenerator

Public Instance Methods

check_requirements() click to toggle source
# File lib/generators/dry/validation/validation_generator.rb, line 9
def check_requirements
  raise 'NAME must be provided' unless file_name.present?
end
copy_spec() click to toggle source
# File lib/generators/dry/validation/validation_generator.rb, line 41
def copy_spec
  if Dir.exist? File.join(Rails.root, 'spec')
    spec_path =  File.join(SPEC_PATH, 'validations')
    path = File.join(spec_path, "#{@name}_spec.rb")
    template 'validation_spec_template.erb', path
  end
end
copy_test() click to toggle source
# File lib/generators/dry/validation/validation_generator.rb, line 49
def copy_test
  if Dir.exist? File.join(Rails.root, 'test')
    test_path =  File.join(TEST_PATH, 'validations')
    path = File.join(test_path, "#{@name}_test.rb")
    template 'validation_test_template.erb', path
  end
end
copy_validator() click to toggle source
# File lib/generators/dry/validation/validation_generator.rb, line 36
def copy_validator
  path = File.join(VALIDATIONS_PATH, "#{@name}.rb")
  template 'validation_template.erb', path
end
process_params() click to toggle source
:name, :type, :required
# File lib/generators/dry/validation/validation_generator.rb, line 20
def process_params
  options['params'].each do |field|
    fields = field.split(':')
    required = false
    type = 'string'

    if fields.length == 3
      required = true
      fields.pop
    end

    type = fields.pop if fields.length == 2
    @fields << { name: fields.first, type: type, required: required }
  end
end
set_instance_variables() click to toggle source
# File lib/generators/dry/validation/validation_generator.rb, line 13
def set_instance_variables
  @name = file_name.underscore
  @class_name = "#{@name.camelize}"
  @fields = []
end