class Shaf::Generator::Model

Public Instance Methods

call() click to toggle source
# File lib/shaf/generator/model.rb, line 8
def call
  create_model
  create_migration
  create_serializer
  create_forms
end
create_forms() click to toggle source
# File lib/shaf/generator/model.rb, line 59
def create_forms
  form_args = %W(forms #{model_name}) + args[1..-1]
  Generator::Factory.create(*form_args, **options).call
end
create_migration() click to toggle source
# File lib/shaf/generator/model.rb, line 49
def create_migration
  migration_args = %W(create table #{table_name}) + args[1..-1]
  Migration::Generator.new(*migration_args).call
end
create_model() click to toggle source
# File lib/shaf/generator/model.rb, line 38
def create_model
  content = render(template, opts)
  write_output(target, content)
end
create_serializer() click to toggle source
# File lib/shaf/generator/model.rb, line 54
def create_serializer
  serializer_args = %W(serializer #{model_name}) + args[1..-1]
  Generator::Factory.create(*serializer_args, **options).call
end
model_class_name() click to toggle source
# File lib/shaf/generator/model.rb, line 22
def model_class_name
  Utils.model_name(model_name)
end
model_name() click to toggle source
# File lib/shaf/generator/model.rb, line 15
def model_name
  n = args.first || ''
  return n unless n.empty?
  raise Command::ArgumentError,
    'Please provide a model name when using the model generator!'
end
opts() click to toggle source
# File lib/shaf/generator/model.rb, line 43
def opts
  {
    class_name: model_class_name,
  }
end
table_name() click to toggle source
# File lib/shaf/generator/model.rb, line 26
def table_name
  Utils.pluralize model_name
end
target() click to toggle source
# File lib/shaf/generator/model.rb, line 34
def target
  "api/models/#{model_name}.rb"
end
template() click to toggle source
# File lib/shaf/generator/model.rb, line 30
def template
  'api/model.rb'
end