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
49 50 51 |
# File 'lib/volt/cli/generate.rb', line 49 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
69 70 71 72 73 74 75 76 |
# File 'lib/volt/cli/generate.rb', line 69 def controller(name, component = 'main') controller_name = name.underscore + '_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}_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) end |
#gem(name) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/volt/cli/generate.rb', line 33 def gem(name) require 'volt/cli/new_gem' # remove prefixed volt- name = name.gsub(/^volt[-]/, '') if name =~ /[-]/ require 'volt' require 'volt/extra_core/logger' 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
56 57 58 59 60 61 62 63 64 |
# File 'lib/volt/cli/generate.rb', line 56 def http_controller(name, component = 'main') name = name.underscore + '_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
81 82 83 84 85 86 87 |
# File 'lib/volt/cli/generate.rb', line 81 def task(name, component = 'main') name = name.underscore.gsub(/_tasks$/, '').singularize + '_task' 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
92 93 94 95 96 97 |
# File 'lib/volt/cli/generate.rb', line 92 def view(name, component = 'main') name = name.underscore.pluralize 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 |