Class: Melodiest::Command

Inherits:
Object
  • Object
show all
Defined in:
lib/melodiest/command.rb

Class Method Summary collapse

Class Method Details

.parse(options) ⇒ Object



7
8
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/melodiest/command.rb', line 7

def self.parse(options)
  args = {name: nil, dir: nil}
  result = ""

  option_parser = OptionParser.new do |opts|
    opts.banner = "Usage: melodiest [options]"

    opts.on("-h", "--help", "Print this help") do
      result = opts.to_s
    end

    opts.on("-v", "--version", "Show version") do
      result = Melodiest::VERSION
    end

    opts.on("-nNAME", "--name=NAME", "generate app with name from this option") do |name|
      args[:name] = name
    end

    opts.on("-dDIR", "--dir=DIR", "instead of current directory, generate app in target DIR") do |dir|
      args[:dir] = dir
    end

  end

  option_parser.parse! options

  result = Command.run(args[:name], args[:dir]) unless args[:name].nil?

  result
end

.run(app_name, target_dir) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/melodiest/command.rb', line 39

def self.run(app_name, target_dir)
  generator = Melodiest::Generator.new app_name, target_dir

  generator.generate_gemfile
  generator.generate_bundle_config
  generator.generate_app

  msg = "#{app_name} is successfully generated"
  msg << " in #{target_dir}" if target_dir

  msg 
end