class Railgen::New

Public Class Methods

exec(options) click to toggle source
# File lib/railgen/new.rb, line 4
def self.exec(options)
  generator = new(options)
  generator.make_app_directory
  generator.skeleton
end
new(options) click to toggle source
# File lib/railgen/new.rb, line 10
def initialize(options)
  @options = options
end

Public Instance Methods

make_app_directory() click to toggle source
# File lib/railgen/new.rb, line 14
def make_app_directory
  Dir.mkdir("#{target}/#{namespace_to_snake}")
end
skeleton() click to toggle source
# File lib/railgen/new.rb, line 18
def skeleton
  files = skeleton_files
  files.each do |file|
    filepath = "#{target}/#{namespace_to_snake}#{file.skeleton_path.gsub('skeleton', namespace_to_snake).gsub(/\.erb$/,'')}"
    puts "create #{filepath}"
    if file.directory?
      Dir.mkdir(filepath)
    elsif file.erb?
      open(filepath, 'w+') do |f|
        f.write ERB.new(file.read).result(binding)
      end
    else
      open(filepath, 'w+') do |f|
        f.write file.read
      end
    end
  end
end

Private Instance Methods

namespace() click to toggle source
# File lib/railgen/new.rb, line 42
def namespace
  @options[:namespace] ||= 'Sample'
end
namespace_to_snake() click to toggle source
# File lib/railgen/new.rb, line 46
def namespace_to_snake
  Rinne.to_snake(namespace)
end
skeleton_files() click to toggle source
# File lib/railgen/new.rb, line 50
def skeleton_files
  Dir.glob("#{File.dirname(__FILE__)}/../../skeleton/**/*", File::FNM_DOTMATCH).map do |v| 
    Skeleton.new(v, File.dirname(__FILE__))
  end
end
target() click to toggle source
# File lib/railgen/new.rb, line 38
def target
  @options[:target] ||= './'
end