Class: Generate
- Includes:
- Thor::Actions
- Defined in:
- lib/volt/cli/generate.rb
Class Method Summary collapse
Instance Method Summary collapse
- #component(name) ⇒ Object
- #controller(name, component = 'main') ⇒ Object
- #gem(name) ⇒ Object
- #http_controller(name, component = 'main') ⇒ Object
- #model(name, component = 'main') ⇒ Object
- #task(name, component = 'main') ⇒ Object
- #view(name, component = 'main') ⇒ Object
Class Method Details
.source_root ⇒ Object
45 46 47 |
# File 'lib/volt/cli/generate.rb', line 45 def self.source_root File.(File.join(File.dirname(__FILE__), '../../../templates')) end |
Instance Method Details
#component(name) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/volt/cli/generate.rb', line 16 def component(name) name = name.underscore component_folder = Dir.pwd + "/app/#{name}" component_spec_folder = Dir.pwd + '/spec/app/' + name @component_name = name directory('component', component_folder, component_name: name) directory('component_specs', component_spec_folder) end |
#controller(name, component = 'main') ⇒ Object
65 66 67 68 69 70 71 72 |
# File 'lib/volt/cli/generate.rb', line 65 def controller(name, component = 'main') controller_name = name.underscore.singularize + '_controller' unless name =~ /_controller$/ output_file = Dir.pwd + "/app/#{component.underscore}/controllers/#{controller_name}.rb" spec_file = Dir.pwd + "/spec/app/#{component.underscore}/integration/#{name.underscore.pluralize}_spec.rb" template('controller/model_controller.rb.tt', output_file, component_module: component.camelize, model_controller_name: controller_name.camelize) template('controller/model_controller_spec.rb.tt', spec_file, describe: name.underscore.pluralize ) end |
#gem(name) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/volt/cli/generate.rb', line 34 def gem(name) require 'volt/cli/new_gem' if name =~ /[-]/ Volt.logger.error("Gem names should use underscores for their names. Currently volt only supports a single namespace for a component.") return end NewGem.new(self, name, ) end |
#http_controller(name, component = 'main') ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/volt/cli/generate.rb', line 52 def http_controller(name, component = 'main') name = name.underscore.pluralize + '_controller' unless name =~ /_controller$/ output_file = Dir.pwd + "/app/#{component}/controllers/server/#{name.underscore}.rb" spec_file = Dir.pwd + "/spec/app/#{component.underscore}/controllers/server/#{name}_spec.rb" template('controller/http_controller.rb.tt', output_file, component_module: component.camelize, http_controller_name: name.camelize) template('controller/http_controller_spec.rb.tt', spec_file, component_module: component.camelize, http_controller_name: name.camelize) end |
#model(name, component = 'main') ⇒ Object
7 8 9 10 11 12 |
# File 'lib/volt/cli/generate.rb', line 7 def model(name, component = 'main') output_file = Dir.pwd + "/app/#{component.underscore}/models/#{name.underscore.singularize}.rb" spec_file = Dir.pwd + "/spec/app/#{component.underscore}/models/#{name.underscore.pluralize}_spec.rb" template('model/model.rb.tt', output_file, model_name: name.camelize.singularize) template('model/model_spec.rb.tt', spec_file, model_name: name.camelize.singularize) end |
#task(name, component = 'main') ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/volt/cli/generate.rb', line 77 def task(name, component = 'main') name = name.underscore.gsub(/_tasks$/, '').singularize + '_tasks' output_file = Dir.pwd + "/app/#{component}/tasks/#{name}.rb" spec_file = Dir.pwd + "/spec/app/#{component}/tasks/#{name}_spec.rb" template('task/task.rb.tt', output_file, task_name: name.camelize.singularize) template('task/task_spec.rb.tt', spec_file, task_name: name.camelize.singularize) end |
#view(name, component = 'main') ⇒ Object
88 89 90 91 92 93 |
# File 'lib/volt/cli/generate.rb', line 88 def view(name, component = 'main') name = name.underscore.singularize view_folder = Dir.pwd + "/app/#{component}/views/#{name}/" directory('view', view_folder, view_name: name, component: component) controller(name, component) unless controller_exists?(name, component) end |