Class: Katapult::Generators::ModelGenerator
Instance Attribute Summary
#element
Instance Method Summary
collapse
#initialize
#file_contains?, #yarn
Instance Method Details
#create_migration_file ⇒ Object
16
17
18
19
20
21
22
23
|
# File 'lib/generators/katapult/model/model_generator.rb', line 16
def create_migration_file
migration_name = "create_#{table_name}"
migration_attributes = model.db_fields.map(&:for_migration)
args = [migration_name] + migration_attributes
options = { timestamps: true, force: true }
invoke 'active_record:migration', args, options
end
|
#create_model_file ⇒ Object
25
26
27
|
# File 'lib/generators/katapult/model/model_generator.rb', line 25
def create_model_file
template 'model.rb', File.join('app', 'models', "#{file_name}.rb")
end
|
#generate_unit_tests ⇒ Object
50
51
52
|
# File 'lib/generators/katapult/model/model_generator.rb', line 50
def generate_unit_tests
Generators::ModelSpecsGenerator.new(model, options).invoke_all
end
|
#write_factory ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/generators/katapult/model/model_generator.rb', line 33
def write_factory
factory = " factory #{ model.name(:symbol) }"
factories_file = 'spec/factories/factories.rb'
return if file_contains?(factories_file, factory)
factory_attrs = model.required_attrs.map do |a|
" #{ a.name(:human) } #{ a.test_value.inspect }"
end
if factory_attrs.any?
factory << " do\n#{ factory_attrs.join "\n" }\n end"
end
insert_into_file factories_file, factory + "\n\n", before: /end\n\z/
end
|
#write_traits ⇒ Object
29
30
31
|
# File 'lib/generators/katapult/model/model_generator.rb', line 29
def write_traits
template 'app/models/shared/does_flag.rb' if flag_attrs.any?
end
|