class Katapult::Generators::ModelSpecsGenerator

Public Instance Methods

assignable_value_for(attr) click to toggle source
# File lib/generators/katapult/model_specs/model_specs_generator.rb, line 26
def assignable_value_for(attr)
  attr.assignable_values.last
end
create_model_spec() click to toggle source
# File lib/generators/katapult/model_specs/model_specs_generator.rb, line 15
def create_model_spec
  template 'model_spec.rb', File.join('spec', 'models', "#{file_name}_spec.rb")
end
specable_attrs() click to toggle source
# File lib/generators/katapult/model_specs/model_specs_generator.rb, line 20
def specable_attrs
  model.attrs.select do |attr|
    attr.assignable_values_as_list? or !attr.default.nil?
  end
end
unassignable_value_for(attr) click to toggle source

Guess a value that is not assignable

# File lib/generators/katapult/model_specs/model_specs_generator.rb, line 31
def unassignable_value_for(attr)
  case attr.type
  when :integer
    attr.assignable_values.max + 1
  when :string
    assignable_value_for(attr) + '-unassignable'
  else
    raise "Assignable values for :#{attr.type} attributes not supported"
  end
end

Private Instance Methods

model() click to toggle source
# File lib/generators/katapult/model_specs/model_specs_generator.rb, line 45
def model
  @element
end