Class: Config::ComplexItem

Inherits:
Item
  • Object
show all
Defined in:
lib/module_config/complexitem.rb

Instance Attribute Summary collapse

Attributes inherited from Item

#priority

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/module_config/complexitem.rb', line 8

def name
  @name
end

#overwriteObject (readonly)

Returns the value of attribute overwrite.



10
11
12
# File 'lib/module_config/complexitem.rb', line 10

def overwrite
  @overwrite
end

#valueObject (readonly)

Returns the value of attribute value.



9
10
11
# File 'lib/module_config/complexitem.rb', line 9

def value
  @value
end

Class Method Details

.getRegex(_nameregex, _valueregex) ⇒ Object



51
52
53
# File 'lib/module_config/complexitem.rb', line 51

def ComplexItem.getRegex(_nameregex, _valueregex)
    /\s*(#{_nameregex})([!]?)\s*=\s*\{\s*(#{_valueregex})\s*\}/
end

Instance Method Details

#each(&block) ⇒ Object



40
41
42
# File 'lib/module_config/complexitem.rb', line 40

def each(&block)
    @value.each(&block)
end

#merge(_complexitem) ⇒ Object

Raises:



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/module_config/complexitem.rb', line 26

def merge(_complexitem)
    raise ConfigMergeException.new(self.class), "Merge: Configuration items do not fit! <#{_complexitem}> is not of type #{self.class.to_s}." unless _complexitem.instance_of?(self.class)
    raise ConfigMergeException.new(self.class), "Merge: Configuration items do not have the same name! <#{_complexitem.name}> vs. <#{@name}>" unless _complexitem.name == @name
    
    puts "------------------------"
    $stdout.print "_complexitem: "
    p _complexitem
    $stdout.print "self:         "
    p self
    puts "------------------------"
    
    @value = _complexitem.value | @value unless @overwrite
end


44
45
46
47
48
49
# File 'lib/module_config/complexitem.rb', line 44

def print
    puts "    #{@name} = {      # #{@self.class.to_s}"
    $stdout.print "        "
    puts @value.join(";\n        ")
    puts "    }"
end