Class: CommandBuilder::CodeGenerator::Fragment
- Inherits:
-
Object
- Object
- CommandBuilder::CodeGenerator::Fragment
- Defined in:
- lib/command_builder/code_generator/fragment.rb
Instance Method Summary collapse
- #arg_names ⇒ Object
- #args ⇒ Object
- #fragment_text ⇒ Object
- #has_args? ⇒ Boolean
-
#initialize(fragment_def) ⇒ Fragment
constructor
A new instance of Fragment.
- #optional? ⇒ Boolean
- #required? ⇒ Boolean
Constructor Details
#initialize(fragment_def) ⇒ Fragment
Returns a new instance of Fragment.
7 8 9 |
# File 'lib/command_builder/code_generator/fragment.rb', line 7 def initialize(fragment_def) @fragment_def = fragment_def end |
Instance Method Details
#arg_names ⇒ Object
27 28 29 |
# File 'lib/command_builder/code_generator/fragment.rb', line 27 def arg_names @arg_names ||= args.map { |a| a.arg_name } end |
#args ⇒ Object
23 24 25 |
# File 'lib/command_builder/code_generator/fragment.rb', line 23 def args @args ||= fragment_text.scan(/<.+?>/).flatten.map { |m| CommandArgument.new m, required? } end |
#fragment_text ⇒ Object
11 12 13 |
# File 'lib/command_builder/code_generator/fragment.rb', line 11 def fragment_text @fragment_text ||= optional? ? @fragment_def[1, @fragment_def.length - 2] : @fragment_def end |
#has_args? ⇒ Boolean
31 32 33 |
# File 'lib/command_builder/code_generator/fragment.rb', line 31 def has_args? @has_args ||= !args.empty? end |
#optional? ⇒ Boolean
19 20 21 |
# File 'lib/command_builder/code_generator/fragment.rb', line 19 def optional? @optional ||= @fragment_def.start_with?('[') && @fragment_def.end_with?(']') end |
#required? ⇒ Boolean
15 16 17 |
# File 'lib/command_builder/code_generator/fragment.rb', line 15 def required? !optional? end |