Class: Configru::DSL::OptionGroup

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ OptionGroup

Returns a new instance of OptionGroup.



8
9
10
11
# File 'lib/configru/dsl.rb', line 8

def initialize(&block)
  @options = {}
  instance_eval(&block)
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



6
7
8
# File 'lib/configru/dsl.rb', line 6

def options
  @options
end

Instance Method Details

#option(name, type = Object, default = nil, validation = nil, &block) ⇒ Object



13
14
15
16
17
# File 'lib/configru/dsl.rb', line 13

def option(name, type = Object, default = nil, validation = nil, &block)
  option = Configru::Option.new(type, default, validation, nil)
  Option.new(option, &block) if block
  @options[name.to_s] = option
end

#option_array(name, type = Object, default = [], validation = nil, &block) ⇒ Object



29
30
31
32
33
# File 'lib/configru/dsl.rb', line 29

def option_array(name, type = Object, default = [], validation = nil, &block)
  option = Configru::OptionArray.new(type, default, validation, nil)
  Option.new(option, &block) if block
  @options[name.to_s] = option
end

#option_bool(name, default, &block) ⇒ Object



19
20
21
# File 'lib/configru/dsl.rb', line 19

def option_bool(name, default, &block)
  option(name, Object, default, [true, false], &block)
end

#option_group(name, &block) ⇒ Object



35
36
37
# File 'lib/configru/dsl.rb', line 35

def option_group(name, &block)
  @options[name.to_s] = OptionGroup.new(&block).options
end

#option_required(name, type = Object, validation = nil, &block) ⇒ Object



23
24
25
26
27
# File 'lib/configru/dsl.rb', line 23

def option_required(name, type = Object, validation = nil, &block)
  option = Configru::RequiredOption.new(type, validation, nil)
  RequiredOption.new(option, &block) if block
  @options[name.to_s] = option
end