Class: Mycroft::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/mycroft/cli.rb

Instance Method Summary collapse

Instance Method Details

#new(app_name = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/mycroft/cli.rb', line 9

def new(app_name=nil)
  app_name = ask("App Name: ") if app_name.nil?
  dn = ask("Display Name: ")
  instance_id = ask("Instance Id: ")
  desc = ask("Description: ")
  camelcase = app_name.camelize
  underscore = app_name.underscore
  dashed = app_name.dasherize
  path = "#{Gem.dir}/gems/mycroft-#{Mycroft::VERSION}/lib/mycroft/templates/"
  app_template = File.read("#{path}/app_template")
  app_template.gsub!(/%%APPNAME%%/, camelcase)
  app_template.gsub!(/%%UNDERSCORE%%/, underscore)

  app_manifest = File.read("#{path}/app_manifest")
  app_manifest.gsub!(/%%DASHED%%/, dashed)
  app_manifest.gsub!(/%%DISPLAYNAME%%/, dn)
  app_manifest.gsub!(/%%INSTANCEID%%/, instance_id)
  app_manifest.gsub!(/%%DESC%%/, desc)

  app_file = File.open("./#{underscore}.rb", 'w')
  app_file.puts app_template
  app_file.close
  puts "Successfully created #{underscore}.rb"

  app_file = File.open("./app.json", 'w')
  app_file.puts app_manifest
  app_file.close
  puts "Successfully created app.json"
end