Class: Schemable::ModelGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/schemable/model_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ ModelGenerator

Returns a new instance of ModelGenerator.



7
8
9
10
11
12
# File 'lib/generators/schemable/model_generator.rb', line 7

def initialize(*args)
  super(*args)

  @model_name = options[:model_name]
  @model_name != 'Model' || raise('Model name is required')
end

Instance Method Details

#copy_initializerObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/schemable/model_generator.rb', line 14

def copy_initializer
  target_path = "lib/swagger/definitions/#{@model_name.underscore.downcase.singularize}.rb"

  if Rails.root.join(target_path).exist?
    say_status('skipped', 'Model definition already exists')
  else

    create_file(target_path, "module Swagger\n  module Definitions\nclass \#{@model_name.classify} < Schemable::Definition\n  def excluded_create_request_attributes\n    %i[updated_at created_at]\n  end\n\n  def excluded_update_request_attributes\n    %i[updated_at created_at]\n  end\nend\n  end\nend\n"
    )
  end
end