Class: Rubynew::Project
- Inherits:
-
Object
- Object
- Rubynew::Project
- Defined in:
- lib/rubynew/project.rb
Instance Method Summary collapse
- #create ⇒ Object
-
#initialize(name) ⇒ Project
constructor
A new instance of Project.
Constructor Details
#initialize(name) ⇒ Project
Returns a new instance of Project.
7 8 9 10 11 12 |
# File 'lib/rubynew/project.rb', line 7 def initialize(name) @name = name # ripped off from Bundler @underscored_name = @name.tr("-", "_") @constant_name = @name.gsub(/-[_-]*(?![_-]|$)/) { "::" }.gsub(/([_-]+|(::)|^)(.|$)/) { $2.to_s + $3.upcase } end |
Instance Method Details
#create ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/rubynew/project.rb', line 14 def create template_path = File.("../../../template", __FILE__) # copy the template FileUtils.cp_r template_path, @name # rename the files FileUtils.mv File.join(@name, "lib", "app"), File.join(@name, "lib", @underscored_name) FileUtils.mv File.join(@name, "lib", "app.rb"), File.join(@name, "lib", "#{@underscored_name}.rb") FileUtils.mv File.join(@name, "test", "app_test.rb"), File.join(@name, "test", "#{@underscored_name}_test.rb") FileUtils.mv File.join(@name, "bin", "app"), File.join(@name, "bin", @underscored_name) # apply templates [ File.join(@name, "bin", @underscored_name), File.join(@name, "lib", "#{@underscored_name}.rb"), File.join(@name, "lib", @underscored_name, "version.rb"), File.join(@name, "test", "#{@underscored_name}_test.rb"), File.join(@name, "README.md") ].each { |file| render_template_to_file file, binding } end |