Class: Butterfly::Options::Parser

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

Overview

parser class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(generators) ⇒ Parser

Returns a new instance of Parser.



63
64
65
# File 'lib/options.rb', line 63

def initialize(generators)
  @generators = generators
end

Instance Attribute Details

#generatorsObject

Returns the value of attribute generators.



61
62
63
# File 'lib/options.rb', line 61

def generators
  @generators
end

Instance Method Details

#ask_for_new_generatorObject



114
115
116
117
118
119
120
121
122
123
124
# File 'lib/options.rb', line 114

def ask_for_new_generator
  parser = OptionParser.new do |opts|
    opts.banner = "Usage: #{PURPLE}#{File.basename($0)}#{WHITE} --new #{BLUE}<generator-group>#{WHITE} #{BLUE}<generator-type>#{WHITE}"
    opts.separator ""
    opts.define_head "Go, create a new code generator!"
    opts.define_head ""
    opts.separator "#{BLUE}Please enter a <generator-group> name and a <generator-type> name#{WHITE}"
  end
  parser.parse(["-h"])
  exit
end

#ask_for_new_generator_type(generator_group) ⇒ Object



126
127
128
129
130
131
132
133
134
135
136
# File 'lib/options.rb', line 126

def ask_for_new_generator_type(generator_group)
  parser = OptionParser.new do |opts|
    opts.banner = "Usage: #{PURPLE}#{File.basename($0)}#{WHITE} --new #{generator_group} #{BLUE}<generator-type>#{WHITE}"
    opts.separator ""
    opts.define_head "Go, create a new code generator in the #{generator_group} group!"
    opts.define_head ""
    opts.separator "#{BLUE}Please enter a <generator-type> name#{WHITE}"
  end
  parser.parse(["-h"])
  exit
end

#ask_for_project(generator_group, generator_type) ⇒ Object



104
105
106
107
108
109
110
111
112
# File 'lib/options.rb', line 104

def ask_for_project(generator_group, generator_type)
  parser = OptionParser.new do |opts|
    opts.banner = "Usage: #{PURPLE}#{File.basename($0)}#{WHITE} [options] #{PURPLE}#{generator_group}#{WHITE} #{PURPLE}#{generator_type}#{WHITE} #{BLUE}<project-name>#{WHITE}"
    opts.add_default(options = {})
    opts.separator "#{BLUE}Please enter a project-name!#{WHITE}"
  end
  parser.parse(["-h"])
  exit
end

#parse(args) ⇒ Object



67
68
69
70
71
72
73
74
# File 'lib/options.rb', line 67

def parse(args)
  options = OPTIONS
  parser = OptionParser.new do |opts|
    opts.add_default(options)
  end
  parser.parse!(args)
  options
end

#show_groupsObject



76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/options.rb', line 76

def show_groups
  parser = OptionParser.new do |opts|
    opts.banner = "Usage: #{PURPLE}#{File.basename($0)}#{WHITE} [options] #{BLUE}<generator-group>#{WHITE} <generator-type> <project-name>"
    opts.add_default(options = {})
    opts.separator "#{BLUE}Please choose a generator-group:#{WHITE}"
    opts.separator ""
    @generators.names.each do |name|
      opts.separator "    #{BLUE}#{name}#{WHITE}"
    end
  end
  parser.parse(["-h"]) 
  exit
end

#show_types(generator_group) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/options.rb', line 90

def show_types(generator_group)
  parser = OptionParser.new do |opts|
    opts.banner = "Usage: #{PURPLE}#{File.basename($0)}#{WHITE} [options] #{PURPLE}#{generator_group}#{WHITE} #{BLUE}<generator-type>#{WHITE} <project-name>"
    opts.add_default(options = {})
    opts.separator "#{BLUE}Please choose a #{generator_group} generator-type:#{WHITE}"
    opts.separator ""
    @generators.types_of(generator_group).each do |type|
      opts.separator "    #{BLUE}#{type}#{WHITE}"
    end
  end
  parser.parse(["-h"])
  exit
end