Class: Ditty::Generators::CrudGenerator
- Inherits:
-
Thor::Group
- Object
- Thor::Group
- Ditty::Generators::CrudGenerator
- Includes:
- Thor::Actions
- Defined in:
- lib/ditty/generators/crud_generator.rb
Instance Attribute Summary collapse
-
#controller_name ⇒ Object
readonly
, :file_name.
-
#folder ⇒ Object
readonly
, :file_name.
-
#model_name ⇒ Object
readonly
, :file_name.
-
#namespace ⇒ Object
readonly
, :file_name.
-
#policy_name ⇒ Object
readonly
, :file_name.
-
#views_folder ⇒ Object
readonly
, :file_name.
Class Method Summary collapse
Instance Method Summary collapse
- #create_controller ⇒ Object
- #create_model ⇒ Object
- #create_policy ⇒ Object
- #create_type ⇒ Object
- #create_views ⇒ Object
- #setup ⇒ Object
Instance Attribute Details
#controller_name ⇒ Object (readonly)
, :file_name
10 11 12 |
# File 'lib/ditty/generators/crud_generator.rb', line 10 def controller_name @controller_name end |
#folder ⇒ Object (readonly)
, :file_name
10 11 12 |
# File 'lib/ditty/generators/crud_generator.rb', line 10 def folder @folder end |
#model_name ⇒ Object (readonly)
, :file_name
10 11 12 |
# File 'lib/ditty/generators/crud_generator.rb', line 10 def model_name @model_name end |
#namespace ⇒ Object (readonly)
, :file_name
10 11 12 |
# File 'lib/ditty/generators/crud_generator.rb', line 10 def namespace @namespace end |
#policy_name ⇒ Object (readonly)
, :file_name
10 11 12 |
# File 'lib/ditty/generators/crud_generator.rb', line 10 def policy_name @policy_name end |
#views_folder ⇒ Object (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_root ⇒ Object
18 19 20 |
# File 'lib/ditty/generators/crud_generator.rb', line 18 def self.source_root File.dirname(__FILE__) end |
Instance Method Details
#create_controller ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/ditty/generators/crud_generator.rb', line 38 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' rescue StandardError => e puts "Could not generate controller for #{model_name}: #{e.}" end |
#create_model ⇒ Object
31 32 33 34 35 36 |
# 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 rescue StandardError => e puts "Could not generate model for #{model_name}: #{e.}" end |
#create_policy ⇒ Object
47 48 49 50 51 52 |
# File 'lib/ditty/generators/crud_generator.rb', line 47 def create_policy filename = File.join("lib/#{folder}/policies", "#{policy_name.underscore}.rb") template '../templates/policy.rb.erb', filename rescue StandardError => e puts "Could not generate policy for #{model_name}: #{e.}" end |
#create_type ⇒ Object
54 55 56 57 58 59 |
# File 'lib/ditty/generators/crud_generator.rb', line 54 def create_type filename = File.join("lib/#{folder}/types", "#{model_name.underscore}_type.rb") template '../templates/type.rb.erb', filename rescue StandardError => e puts "Could not generate type for #{model_name}: #{e.}" end |
#create_views ⇒ Object
61 62 63 64 65 |
# File 'lib/ditty/generators/crud_generator.rb', line 61 def create_views return unless [:views] directory '../templates/views', views_folder end |
#setup ⇒ Object
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 |