class Katapult::Generators::ModelGenerator
Public Instance Methods
belongs_tos()
click to toggle source
# File lib/generators/katapult/model/model_generator.rb, line 55 def belongs_tos model.application_model.get_belongs_tos_for model.name end
create_migration_file()
click to toggle source
# 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()
click to toggle source
# 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
defaults()
click to toggle source
# File lib/generators/katapult/model/model_generator.rb, line 67 def defaults {}.tap do |defaults| model.attrs.select(&:has_defaults?).each do |attr| defaults[attr.name.to_sym] = attr.default end end end
flag_attrs()
click to toggle source
# File lib/generators/katapult/model/model_generator.rb, line 63 def flag_attrs model.attrs.select(&:flag?) end
generate_unit_tests()
click to toggle source
# File lib/generators/katapult/model/model_generator.rb, line 50 def generate_unit_tests Generators::ModelSpecsGenerator.new(model, options).invoke_all end
has_manys()
click to toggle source
# File lib/generators/katapult/model/model_generator.rb, line 59 def has_manys model.application_model.get_has_manys_for model.name end
write_factory()
click to toggle source
# File lib/generators/katapult/model/model_generator.rb, line 33 def write_factory factory = " factory #{ model.name(:symbol) }" factories_file = 'spec/factories/factories.rb' # Can happen in multiple transformation runs with authentication 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()
click to toggle source
# 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
Private Instance Methods
model()
click to toggle source
# File lib/generators/katapult/model/model_generator.rb, line 78 def model @element end