fhlow 1.91.0 → 1.91.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/fhlow +58 -10
- data/lib/module_config/complexitem.rb +57 -0
- data/lib/module_config/config.rb +5 -3
- data/lib/module_config/item.rb +0 -4
- data/lib/module_config/items/complex.rb +44 -0
- data/lib/module_config/items/complexfreqencies.rb +59 -0
- data/lib/module_config/items/complexlibrary.rb +46 -0
- data/lib/module_config/items/complexpackage.rb +47 -0
- data/lib/module_config/items/complexpins.rb +59 -0
- data/lib/module_config/items/complexunit.rb +53 -0
- data/lib/module_config/items/simple.rb +29 -0
- data/lib/module_config/items/simplearchitecture.rb +34 -0
- data/lib/module_config/items/simplebindir.rb +31 -0
- data/lib/module_config/items/simplebool.rb +24 -0
- data/lib/module_config/items/simplepostlayoutsdf.rb +24 -0
- data/lib/module_config/items/simplesimulaterun.rb +25 -0
- data/lib/module_config/items/simpleverbose.rb +33 -0
- data/lib/module_config/section.rb +16 -4
- data/lib/module_config/simpleitem.rb +37 -0
- data/lib/module_config/test.flw +33 -12
- data/lib/module_config/test.rb +54 -4
- data/lib/module_config/unittests/config_test.rb +15 -12
- data/lib/module_fhlow/leaf.rb +28 -24
- data/lib/module_fhlow/leafs/Library.rb +60 -0
- data/lib/module_fhlow/leafs/Package.rb +4 -1
- data/lib/module_fhlow/leafs/Unit.rb +9 -1
- data/lib/module_fhlow/node.rb +4 -5
- data/lib/module_fhlow/plugin.rb +11 -0
- data/lib/module_fhlow/pluginpool.rb +17 -5
- data/lib/module_fhlow/rootnode.rb +4 -3
- data/lib/plugins/Modelsim.flw +18 -0
- data/lib/plugins/Modelsim.rb +331 -0
- data/lib/plugins/Quartus.flw +5 -0
- data/lib/plugins/Quartus.rb +237 -0
- data/tests/testsuite.rb +0 -0
- metadata +84 -79
- data/lib/module_config/configitems/complex.rb +0 -71
- data/lib/module_config/configitems/complexpackage.rb +0 -67
- data/lib/module_config/configitems/complexunit.rb +0 -76
- data/lib/module_config/configitems/simple.rb +0 -56
- data/lib/module_config/configitems/simplearchitecture.rb +0 -52
- data/lib/module_config/configitems/simplepackage.rb +0 -47
- data/lib/module_config/configitems/simpleunit.rb +0 -53
- data/lib/module_config/configs.test +0 -24
- data/lib/module_config/tmp +0 -3
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-configexception_rb.html +0 -647
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-configitems-complex_rb.html +0 -700
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-configitems-complexpackage_rb.html +0 -694
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-configitems-complexunit_rb.html +0 -704
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-configitems-simple_rb.html +0 -685
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-configitems-simplepackage_rb.html +0 -676
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-configitems-simpleunit_rb.html +0 -682
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-item_rb.html +0 -663
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-itemfactory_rb.html +0 -687
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-myconfig_rb.html +0 -687
- data/lib/module_config/unittests/coverage/-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-section_rb.html +0 -692
- data/lib/module_config/unittests/coverage/index.html +0 -689
- data/lib/module_fhlow/leaf.rb~ +0 -202
- data/lib/module_fhlow/test.rb +0 -15
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'item'
|
2
|
-
require 'itemfactory'
|
3
|
-
require 'configexception'
|
4
|
-
|
5
|
-
module Config
|
6
|
-
|
7
|
-
class ComplexPackageFactory < ItemFactory
|
8
|
-
|
9
|
-
def ComplexPackageFactory.match(_str)
|
10
|
-
_str.sub!(ComplexPackage.getRegex, '')
|
11
|
-
return $&
|
12
|
-
end
|
13
|
-
|
14
|
-
def ComplexPackageFactory.create(*_args)
|
15
|
-
ComplexPackage.new(*_args)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
class ComplexPackage < Item
|
21
|
-
@@regex = /(\w*Package\w*)\s*=\s*\{((\s*[^\(\)]*[;]\s*)*(\s*[^\(\)\{]*[;]?\s*)?)\s*\}/
|
22
|
-
@@subitemregex = /\A.+\Z/
|
23
|
-
|
24
|
-
attr_reader :name
|
25
|
-
attr_reader :value
|
26
|
-
|
27
|
-
def initialize(_str)
|
28
|
-
if _str =~ @@regex
|
29
|
-
@name = $1
|
30
|
-
@value = Array.new
|
31
|
-
$2.strip.split(';').each do |item|
|
32
|
-
item.strip!
|
33
|
-
raise ConfigWrongFormatException.new(self.class), "Configuration subitem \n -----\n #{item} \n -----\n of item <#{name}> has wrong format." unless item =~ @@subitemregex
|
34
|
-
@value.push(item.split(/,\s/))
|
35
|
-
end
|
36
|
-
else
|
37
|
-
raise ConfigWrongFormatException.new(self.class), "Configuration item <#{_str}> has wrong format."
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def merge(_complexitem)
|
42
|
-
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)
|
43
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not have the same name! <#{_complexitem.name}> vs. <#{@name}>" unless _complexitem.name == @name
|
44
|
-
|
45
|
-
@value = _complexitem.value | @value
|
46
|
-
end
|
47
|
-
|
48
|
-
def each(&block)
|
49
|
-
@value.each(&block)
|
50
|
-
end
|
51
|
-
|
52
|
-
def print
|
53
|
-
puts "<ComplexPackage>"
|
54
|
-
puts " #{@name} = {"
|
55
|
-
@value.each { |v| puts " #{v};" }
|
56
|
-
puts " }"
|
57
|
-
end
|
58
|
-
|
59
|
-
def ComplexPackage.getRegex()
|
60
|
-
@@regex
|
61
|
-
end
|
62
|
-
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
67
|
-
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'item'
|
2
|
-
require 'itemfactory'
|
3
|
-
require 'configexception'
|
4
|
-
|
5
|
-
module Config
|
6
|
-
|
7
|
-
class ComplexUnitFactory < ItemFactory
|
8
|
-
|
9
|
-
def ComplexUnitFactory.match(_str)
|
10
|
-
_str.sub!(ComplexUnit.getRegex, '')
|
11
|
-
return $&
|
12
|
-
end
|
13
|
-
|
14
|
-
def ComplexUnitFactory.create(*_args)
|
15
|
-
ComplexUnit.new(*_args)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
class ComplexUnit < Item
|
21
|
-
@@regex = /(\w*Unit\w*)\s*=\s*\{((\s*.*[;]\s*)*(\s*.*\(.*\)[;]*\s*)?)\s*\}/
|
22
|
-
@@subitemregex = /\A(([\w\/]+,\s*)*[\w\/]+)\s*\((.+)\)\Z/
|
23
|
-
|
24
|
-
attr_reader :name
|
25
|
-
attr_reader :value
|
26
|
-
|
27
|
-
def initialize(_str)
|
28
|
-
if _str =~ @@regex
|
29
|
-
@name = $1
|
30
|
-
@value = Array.new
|
31
|
-
|
32
|
-
$2.strip.split(';').each do |item|
|
33
|
-
|
34
|
-
item.strip!
|
35
|
-
if item =~ @@subitemregex
|
36
|
-
item = Hash.new
|
37
|
-
item["deppath"] = $1
|
38
|
-
item["archs"] = $3.split(/,\s*/)
|
39
|
-
item["deppath"] = item["deppath"].split(/,\s*/)
|
40
|
-
@value.push(item)
|
41
|
-
else
|
42
|
-
raise ConfigWrongFormatException.new(self.class), "Configuration subitem <#{item}> of item <#{name}> has wrong format."
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
else
|
47
|
-
raise ConfigWrongFormatException.new(self.class), "Configuration item <#{_str}> has wrong format."
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def merge(_complexitem)
|
52
|
-
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)
|
53
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not have the same name! <#{_complexitem.name}> vs. <#{@name}>" unless _complexitem.name == @name
|
54
|
-
|
55
|
-
@value = _complexitem.value | @value
|
56
|
-
end
|
57
|
-
|
58
|
-
def each(&block)
|
59
|
-
@value.each(&block)
|
60
|
-
end
|
61
|
-
|
62
|
-
def print
|
63
|
-
puts "<ComplexUnit>"
|
64
|
-
puts " #{@name} = {"
|
65
|
-
@value.each { |v| puts " #{v["deppath"].join(", ")}(#{v["archs"].join(", ")});" }
|
66
|
-
puts " }"
|
67
|
-
end
|
68
|
-
|
69
|
-
def ComplexUnit.getRegex()
|
70
|
-
@@regex
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|
76
|
-
|
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'item'
|
2
|
-
require 'itemfactory'
|
3
|
-
require 'configexception'
|
4
|
-
|
5
|
-
module Config
|
6
|
-
|
7
|
-
class SimpleFactory < ItemFactory
|
8
|
-
|
9
|
-
def SimpleFactory.match(_str)
|
10
|
-
_str.sub!(Simple.getRegex(), '')
|
11
|
-
return $&
|
12
|
-
end
|
13
|
-
|
14
|
-
def SimpleFactory.create(*_args)
|
15
|
-
Simple.new(*_args)
|
16
|
-
end
|
17
|
-
|
18
|
-
def SimpleFactory.priority
|
19
|
-
10
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
class Simple < Item
|
25
|
-
@@regex = /^\s*(\w+)\s*=\s*([\w,\/.;\t ]+)[\t ]*$/
|
26
|
-
|
27
|
-
attr_reader :name
|
28
|
-
attr_reader :value
|
29
|
-
|
30
|
-
def initialize(_str)
|
31
|
-
|
32
|
-
if _str =~ @@regex
|
33
|
-
@name = $1
|
34
|
-
@value = $2
|
35
|
-
else
|
36
|
-
raise ConfigWrongFormatException.new(self.class), "Configuration item <#{_str}> has wrong format."
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def merge(_item)
|
41
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not fit! <#{_item}> is not of type #{self.class.to_s}." unless _item.instance_of?(self.class)
|
42
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not have the same name! <#{_item.name}> vs. <#{@name}>" unless _item.name == @name
|
43
|
-
|
44
|
-
@value = _item.value
|
45
|
-
end
|
46
|
-
|
47
|
-
|
48
|
-
def Simple.getRegex()
|
49
|
-
@@regex
|
50
|
-
end
|
51
|
-
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
@@ -1,52 +0,0 @@
|
|
1
|
-
require 'item'
|
2
|
-
require 'itemfactory'
|
3
|
-
require 'configexception'
|
4
|
-
|
5
|
-
module Config
|
6
|
-
|
7
|
-
class SimpleArchitectureFactory < ItemFactory
|
8
|
-
def SimpleArchitectureFactory.match(_str)
|
9
|
-
_str.sub!(SimpleArchitecture.getRegex, '')
|
10
|
-
return $&
|
11
|
-
end
|
12
|
-
|
13
|
-
def SimpleArchitectureFactory.create(*_args)
|
14
|
-
SimpleArchitecture.new(*_args)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
|
19
|
-
class SimpleArchitecture < Item
|
20
|
-
@@regex = /^\s*(\w*Architecture\w*)\s*=\s*((\s*\w+\s*[,])*\s*\w+)*\s*$/
|
21
|
-
|
22
|
-
attr_reader :name
|
23
|
-
attr_reader :value
|
24
|
-
|
25
|
-
def initialize(_str)
|
26
|
-
if _str =~ @@regex
|
27
|
-
@name = $1
|
28
|
-
@value = Array.new
|
29
|
-
@value = $2.split(/,\s*/) if $2
|
30
|
-
else
|
31
|
-
raise ConfigWrongFormatException.new(self.class), "Configuration item <#{_str}> has wrong format."
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def merge(_item)
|
36
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not fit! <#{_item}> is not of type #{self.class.to_s}." unless _item.instance_of?(self.class)
|
37
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not have the same name! <#{_item.name}> vs. <#{@name}>" unless _item.name == @name
|
38
|
-
|
39
|
-
@value = _item.value
|
40
|
-
end
|
41
|
-
|
42
|
-
def print
|
43
|
-
puts "<#{self.class.to_s}> -> ".ljust(40)+" #{@name} = #{@value.join(", ")}"
|
44
|
-
end
|
45
|
-
|
46
|
-
def SimpleArchitecture.getRegex()
|
47
|
-
@@regex
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'item'
|
2
|
-
require 'itemfactory'
|
3
|
-
require 'configexception'
|
4
|
-
|
5
|
-
module Config
|
6
|
-
|
7
|
-
class SimplePackageFactory < ItemFactory
|
8
|
-
def SimplePackageFactory.match(_str)
|
9
|
-
_str.sub!(SimplePackage.getRegex, '')
|
10
|
-
return $&
|
11
|
-
end
|
12
|
-
|
13
|
-
def SimplePackageFactory.create(*_args)
|
14
|
-
SimplePackage.new(*_args)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
|
19
|
-
class SimplePackage < Item
|
20
|
-
@@regex = /^\s*(\w*Package\w*)\s*=\s*([\w,.;\s]+)\s*$/
|
21
|
-
|
22
|
-
attr_reader :name
|
23
|
-
attr_reader :value
|
24
|
-
|
25
|
-
def initialize(_str)
|
26
|
-
if _str =~ @@regex
|
27
|
-
@name = $1
|
28
|
-
@value = $2.strip
|
29
|
-
else
|
30
|
-
raise ConfigWrongFormatException.new(self.class), "Configuration item <#{_str}> has wrong format."
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def merge(_item)
|
35
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not fit! <#{_item}> is not of type #{self.class.to_s}." unless _item.instance_of?(self.class)
|
36
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not have the same name! <#{_item.name}> vs. <#{@name}>" unless _item.name == @name
|
37
|
-
|
38
|
-
@value = _item.value
|
39
|
-
end
|
40
|
-
|
41
|
-
def SimplePackage.getRegex()
|
42
|
-
@@regex
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require 'item'
|
2
|
-
require 'itemfactory'
|
3
|
-
require 'configexception'
|
4
|
-
|
5
|
-
module Config
|
6
|
-
|
7
|
-
class SimpleUnitFactory < ItemFactory
|
8
|
-
def SimpleUnitFactory.match(_str)
|
9
|
-
_str.sub!(SimpleUnit.getRegex, '')
|
10
|
-
return $&
|
11
|
-
end
|
12
|
-
|
13
|
-
def SimpleUnitFactory.create(*_args)
|
14
|
-
SimpleUnit.new(*_args)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
|
19
|
-
class SimpleUnit < Item
|
20
|
-
@@regex = /^\s*(\w*Unit\w*)\s*=\s*([\w,.;\s]+)\((.*)\)\s*$/
|
21
|
-
|
22
|
-
attr_reader :name
|
23
|
-
attr_reader :value
|
24
|
-
|
25
|
-
def initialize(_str)
|
26
|
-
if _str =~ @@regex
|
27
|
-
@name = $1
|
28
|
-
@value = Hash.new
|
29
|
-
@value["deppath"] = $2
|
30
|
-
@value["archs"] = $3.split(/,\s*/)
|
31
|
-
else
|
32
|
-
raise ConfigWrongFormatException.new(self.class), "Configuration item <#{_str}> has wrong format."
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def merge(_item)
|
37
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not fit! <#{_item}> is not of type #{self.class.to_s}." unless _item.instance_of?(self.class)
|
38
|
-
raise ConfigMergeException.new(self.class), "Merge: Configuration items do not have the same name! <#{_item.name}> vs. <#{@name}>" unless _item.name == @name
|
39
|
-
|
40
|
-
@value = _item.value
|
41
|
-
end
|
42
|
-
|
43
|
-
def print
|
44
|
-
puts "<#{self.class.to_s}> -> ".ljust(40)+" #{@name} = #{@value["deppath"]}(#{@value["archs"].join(", ")})"
|
45
|
-
end
|
46
|
-
|
47
|
-
def SimpleUnit.getRegex()
|
48
|
-
@@regex
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
data/lib/module_config/tmp
DELETED
@@ -1,647 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
|
3
|
-
<head>
|
4
|
-
<title>/home/simon/tmp/fhlow.v2/flw/core/lib/module_config/configexception.rb - C0 code coverage information</title>
|
5
|
-
<style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
|
6
|
-
<style type='text/css'>span.cross-ref-title {
|
7
|
-
font-size: 140%;
|
8
|
-
}
|
9
|
-
span.cross-ref a {
|
10
|
-
text-decoration: none;
|
11
|
-
}
|
12
|
-
span.cross-ref {
|
13
|
-
background-color:#f3f7fa;
|
14
|
-
border: 1px dashed #333;
|
15
|
-
margin: 1em;
|
16
|
-
padding: 0.5em;
|
17
|
-
overflow: hidden;
|
18
|
-
}
|
19
|
-
a.crossref-toggle {
|
20
|
-
text-decoration: none;
|
21
|
-
}
|
22
|
-
span.marked0 {
|
23
|
-
background-color: rgb(185, 210, 200);
|
24
|
-
display: block;
|
25
|
-
}
|
26
|
-
span.marked1 {
|
27
|
-
background-color: rgb(190, 215, 205);
|
28
|
-
display: block;
|
29
|
-
}
|
30
|
-
span.inferred0 {
|
31
|
-
background-color: rgb(175, 200, 200);
|
32
|
-
display: block;
|
33
|
-
}
|
34
|
-
span.inferred1 {
|
35
|
-
background-color: rgb(180, 205, 205);
|
36
|
-
display: block;
|
37
|
-
}
|
38
|
-
span.uncovered0 {
|
39
|
-
background-color: rgb(225, 110, 110);
|
40
|
-
display: block;
|
41
|
-
}
|
42
|
-
span.uncovered1 {
|
43
|
-
background-color: rgb(235, 120, 120);
|
44
|
-
display: block;
|
45
|
-
}
|
46
|
-
span.overview {
|
47
|
-
border-bottom: 8px solid black;
|
48
|
-
}
|
49
|
-
div.overview {
|
50
|
-
border-bottom: 8px solid black;
|
51
|
-
}
|
52
|
-
body {
|
53
|
-
font-family: verdana, arial, helvetica;
|
54
|
-
}
|
55
|
-
div.footer {
|
56
|
-
font-size: 68%;
|
57
|
-
margin-top: 1.5em;
|
58
|
-
}
|
59
|
-
h1, h2, h3, h4, h5, h6 {
|
60
|
-
margin-bottom: 0.5em;
|
61
|
-
}
|
62
|
-
h5 {
|
63
|
-
margin-top: 0.5em;
|
64
|
-
}
|
65
|
-
.hidden {
|
66
|
-
display: none;
|
67
|
-
}
|
68
|
-
div.separator {
|
69
|
-
height: 10px;
|
70
|
-
}
|
71
|
-
/* Commented out for better readability, esp. on IE */
|
72
|
-
/*
|
73
|
-
table tr td, table tr th {
|
74
|
-
font-size: 68%;
|
75
|
-
}
|
76
|
-
td.value table tr td {
|
77
|
-
font-size: 11px;
|
78
|
-
}
|
79
|
-
*/
|
80
|
-
table.percent_graph {
|
81
|
-
height: 12px;
|
82
|
-
border: #808080 1px solid;
|
83
|
-
empty-cells: show;
|
84
|
-
}
|
85
|
-
table.percent_graph td.covered {
|
86
|
-
height: 10px;
|
87
|
-
background: #00f000;
|
88
|
-
}
|
89
|
-
table.percent_graph td.uncovered {
|
90
|
-
height: 10px;
|
91
|
-
background: #e00000;
|
92
|
-
}
|
93
|
-
table.percent_graph td.NA {
|
94
|
-
height: 10px;
|
95
|
-
background: #eaeaea;
|
96
|
-
}
|
97
|
-
table.report {
|
98
|
-
border-collapse: collapse;
|
99
|
-
width: 100%;
|
100
|
-
}
|
101
|
-
table.report td.heading {
|
102
|
-
background: #dcecff;
|
103
|
-
border: #d0d0d0 1px solid;
|
104
|
-
font-weight: bold;
|
105
|
-
text-align: center;
|
106
|
-
}
|
107
|
-
table.report td.heading:hover {
|
108
|
-
background: #c0ffc0;
|
109
|
-
}
|
110
|
-
table.report td.text {
|
111
|
-
border: #d0d0d0 1px solid;
|
112
|
-
}
|
113
|
-
table.report td.value {
|
114
|
-
text-align: right;
|
115
|
-
border: #d0d0d0 1px solid;
|
116
|
-
}
|
117
|
-
table.report tr.light {
|
118
|
-
background-color: rgb(240, 240, 245);
|
119
|
-
}
|
120
|
-
table.report tr.dark {
|
121
|
-
background-color: rgb(230, 230, 235);
|
122
|
-
}
|
123
|
-
</style>
|
124
|
-
<script type='text/javascript'>
|
125
|
-
// <![CDATA[
|
126
|
-
function toggleCode( id ) {
|
127
|
-
if ( document.getElementById )
|
128
|
-
elem = document.getElementById( id );
|
129
|
-
else if ( document.all )
|
130
|
-
elem = eval( "document.all." + id );
|
131
|
-
else
|
132
|
-
return false;
|
133
|
-
|
134
|
-
elemStyle = elem.style;
|
135
|
-
|
136
|
-
if ( elemStyle.display != "block" ) {
|
137
|
-
elemStyle.display = "block"
|
138
|
-
} else {
|
139
|
-
elemStyle.display = "none"
|
140
|
-
}
|
141
|
-
|
142
|
-
return true;
|
143
|
-
}
|
144
|
-
|
145
|
-
// Make cross-references hidden by default
|
146
|
-
document.writeln( "<style type=\"text/css\">span.cross-ref { display: none }</style>" )
|
147
|
-
// ]]>
|
148
|
-
</script>
|
149
|
-
<style type='text/css'>span.run0 {
|
150
|
-
background-color: rgb(178, 204, 255);
|
151
|
-
display: block;
|
152
|
-
}
|
153
|
-
span.run1 {
|
154
|
-
background-color: rgb(178, 206, 255);
|
155
|
-
display: block;
|
156
|
-
}
|
157
|
-
span.run2 {
|
158
|
-
background-color: rgb(178, 209, 255);
|
159
|
-
display: block;
|
160
|
-
}
|
161
|
-
span.run3 {
|
162
|
-
background-color: rgb(178, 211, 255);
|
163
|
-
display: block;
|
164
|
-
}
|
165
|
-
span.run4 {
|
166
|
-
background-color: rgb(178, 214, 255);
|
167
|
-
display: block;
|
168
|
-
}
|
169
|
-
span.run5 {
|
170
|
-
background-color: rgb(178, 218, 255);
|
171
|
-
display: block;
|
172
|
-
}
|
173
|
-
span.run6 {
|
174
|
-
background-color: rgb(178, 220, 255);
|
175
|
-
display: block;
|
176
|
-
}
|
177
|
-
span.run7 {
|
178
|
-
background-color: rgb(178, 223, 255);
|
179
|
-
display: block;
|
180
|
-
}
|
181
|
-
span.run8 {
|
182
|
-
background-color: rgb(178, 225, 255);
|
183
|
-
display: block;
|
184
|
-
}
|
185
|
-
span.run9 {
|
186
|
-
background-color: rgb(178, 228, 255);
|
187
|
-
display: block;
|
188
|
-
}
|
189
|
-
span.run10 {
|
190
|
-
background-color: rgb(178, 232, 255);
|
191
|
-
display: block;
|
192
|
-
}
|
193
|
-
span.run11 {
|
194
|
-
background-color: rgb(178, 234, 255);
|
195
|
-
display: block;
|
196
|
-
}
|
197
|
-
span.run12 {
|
198
|
-
background-color: rgb(178, 237, 255);
|
199
|
-
display: block;
|
200
|
-
}
|
201
|
-
span.run13 {
|
202
|
-
background-color: rgb(178, 239, 255);
|
203
|
-
display: block;
|
204
|
-
}
|
205
|
-
span.run14 {
|
206
|
-
background-color: rgb(178, 242, 255);
|
207
|
-
display: block;
|
208
|
-
}
|
209
|
-
span.run15 {
|
210
|
-
background-color: rgb(178, 246, 255);
|
211
|
-
display: block;
|
212
|
-
}
|
213
|
-
span.run16 {
|
214
|
-
background-color: rgb(178, 248, 255);
|
215
|
-
display: block;
|
216
|
-
}
|
217
|
-
span.run17 {
|
218
|
-
background-color: rgb(178, 251, 255);
|
219
|
-
display: block;
|
220
|
-
}
|
221
|
-
span.run18 {
|
222
|
-
background-color: rgb(178, 253, 255);
|
223
|
-
display: block;
|
224
|
-
}
|
225
|
-
span.run19 {
|
226
|
-
background-color: rgb(178, 255, 253);
|
227
|
-
display: block;
|
228
|
-
}
|
229
|
-
span.run20 {
|
230
|
-
background-color: rgb(178, 255, 249);
|
231
|
-
display: block;
|
232
|
-
}
|
233
|
-
span.run21 {
|
234
|
-
background-color: rgb(178, 255, 247);
|
235
|
-
display: block;
|
236
|
-
}
|
237
|
-
span.run22 {
|
238
|
-
background-color: rgb(178, 255, 244);
|
239
|
-
display: block;
|
240
|
-
}
|
241
|
-
span.run23 {
|
242
|
-
background-color: rgb(178, 255, 242);
|
243
|
-
display: block;
|
244
|
-
}
|
245
|
-
span.run24 {
|
246
|
-
background-color: rgb(178, 255, 239);
|
247
|
-
display: block;
|
248
|
-
}
|
249
|
-
span.run25 {
|
250
|
-
background-color: rgb(178, 255, 235);
|
251
|
-
display: block;
|
252
|
-
}
|
253
|
-
span.run26 {
|
254
|
-
background-color: rgb(178, 255, 233);
|
255
|
-
display: block;
|
256
|
-
}
|
257
|
-
span.run27 {
|
258
|
-
background-color: rgb(178, 255, 230);
|
259
|
-
display: block;
|
260
|
-
}
|
261
|
-
span.run28 {
|
262
|
-
background-color: rgb(178, 255, 228);
|
263
|
-
display: block;
|
264
|
-
}
|
265
|
-
span.run29 {
|
266
|
-
background-color: rgb(178, 255, 225);
|
267
|
-
display: block;
|
268
|
-
}
|
269
|
-
span.run30 {
|
270
|
-
background-color: rgb(178, 255, 221);
|
271
|
-
display: block;
|
272
|
-
}
|
273
|
-
span.run31 {
|
274
|
-
background-color: rgb(178, 255, 219);
|
275
|
-
display: block;
|
276
|
-
}
|
277
|
-
span.run32 {
|
278
|
-
background-color: rgb(178, 255, 216);
|
279
|
-
display: block;
|
280
|
-
}
|
281
|
-
span.run33 {
|
282
|
-
background-color: rgb(178, 255, 214);
|
283
|
-
display: block;
|
284
|
-
}
|
285
|
-
span.run34 {
|
286
|
-
background-color: rgb(178, 255, 211);
|
287
|
-
display: block;
|
288
|
-
}
|
289
|
-
span.run35 {
|
290
|
-
background-color: rgb(178, 255, 207);
|
291
|
-
display: block;
|
292
|
-
}
|
293
|
-
span.run36 {
|
294
|
-
background-color: rgb(178, 255, 205);
|
295
|
-
display: block;
|
296
|
-
}
|
297
|
-
span.run37 {
|
298
|
-
background-color: rgb(178, 255, 202);
|
299
|
-
display: block;
|
300
|
-
}
|
301
|
-
span.run38 {
|
302
|
-
background-color: rgb(178, 255, 200);
|
303
|
-
display: block;
|
304
|
-
}
|
305
|
-
span.run39 {
|
306
|
-
background-color: rgb(178, 255, 197);
|
307
|
-
display: block;
|
308
|
-
}
|
309
|
-
span.run40 {
|
310
|
-
background-color: rgb(178, 255, 193);
|
311
|
-
display: block;
|
312
|
-
}
|
313
|
-
span.run41 {
|
314
|
-
background-color: rgb(178, 255, 191);
|
315
|
-
display: block;
|
316
|
-
}
|
317
|
-
span.run42 {
|
318
|
-
background-color: rgb(178, 255, 188);
|
319
|
-
display: block;
|
320
|
-
}
|
321
|
-
span.run43 {
|
322
|
-
background-color: rgb(178, 255, 186);
|
323
|
-
display: block;
|
324
|
-
}
|
325
|
-
span.run44 {
|
326
|
-
background-color: rgb(178, 255, 183);
|
327
|
-
display: block;
|
328
|
-
}
|
329
|
-
span.run45 {
|
330
|
-
background-color: rgb(178, 255, 179);
|
331
|
-
display: block;
|
332
|
-
}
|
333
|
-
span.run46 {
|
334
|
-
background-color: rgb(179, 255, 178);
|
335
|
-
display: block;
|
336
|
-
}
|
337
|
-
span.run47 {
|
338
|
-
background-color: rgb(182, 255, 178);
|
339
|
-
display: block;
|
340
|
-
}
|
341
|
-
span.run48 {
|
342
|
-
background-color: rgb(184, 255, 178);
|
343
|
-
display: block;
|
344
|
-
}
|
345
|
-
span.run49 {
|
346
|
-
background-color: rgb(187, 255, 178);
|
347
|
-
display: block;
|
348
|
-
}
|
349
|
-
span.run50 {
|
350
|
-
background-color: rgb(191, 255, 178);
|
351
|
-
display: block;
|
352
|
-
}
|
353
|
-
span.run51 {
|
354
|
-
background-color: rgb(193, 255, 178);
|
355
|
-
display: block;
|
356
|
-
}
|
357
|
-
span.run52 {
|
358
|
-
background-color: rgb(196, 255, 178);
|
359
|
-
display: block;
|
360
|
-
}
|
361
|
-
span.run53 {
|
362
|
-
background-color: rgb(198, 255, 178);
|
363
|
-
display: block;
|
364
|
-
}
|
365
|
-
span.run54 {
|
366
|
-
background-color: rgb(201, 255, 178);
|
367
|
-
display: block;
|
368
|
-
}
|
369
|
-
span.run55 {
|
370
|
-
background-color: rgb(205, 255, 178);
|
371
|
-
display: block;
|
372
|
-
}
|
373
|
-
span.run56 {
|
374
|
-
background-color: rgb(207, 255, 178);
|
375
|
-
display: block;
|
376
|
-
}
|
377
|
-
span.run57 {
|
378
|
-
background-color: rgb(210, 255, 178);
|
379
|
-
display: block;
|
380
|
-
}
|
381
|
-
span.run58 {
|
382
|
-
background-color: rgb(212, 255, 178);
|
383
|
-
display: block;
|
384
|
-
}
|
385
|
-
span.run59 {
|
386
|
-
background-color: rgb(215, 255, 178);
|
387
|
-
display: block;
|
388
|
-
}
|
389
|
-
span.run60 {
|
390
|
-
background-color: rgb(219, 255, 178);
|
391
|
-
display: block;
|
392
|
-
}
|
393
|
-
span.run61 {
|
394
|
-
background-color: rgb(221, 255, 178);
|
395
|
-
display: block;
|
396
|
-
}
|
397
|
-
span.run62 {
|
398
|
-
background-color: rgb(224, 255, 178);
|
399
|
-
display: block;
|
400
|
-
}
|
401
|
-
span.run63 {
|
402
|
-
background-color: rgb(226, 255, 178);
|
403
|
-
display: block;
|
404
|
-
}
|
405
|
-
span.run64 {
|
406
|
-
background-color: rgb(229, 255, 178);
|
407
|
-
display: block;
|
408
|
-
}
|
409
|
-
span.run65 {
|
410
|
-
background-color: rgb(233, 255, 178);
|
411
|
-
display: block;
|
412
|
-
}
|
413
|
-
span.run66 {
|
414
|
-
background-color: rgb(235, 255, 178);
|
415
|
-
display: block;
|
416
|
-
}
|
417
|
-
span.run67 {
|
418
|
-
background-color: rgb(238, 255, 178);
|
419
|
-
display: block;
|
420
|
-
}
|
421
|
-
span.run68 {
|
422
|
-
background-color: rgb(240, 255, 178);
|
423
|
-
display: block;
|
424
|
-
}
|
425
|
-
span.run69 {
|
426
|
-
background-color: rgb(243, 255, 178);
|
427
|
-
display: block;
|
428
|
-
}
|
429
|
-
span.run70 {
|
430
|
-
background-color: rgb(247, 255, 178);
|
431
|
-
display: block;
|
432
|
-
}
|
433
|
-
span.run71 {
|
434
|
-
background-color: rgb(249, 255, 178);
|
435
|
-
display: block;
|
436
|
-
}
|
437
|
-
span.run72 {
|
438
|
-
background-color: rgb(252, 255, 178);
|
439
|
-
display: block;
|
440
|
-
}
|
441
|
-
span.run73 {
|
442
|
-
background-color: rgb(255, 255, 178);
|
443
|
-
display: block;
|
444
|
-
}
|
445
|
-
span.run74 {
|
446
|
-
background-color: rgb(255, 252, 178);
|
447
|
-
display: block;
|
448
|
-
}
|
449
|
-
span.run75 {
|
450
|
-
background-color: rgb(255, 248, 178);
|
451
|
-
display: block;
|
452
|
-
}
|
453
|
-
span.run76 {
|
454
|
-
background-color: rgb(255, 246, 178);
|
455
|
-
display: block;
|
456
|
-
}
|
457
|
-
span.run77 {
|
458
|
-
background-color: rgb(255, 243, 178);
|
459
|
-
display: block;
|
460
|
-
}
|
461
|
-
span.run78 {
|
462
|
-
background-color: rgb(255, 240, 178);
|
463
|
-
display: block;
|
464
|
-
}
|
465
|
-
span.run79 {
|
466
|
-
background-color: rgb(255, 238, 178);
|
467
|
-
display: block;
|
468
|
-
}
|
469
|
-
span.run80 {
|
470
|
-
background-color: rgb(255, 234, 178);
|
471
|
-
display: block;
|
472
|
-
}
|
473
|
-
span.run81 {
|
474
|
-
background-color: rgb(255, 232, 178);
|
475
|
-
display: block;
|
476
|
-
}
|
477
|
-
span.run82 {
|
478
|
-
background-color: rgb(255, 229, 178);
|
479
|
-
display: block;
|
480
|
-
}
|
481
|
-
span.run83 {
|
482
|
-
background-color: rgb(255, 226, 178);
|
483
|
-
display: block;
|
484
|
-
}
|
485
|
-
span.run84 {
|
486
|
-
background-color: rgb(255, 224, 178);
|
487
|
-
display: block;
|
488
|
-
}
|
489
|
-
span.run85 {
|
490
|
-
background-color: rgb(255, 220, 178);
|
491
|
-
display: block;
|
492
|
-
}
|
493
|
-
span.run86 {
|
494
|
-
background-color: rgb(255, 218, 178);
|
495
|
-
display: block;
|
496
|
-
}
|
497
|
-
span.run87 {
|
498
|
-
background-color: rgb(255, 215, 178);
|
499
|
-
display: block;
|
500
|
-
}
|
501
|
-
span.run88 {
|
502
|
-
background-color: rgb(255, 212, 178);
|
503
|
-
display: block;
|
504
|
-
}
|
505
|
-
span.run89 {
|
506
|
-
background-color: rgb(255, 210, 178);
|
507
|
-
display: block;
|
508
|
-
}
|
509
|
-
span.run90 {
|
510
|
-
background-color: rgb(255, 206, 178);
|
511
|
-
display: block;
|
512
|
-
}
|
513
|
-
span.run91 {
|
514
|
-
background-color: rgb(255, 204, 178);
|
515
|
-
display: block;
|
516
|
-
}
|
517
|
-
span.run92 {
|
518
|
-
background-color: rgb(255, 201, 178);
|
519
|
-
display: block;
|
520
|
-
}
|
521
|
-
span.run93 {
|
522
|
-
background-color: rgb(255, 198, 178);
|
523
|
-
display: block;
|
524
|
-
}
|
525
|
-
span.run94 {
|
526
|
-
background-color: rgb(255, 196, 178);
|
527
|
-
display: block;
|
528
|
-
}
|
529
|
-
span.run95 {
|
530
|
-
background-color: rgb(255, 192, 178);
|
531
|
-
display: block;
|
532
|
-
}
|
533
|
-
span.run96 {
|
534
|
-
background-color: rgb(255, 189, 178);
|
535
|
-
display: block;
|
536
|
-
}
|
537
|
-
span.run97 {
|
538
|
-
background-color: rgb(255, 187, 178);
|
539
|
-
display: block;
|
540
|
-
}
|
541
|
-
span.run98 {
|
542
|
-
background-color: rgb(255, 184, 178);
|
543
|
-
display: block;
|
544
|
-
}
|
545
|
-
span.run99 {
|
546
|
-
background-color: rgb(255, 182, 178);
|
547
|
-
display: block;
|
548
|
-
}
|
549
|
-
span.run100 {
|
550
|
-
background-color: rgb(255, 178, 178);
|
551
|
-
display: block;
|
552
|
-
}
|
553
|
-
</style>
|
554
|
-
</head>
|
555
|
-
<body>
|
556
|
-
<h3>C0 code coverage information</h3>
|
557
|
-
<p>Generated on Wed Feb 14 17:25:15 +0100 2007 with <a href='http://eigenclass.org/hiki.rb?rcov'>rcov 0.7.0</a>
|
558
|
-
</p>
|
559
|
-
<hr /><pre><span class='marked0'>Code reported as executed by Ruby looks like this...
|
560
|
-
</span><span class='marked1'>and this: this line is also marked as covered.
|
561
|
-
</span><span class='inferred0'>Lines considered as run by rcov, but not reported by Ruby, look like this,
|
562
|
-
</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).
|
563
|
-
</span><span class='uncovered0'>Finally, here's a line marked as not executed.
|
564
|
-
</span></pre>
|
565
|
-
<table class='report'>
|
566
|
-
<thead>
|
567
|
-
<tr>
|
568
|
-
<td class='heading'>Name</td>
|
569
|
-
<td class='heading'>Total lines</td>
|
570
|
-
<td class='heading'>Lines of code</td>
|
571
|
-
<td class='heading'>Total coverage</td>
|
572
|
-
<td class='heading'>Code coverage</td>
|
573
|
-
</tr>
|
574
|
-
</thead>
|
575
|
-
<tbody>
|
576
|
-
<tr class='light'>
|
577
|
-
<td>
|
578
|
-
<a href='-home-simon-tmp-fhlow_v2-flw-core-lib-module_config-configexception_rb.html'>/home/simon/tmp/fhlow.v2/flw/core/lib/module_config/configexception.rb</a>
|
579
|
-
</td>
|
580
|
-
<td class='value'>
|
581
|
-
<tt>18</tt>
|
582
|
-
</td>
|
583
|
-
<td class='value'>
|
584
|
-
<tt>13</tt>
|
585
|
-
</td>
|
586
|
-
<td>
|
587
|
-
<table cellspacing='0' cellpadding='0' align='right'>
|
588
|
-
<tr>
|
589
|
-
<td>
|
590
|
-
<tt>100.0%</tt> </td>
|
591
|
-
<td>
|
592
|
-
<table cellspacing='0' class='percent_graph' cellpadding='0' width='100'>
|
593
|
-
<tr>
|
594
|
-
<td class='covered' width='100' />
|
595
|
-
<td class='uncovered' width='0' />
|
596
|
-
</tr>
|
597
|
-
</table>
|
598
|
-
</td>
|
599
|
-
</tr>
|
600
|
-
</table>
|
601
|
-
</td>
|
602
|
-
<td>
|
603
|
-
<table cellspacing='0' cellpadding='0' align='right'>
|
604
|
-
<tr>
|
605
|
-
<td>
|
606
|
-
<tt>100.0%</tt> </td>
|
607
|
-
<td>
|
608
|
-
<table cellspacing='0' class='percent_graph' cellpadding='0' width='100'>
|
609
|
-
<tr>
|
610
|
-
<td class='covered' width='100' />
|
611
|
-
<td class='uncovered' width='0' />
|
612
|
-
</tr>
|
613
|
-
</table>
|
614
|
-
</td>
|
615
|
-
</tr>
|
616
|
-
</table>
|
617
|
-
</td>
|
618
|
-
</tr>
|
619
|
-
</tbody>
|
620
|
-
</table><pre><span class="marked1"><a name="line1" /> 1 module Config
|
621
|
-
</span><span class="inferred0"><a name="line2" /> 2
|
622
|
-
</span><span class="marked1"><a name="line3" /> 3 class ConfigException < StandardError
|
623
|
-
</span><span class="marked0"><a name="line4" /> 4 attr_reader :caller
|
624
|
-
</span><span class="inferred1"><a name="line5" /> 5
|
625
|
-
</span><span class="marked0"><a name="line6" /> 6 def initialize(_caller, *_args)
|
626
|
-
</span><span class="marked1"><a name="line7" /> 7 super(_args)
|
627
|
-
</span><span class="marked0"><a name="line8" /> 8 @caller = _caller
|
628
|
-
</span><span class="inferred1"><a name="line9" /> 9 end
|
629
|
-
</span><span class="inferred0"><a name="line10" />10 end
|
630
|
-
</span><span class="inferred1"><a name="line11" />11
|
631
|
-
</span><span class="marked0"><a name="line12" />12 class ConfigWrongFormatException < ConfigException
|
632
|
-
</span><span class="inferred1"><a name="line13" />13 end
|
633
|
-
</span><span class="inferred0"><a name="line14" />14
|
634
|
-
</span><span class="marked1"><a name="line15" />15 class ConfigMergeException < ConfigException
|
635
|
-
</span><span class="inferred0"><a name="line16" />16 end
|
636
|
-
</span><span class="inferred1"><a name="line17" />17
|
637
|
-
</span><span class="inferred0"><a name="line18" />18 end
|
638
|
-
</span></pre><hr /> <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a> version 0.7.0.</p><p>
|
639
|
-
<a href='http://validator.w3.org/check/referer'>
|
640
|
-
<img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88' />
|
641
|
-
</a>
|
642
|
-
<a href='http://jigsaw.w3.org/css-validator/check/referer'>
|
643
|
-
<img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px' />
|
644
|
-
</a>
|
645
|
-
</p>
|
646
|
-
</body>
|
647
|
-
</html>
|