Class: AppCommand

Inherits:
Object
  • Object
show all
Defined in:
lib/scaffolding/commands/app.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ AppCommand

Returns a new instance of AppCommand.



4
5
6
7
8
9
# File 'lib/scaffolding/commands/app.rb', line 4

def initialize(*args)
  raise "'name' parameter must be specified" if args.length < 1
  @name = args[0]
  @dir  = Dir.pwd
  @path = File.join(@dir, @name)
end

Instance Method Details

#checkObject



11
12
13
# File 'lib/scaffolding/commands/app.rb', line 11

def check
  raise "Directory #{@name} already exists" if File.exist?(File.join(@dir, @name))
end

#executeObject



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/scaffolding/commands/app.rb', line 15

def execute
  FileUtils.mkdir(@path)
  FileUtils.mkdir(File.join(@path, "lib"))
  FileUtils.mkdir(File.join(@path, "lib", "views"))
  FileUtils.mkdir(File.join(@path, "lib", "viewmodels"))
  FileUtils.mkdir(File.join(@path, "lib", "services"))
  FileUtils.mkdir(File.join(@path, "lib", "domain"))
  Generator.create_stub(File.join(@path, "#{@name}.rb"),"application", :name => @name)
  Generator.create_stub(File.join(@path, "lib", "views", "#{@name}_view.rb"), "view_toplevel", :name => @name.capitalize, :toplevel => @name)
  Generator.create_stub(File.join(@path, "lib", "views", "#{@name}_view.glade"), "view_toplevel_glade",:name => @name)
  Generator.create_stub(File.join(@path, "lib", "viewmodels", "#{@name}_view_model.rb"), "viewmodel_toplevel", :name => @name.capitalize)
  print "Application created in #{@path}\n"
end