Class: SinatraAppGenerator

Inherits:
RubiGen::Base
  • Object
show all
Defined in:
lib/generators/sinatra_app/sinatra_app_generator.rb

Constant Summary collapse

DEFAULT_SHEBANG =
File.join(Config::CONFIG['bindir'],
Config::CONFIG['ruby_install_name'])

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(runtime_args, runtime_options = {}) ⇒ SinatraAppGenerator

Returns a new instance of SinatraAppGenerator.



7
8
9
10
11
12
# File 'lib/generators/sinatra_app/sinatra_app_generator.rb', line 7

def initialize(runtime_args, runtime_options = {})
  super
  usage if args.empty?
  @destination_root = File.expand_path(args.shift)
  @name = (args.shift || base_name).camelize
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/generators/sinatra_app/sinatra_app_generator.rb', line 5

def name
  @name
end

Instance Method Details

#manifestObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/generators/sinatra_app/sinatra_app_generator.rb', line 18

def manifest
  record do |m|
    # Ensure appropriate folder(s) exists
    m.directory ''
    BASEDIRS.each { |path| m.directory path }

    # root
    template m, "app.rb"
    template m, "config.ru"
    template m, "geminstaller.yml"
    template m, "Rakefile"

    # cucumber
    m.directory "features/support"
    m.directory "features/step_definitions"
    template m, "features/support/env.rb"
    template m, "features/support/paths.rb"
    template m, "features/step_definitions/webrat_steps.rb"

    # rspec
    m.directory "spec"
    template m, "spec/spec_helper.rb"

    # lib
    m.directory "lib"
    template m, "lib/rack_fix.rb"
  end
end

#template(m, filename) ⇒ Object



14
15
16
# File 'lib/generators/sinatra_app/sinatra_app_generator.rb', line 14

def template(m, filename)
  m.template "#{filename}.erb", filename
end