Class: CommandBuilderGenerator::Fragment

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

Instance Method Summary collapse

Constructor Details

#initialize(fragment_def) ⇒ Fragment

Returns a new instance of Fragment.



6
7
8
# File 'lib/command_builder_generator/fragment.rb', line 6

def initialize(fragment_def)
  @fragment_def = fragment_def
end

Instance Method Details

#arg_namesObject



26
27
28
# File 'lib/command_builder_generator/fragment.rb', line 26

def arg_names
  @arg_names ||= args.map { |a| a.arg_name }
end

#argsObject



22
23
24
# File 'lib/command_builder_generator/fragment.rb', line 22

def args
  @args ||= fragment_text.scan(/<.+?>/).flatten.map { |m| CommandArgument.new m, required? }
end

#fragment_textObject



10
11
12
# File 'lib/command_builder_generator/fragment.rb', line 10

def fragment_text
  @fragment_text ||= optional? ? @fragment_def[1, @fragment_def.length - 2] : @fragment_def
end

#has_args?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/command_builder_generator/fragment.rb', line 30

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

#optional?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/command_builder_generator/fragment.rb', line 18

def optional?
  @optional ||= @fragment_def.start_with?('[') && @fragment_def.end_with?(']')
end

#required?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/command_builder_generator/fragment.rb', line 14

def required?
  !optional?
end