Class: Ditty::Generators::CrudGenerator

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/ditty/generators/crud_generator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#controller_nameObject (readonly)

, :file_name



10
11
12
# File 'lib/ditty/generators/crud_generator.rb', line 10

def controller_name
  @controller_name
end

#folderObject (readonly)

, :file_name



10
11
12
# File 'lib/ditty/generators/crud_generator.rb', line 10

def folder
  @folder
end

#model_nameObject (readonly)

, :file_name



10
11
12
# File 'lib/ditty/generators/crud_generator.rb', line 10

def model_name
  @model_name
end

#namespaceObject (readonly)

, :file_name



10
11
12
# File 'lib/ditty/generators/crud_generator.rb', line 10

def namespace
  @namespace
end

#policy_nameObject (readonly)

, :file_name



10
11
12
# File 'lib/ditty/generators/crud_generator.rb', line 10

def policy_name
  @policy_name
end

#views_folderObject (readonly)

, :file_name



10
11
12
# File 'lib/ditty/generators/crud_generator.rb', line 10

def views_folder
  @views_folder
end

Class Method Details

.source_rootObject



18
19
20
# File 'lib/ditty/generators/crud_generator.rb', line 18

def self.source_root
  File.dirname(__FILE__)
end

Instance Method Details

#create_controllerObject



36
37
38
39
40
41
# File 'lib/ditty/generators/crud_generator.rb', line 36

def create_controller
  filename = File.join("lib/#{folder}/controllers", "#{controller_name.underscore}.rb")
  template '../templates/controller.rb.erb', filename
  # TODO: Insert the route into the component file
  # insert_into_file 'config.ru', "use #{class_name}\n", after: 'run ApplicationController\n'
end

#create_modelObject



31
32
33
34
# File 'lib/ditty/generators/crud_generator.rb', line 31

def create_model
  filename = File.join("lib/#{folder}/models", "#{model_name.underscore}.rb")
  template '../templates/model.rb.erb', filename
end

#create_policyObject



43
44
45
46
# File 'lib/ditty/generators/crud_generator.rb', line 43

def create_policy
  filename = File.join("lib/#{folder}/policies", "#{policy_name.underscore}.rb")
  template '../templates/policy.rb.erb', filename
end

#create_typeObject



48
49
50
51
# File 'lib/ditty/generators/crud_generator.rb', line 48

def create_type
  filename = File.join("lib/#{folder}/types", "#{model_name.underscore}_type.rb")
  template '../templates/type.rb.erb', filename
end

#create_viewsObject



53
54
55
56
57
# File 'lib/ditty/generators/crud_generator.rb', line 53

def create_views
  return unless options[:views]

  directory '../templates/views', views_folder
end

#setupObject



22
23
24
25
26
27
28
29
# File 'lib/ditty/generators/crud_generator.rb', line 22

def setup
  @namespace       = name.deconstantize
  @folder          = namespace.underscore
  @model_name      = name.demodulize
  @views_folder    = File.join('views', model_name.pluralize.underscore)
  @controller_name = "#{model_name.pluralize}Controller"
  @policy_name     = "#{model_name}Policy"
end