Class: CommandBuilder::CodeGenerator::Fragment

Inherits:
Object
  • Object
show all
Defined in:
lib/command_builder/code_generator/fragment.rb

Instance Method Summary collapse

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_namesObject



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

#argsObject



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_textObject



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

Returns:

  • (Boolean)


31
32
33
# File 'lib/command_builder/code_generator/fragment.rb', line 31

def has_args?
  @has_args ||= !args.empty?
end

#optional?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


15
16
17
# File 'lib/command_builder/code_generator/fragment.rb', line 15

def required?
  !optional?
end