classx 0.0.3 → 0.0.4
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/ChangeLog +354 -0
- data/README +5 -0
- data/Rakefile +2 -2
- data/bench/attribute_get.rb +73 -0
- data/bench/attribute_set.rb +53 -19
- data/bench/define_attribute.rb +226 -0
- data/bench/initialize.rb +25 -7
- data/doc/output/coverage/index.html +74 -128
- data/doc/output/coverage/lib-classx-attribute_rb.html +291 -190
- data/doc/output/coverage/lib-classx-attributes_rb.html +167 -101
- data/doc/output/coverage/lib-classx-bracketable_rb.html +671 -0
- data/doc/output/coverage/lib-classx-class_attributes_rb.html +775 -0
- data/doc/output/coverage/lib-classx-commandable_rb.html +727 -0
- data/doc/output/coverage/{-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-block_rb.html → lib-classx-declare_rb.html} +60 -62
- data/doc/output/coverage/lib-classx-validate_rb.html +43 -41
- data/doc/output/coverage/lib-classx_rb.html +208 -78
- data/example/commandable.rb +1 -0
- data/lib/classx.rb +146 -16
- data/lib/classx/attribute.rb +244 -143
- data/lib/classx/attributes.rb +93 -27
- data/lib/classx/bracketable.rb +61 -0
- data/lib/classx/class_attributes.rb +165 -0
- data/lib/classx/commandable.rb +55 -4
- data/lib/classx/declare.rb +40 -3
- data/lib/classx/role/logger.rb +17 -13
- data/lib/classx/validate.rb +26 -24
- data/spec/classx/handles_spec.rb +21 -6
- data/spec/classx/serialize_spec.rb +57 -0
- data/spec/classx/{with_coerce.rb → with_coerce_spec.rb} +0 -0
- data/spec/classx/with_extend_spec.rb +58 -0
- data/spec/classx/with_include_spec.rb +58 -0
- data/spec/classx/with_validate_spec.rb +363 -0
- data/spec/classx/without_anyoption_spec.rb +1 -1
- data/spec/classx/writable_option_spec.rb +29 -4
- data/spec/classx_bracketable_spec.rb +160 -0
- data/spec/classx_class_attributes/default_option_spec.rb +121 -0
- data/spec/classx_class_attributes/dsl_accessor_spec.rb +88 -0
- data/spec/classx_class_attributes/handles_spec.rb +77 -0
- data/spec/classx_class_attributes/with_coerce_spec.rb +119 -0
- data/spec/classx_class_attributes/with_extend_spec.rb +64 -0
- data/spec/classx_class_attributes/with_include_spec.rb +64 -0
- data/spec/classx_class_attributes/with_multiple_class_spec.rb +60 -0
- data/spec/classx_class_attributes/with_validate_spec.rb +248 -0
- data/spec/classx_class_attributes/without_accessor_spec.rb +19 -0
- data/spec/classx_class_attributes/without_anyoption_spec.rb +21 -0
- data/spec/classx_class_attributes/writable_option_spec.rb +100 -0
- data/spec/classx_declare_spec.rb +117 -0
- data/spec/classx_validate_spec.rb +1 -3
- data/tasks/basic_tasks.rake +1 -1
- metadata +36 -26
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-callbacks_rb.html +0 -932
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-change_rb.html +0 -779
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-hunk_rb.html +0 -867
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs_rb.html +0 -1715
- data/doc/output/coverage/-Library-Ruby-Gems-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +0 -1598
- data/spec/classx/with_extend.rb +0 -27
- data/spec/classx/with_include.rb +0 -27
data/bench/attribute_set.rb
CHANGED
@@ -24,33 +24,67 @@ COUNT = 1000
|
|
24
24
|
point_with_classx = PointWithClassX.new({ :x => 0, :y => 0, :z => 0 })
|
25
25
|
point_without_classx = PointWithoutClassX.new({ :x => 0, :y => 0, :z => 0 })
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
27
|
+
def do_bench klass, style=:equal
|
28
|
+
GC.disable
|
29
|
+
COUNT.times do
|
30
|
+
if style == :equal
|
31
|
+
klass.__send__ :x=, rand(10)
|
32
|
+
klass.__send__ :y=, rand(10)
|
33
|
+
klass.__send__ :z=, rand(10)
|
34
|
+
elsif style == :getter_with_arg
|
35
|
+
klass.__send__ :x, rand(10)
|
36
|
+
klass.__send__ :y, rand(10)
|
37
|
+
klass.__send__ :z, rand(10)
|
33
38
|
end
|
34
39
|
end
|
40
|
+
GC.enable
|
41
|
+
end
|
42
|
+
|
43
|
+
Benchmark.bm do |x|
|
44
|
+
x.report 'classx with attr_name = val' do
|
45
|
+
do_bench point_with_classx
|
46
|
+
end
|
47
|
+
x.report 'classx with attr_name(val)' do
|
48
|
+
do_bench point_with_classx, :getter_with_arg
|
49
|
+
end
|
35
50
|
x.report 'normal class' do
|
36
|
-
|
37
|
-
point_without_classx.x = rand(10)
|
38
|
-
point_without_classx.y = rand(10)
|
39
|
-
point_without_classx.z = rand(10)
|
40
|
-
end
|
51
|
+
do_bench point_without_classx
|
41
52
|
end
|
42
53
|
end
|
43
54
|
|
44
55
|
# On my environment( MacBook1.1 Intel Core Duo 1.83 GHz, 2GB), result is like that. TOOOOO SLOOOW classX!!!!.
|
45
56
|
#
|
46
57
|
# ----------------------------------------------------------
|
47
|
-
# result after
|
48
|
-
#
|
49
|
-
# classx
|
50
|
-
#
|
58
|
+
# result after 92ed088b ( before 0.0.4 )
|
59
|
+
# user system total real
|
60
|
+
# classx with attr_name = val 0.020000 0.010000 0.030000 ( 0.029100)
|
61
|
+
# classx with attr_name(val) 0.040000 0.000000 0.040000 ( 0.050599)
|
62
|
+
# normal class 0.000000 0.000000 0.000000 ( 0.002188)
|
63
|
+
# ----------------------------------------------------------
|
64
|
+
# result after 3e97a758
|
65
|
+
# user system total real
|
66
|
+
# classx with attr_name = val 0.020000 0.000000 0.020000 ( 0.026784)
|
67
|
+
# classx with attr_name(val) 0.030000 0.010000 0.040000 ( 0.051044)
|
68
|
+
# normal class 0.010000 0.000000 0.010000 ( 0.002661)
|
69
|
+
# ----------------------------------------------------------
|
70
|
+
# result after dd155598
|
71
|
+
# user system total real
|
72
|
+
# classx with attr_name = val 0.020000 0.000000 0.020000 ( 0.020638)
|
73
|
+
# classx with attr_name(val) 0.030000 0.000000 0.030000 ( 0.038159)
|
74
|
+
# normal class 0.000000 0.000000 0.000000 ( 0.002225)
|
75
|
+
# ----------------------------------------------------------
|
76
|
+
# result after 1f4c448b
|
77
|
+
# user system total real
|
78
|
+
# classx with attr_name = val 0.020000 0.010000 0.030000 ( 0.024688)
|
79
|
+
# normal class 0.000000 0.000000 0.000000 ( 0.001821)
|
80
|
+
# ----------------------------------------------------------
|
81
|
+
# result after a23be1ac
|
82
|
+
# user system total real
|
83
|
+
# classx with attr_name = val 0.040000 0.000000 0.040000 ( 0.038855)
|
84
|
+
# normal class 0.000000 0.000000 0.000000 ( 0.001833)
|
51
85
|
# ----------------------------------------------------------
|
52
|
-
# result after
|
53
|
-
#
|
54
|
-
# classx
|
55
|
-
# normal class
|
86
|
+
# result after 458848f
|
87
|
+
# user system total real
|
88
|
+
# classx with attr_name = val 0.030000 0.010000 0.040000 ( 0.051419)
|
89
|
+
# normal class 0.000000 0.000000 0.000000 ( 0.007453)
|
56
90
|
# ----------------------------------------------------------
|
@@ -0,0 +1,226 @@
|
|
1
|
+
require 'benchmark'
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
|
4
|
+
require 'classx'
|
5
|
+
|
6
|
+
include ClassX::Declare
|
7
|
+
|
8
|
+
def count_times_define &block
|
9
|
+
GC.disable
|
10
|
+
attr_name = 'a'
|
11
|
+
COUNT.times do
|
12
|
+
block.call(attr_name)
|
13
|
+
attr_name = attr_name.succ
|
14
|
+
end
|
15
|
+
GC.enable
|
16
|
+
end
|
17
|
+
|
18
|
+
COUNT = 1000
|
19
|
+
Benchmark.bm do |x|
|
20
|
+
x.report "attr_reader" do
|
21
|
+
class SimpleDefine
|
22
|
+
include ClassX
|
23
|
+
|
24
|
+
count_times_define do |name|
|
25
|
+
attr_reader name
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
x.report "simple define" do
|
30
|
+
class SimpleDefine
|
31
|
+
include ClassX
|
32
|
+
|
33
|
+
count_times_define do |name|
|
34
|
+
has name
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
x.report "with declare" do
|
39
|
+
classx "WithDeclare" do
|
40
|
+
count_times_define do |name|
|
41
|
+
has name
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
x.report "with writable" do
|
46
|
+
class WithWritable
|
47
|
+
include ClassX
|
48
|
+
|
49
|
+
count_times_define do |name|
|
50
|
+
has name, :writable => true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
x.report "with optional" do
|
56
|
+
class WithOptional
|
57
|
+
include ClassX
|
58
|
+
|
59
|
+
count_times_define do |name|
|
60
|
+
has name, :optional => true
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
x.report "with default" do
|
66
|
+
class WithDefault
|
67
|
+
include ClassX
|
68
|
+
|
69
|
+
count_times_define do |name|
|
70
|
+
has name, :default => name
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
x.report "with default Proc" do
|
76
|
+
class WithDefaultProc
|
77
|
+
include ClassX
|
78
|
+
|
79
|
+
count_times_define do |name|
|
80
|
+
has name, :default => proc {|mine| name }
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
x.report "with default Proc lazy" do
|
86
|
+
class WithDefaultProcLazy
|
87
|
+
include ClassX
|
88
|
+
|
89
|
+
count_times_define do |name|
|
90
|
+
has name, :lazy => true, :default => proc {|mine| name }
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
x.report "with validate Proc" do
|
95
|
+
class WithValidateProc
|
96
|
+
include ClassX
|
97
|
+
|
98
|
+
count_times_define do |name|
|
99
|
+
has name, :validate => proc { true }
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
x.report "with validate Regexp" do
|
105
|
+
class WithValidateRegexp
|
106
|
+
include ClassX
|
107
|
+
|
108
|
+
count_times_define do |name|
|
109
|
+
has name, :validate => /hoge/
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
x.report "with handles Array" do
|
115
|
+
class WithHandlesArray
|
116
|
+
include ClassX
|
117
|
+
|
118
|
+
count_times_define do |name|
|
119
|
+
has name, :handles => [ "#{name}_foo", ]
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
x.report "with handles Hash" do
|
125
|
+
class WithHandlesHash
|
126
|
+
include ClassX
|
127
|
+
|
128
|
+
count_times_define do |name|
|
129
|
+
has name, :handles => { "#{name}_foo" => "foo", }
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
x.report "with include" do
|
134
|
+
class WithInclude
|
135
|
+
include ClassX
|
136
|
+
|
137
|
+
mod = Module.new
|
138
|
+
count_times_define do |name|
|
139
|
+
has name, :include => mod
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
x.report "with extend" do
|
145
|
+
class WithExtend
|
146
|
+
include ClassX
|
147
|
+
|
148
|
+
mod = Module.new
|
149
|
+
count_times_define do |name|
|
150
|
+
has name, :extend => mod
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
# On my environment( MacBook1.1 Intel Core Duo 1.83 GHz, 2GB), result is like that. TOOOOO SLOOOW classX!!!!.
|
157
|
+
#
|
158
|
+
# ----------------------------------------------------------
|
159
|
+
# result after 92ed088b ( before 0.0.4 )
|
160
|
+
# attr_reader 0.010000 0.000000 0.010000 ( 0.011373)
|
161
|
+
# simple define 0.190000 0.020000 0.210000 ( 0.245375)
|
162
|
+
# with declare 0.210000 0.020000 0.230000 ( 0.269984)
|
163
|
+
# with writable 0.170000 0.020000 0.190000 ( 0.198645)
|
164
|
+
# with optional 0.230000 0.020000 0.250000 ( 0.265170)
|
165
|
+
# with default 0.170000 0.010000 0.180000 ( 0.190290)
|
166
|
+
# with default Proc 0.240000 0.020000 0.260000 ( 0.271484)
|
167
|
+
# with default Proc lazy 0.180000 0.010000 0.190000 ( 0.204015)
|
168
|
+
# with validate Proc 0.290000 0.030000 0.320000 ( 0.317159)
|
169
|
+
# with validate Regexp 0.170000 0.010000 0.180000 ( 0.201919)
|
170
|
+
# with handles Array 0.330000 0.020000 0.350000 ( 0.352262)
|
171
|
+
# with handles Hash 0.210000 0.020000 0.230000 ( 0.233292)
|
172
|
+
# with include 0.320000 0.020000 0.340000 ( 0.353505)
|
173
|
+
# with extend 0.190000 0.010000 0.200000 ( 0.218557)
|
174
|
+
# ----------------------------------------------------------
|
175
|
+
# result after dd1bb608
|
176
|
+
# user system total real
|
177
|
+
# attr_reader 0.010000 0.000000 0.010000 ( 0.011491)
|
178
|
+
# simple define 0.190000 0.020000 0.210000 ( 0.244600)
|
179
|
+
# with declare 0.210000 0.020000 0.230000 ( 0.275477)
|
180
|
+
# with writable 0.160000 0.010000 0.170000 ( 0.182082)
|
181
|
+
# with optional 0.240000 0.020000 0.260000 ( 0.259744)
|
182
|
+
# with default 0.180000 0.020000 0.200000 ( 0.205924)
|
183
|
+
# with default Proc 0.250000 0.010000 0.260000 ( 0.281318)
|
184
|
+
# with default Proc lazy 0.170000 0.020000 0.190000 ( 0.193371)
|
185
|
+
# with validate Proc 0.270000 0.020000 0.290000 ( 0.327297)
|
186
|
+
# with validate Regexp 0.170000 0.010000 0.180000 ( 0.203348)
|
187
|
+
# with handles Array 0.300000 0.020000 0.320000 ( 0.343018)
|
188
|
+
# with handles Hash 0.200000 0.020000 0.220000 ( 0.227186)
|
189
|
+
# with include 0.320000 0.020000 0.340000 ( 0.345723)
|
190
|
+
# with extend 0.190000 0.010000 0.200000 ( 0.212512)
|
191
|
+
# ----------------------------------------------------------
|
192
|
+
# result after 29a8e329
|
193
|
+
# user system total real
|
194
|
+
# attr_reader 0.010000 0.010000 0.020000 ( 0.011874)
|
195
|
+
# simple define 0.200000 0.010000 0.210000 ( 0.239444)
|
196
|
+
# with declare 0.210000 0.020000 0.230000 ( 0.264705)
|
197
|
+
# with writable 0.180000 0.020000 0.200000 ( 0.210539)
|
198
|
+
# with optional 0.230000 0.010000 0.240000 ( 0.255122)
|
199
|
+
# with default 0.190000 0.020000 0.210000 ( 0.206571)
|
200
|
+
# with default Proc 0.240000 0.020000 0.260000 ( 0.263485)
|
201
|
+
# with default Proc lazy 0.200000 0.010000 0.210000 ( 0.224858)
|
202
|
+
# with validate Proc 0.300000 0.020000 0.320000 ( 0.309174)
|
203
|
+
# with validate Regexp 0.180000 0.010000 0.190000 ( 0.213703)
|
204
|
+
# with handles Array 0.340000 0.030000 0.370000 ( 0.364112)
|
205
|
+
# with handles Hash 0.200000 0.020000 0.220000 ( 0.227948)
|
206
|
+
# with include 0.340000 0.010000 0.350000 ( 0.357848)
|
207
|
+
# with extend 0.210000 0.020000 0.230000 ( 0.223762)
|
208
|
+
# ----------------------------------------------------------
|
209
|
+
# result after 1f4c448b
|
210
|
+
# user system total real
|
211
|
+
# user system total real
|
212
|
+
# attr_reader 0.010000 0.000000 0.010000 ( 0.010592)
|
213
|
+
# simple define 0.340000 0.060000 0.400000 ( 0.394536)
|
214
|
+
# with declare 0.380000 0.060000 0.440000 ( 0.457872)
|
215
|
+
# with writable 0.310000 0.050000 0.360000 ( 0.361601)
|
216
|
+
# with optional 0.410000 0.060000 0.470000 ( 0.482068)
|
217
|
+
# with default 0.290000 0.040000 0.330000 ( 0.347324)
|
218
|
+
# with default Proc 0.430000 0.060000 0.490000 ( 0.492673)
|
219
|
+
# with default Proc lazy 0.290000 0.050000 0.340000 ( 0.351080)
|
220
|
+
# with validate Proc 0.470000 0.060000 0.530000 ( 0.542845)
|
221
|
+
# with validate Regexp 0.280000 0.050000 0.330000 ( 0.342968)
|
222
|
+
# with handles Array 0.550000 0.060000 0.610000 ( 0.609591)
|
223
|
+
# with handles Hash 0.330000 0.050000 0.380000 ( 0.396480)
|
224
|
+
# with include 0.560000 0.050000 0.610000 ( 0.626158)
|
225
|
+
# with extend 0.310000 0.050000 0.360000 ( 0.379358)
|
226
|
+
# ----------------------------------------------------------
|
data/bench/initialize.rb
CHANGED
@@ -21,21 +21,39 @@ end
|
|
21
21
|
|
22
22
|
COUNT = 1000
|
23
23
|
|
24
|
+
def do_bench klass
|
25
|
+
GC.disable
|
26
|
+
COUNT.times do
|
27
|
+
klass.new({ :x => rand(10), :y => rand(10), :z => rand(10) })
|
28
|
+
end
|
29
|
+
GC.enable
|
30
|
+
end
|
31
|
+
|
24
32
|
Benchmark.bm do |x|
|
25
33
|
x.report 'classx' do
|
26
|
-
|
27
|
-
PointWithClassX.new({ :x => rand(10), :y => rand(10), :z => rand(10) })
|
28
|
-
end
|
34
|
+
do_bench PointWithClassX
|
29
35
|
end
|
30
36
|
x.report 'normal class' do
|
31
|
-
|
32
|
-
PointWithoutClassX.new({ :x => rand(10), :y => rand(10), :z => rand(10) })
|
33
|
-
end
|
37
|
+
do_bench PointWithoutClassX
|
34
38
|
end
|
35
39
|
end
|
36
40
|
|
37
41
|
# On my environment( MacBook1.1 Intel Core Duo 1.83 GHz, 2GB), result is like that. TOOOOO SLOOOW classX!!!!.
|
38
|
-
#
|
42
|
+
#
|
43
|
+
# ----------------------------------------------------------
|
44
|
+
# result after 92ed088b ( before 0.0.4 )
|
45
|
+
# classx 0.060000 0.010000 0.070000 ( 0.083939)
|
46
|
+
# normal class 0.010000 0.000000 0.010000 ( 0.004305)
|
47
|
+
# ----------------------------------------------------------
|
48
|
+
# result after 1f4c448b
|
49
|
+
# user system total real
|
50
|
+
# classx 0.090000 0.010000 0.100000 ( 0.093254)
|
51
|
+
# normal class 0.000000 0.000000 0.000000 ( 0.004242)
|
52
|
+
# ----------------------------------------------------------
|
53
|
+
# result after a23be1ac
|
54
|
+
# user system total real
|
55
|
+
# classx 0.100000 0.010000 0.110000 ( 0.125652)
|
56
|
+
# normal class 0.000000 0.000000 0.000000 ( 0.004604)
|
39
57
|
# ----------------------------------------------------------
|
40
58
|
# result after 633f7e88
|
41
59
|
# user system total real
|
@@ -148,7 +148,7 @@ table.report tr.dark {
|
|
148
148
|
</script>
|
149
149
|
</head>
|
150
150
|
<body><h3>C0 code coverage information</h3>
|
151
|
-
<p>Generated on Sat
|
151
|
+
<p>Generated on Sat Sep 13 00:31:28 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
|
152
152
|
</p>
|
153
153
|
<hr/>
|
154
154
|
<table class='report'><thead><tr><td class='heading'>Name</td>
|
@@ -159,24 +159,24 @@ table.report tr.dark {
|
|
159
159
|
</tr>
|
160
160
|
</thead>
|
161
161
|
<tbody><tr class='light'><td>TOTAL</td>
|
162
|
-
<td class='lines_total'><tt>
|
162
|
+
<td class='lines_total'><tt>1081</tt>
|
163
163
|
</td>
|
164
|
-
<td class='lines_code'><tt>
|
164
|
+
<td class='lines_code'><tt>700</tt>
|
165
165
|
</td>
|
166
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>
|
166
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>92.2%</tt>
|
167
167
|
</td>
|
168
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
169
|
-
<td class='uncovered' width='
|
168
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='92'/>
|
169
|
+
<td class='uncovered' width='8'/>
|
170
170
|
</tr>
|
171
171
|
</table>
|
172
172
|
</td>
|
173
173
|
</tr>
|
174
174
|
</table>
|
175
175
|
</td>
|
176
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>
|
176
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>88.7%</tt>
|
177
177
|
</td>
|
178
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
179
|
-
<td class='uncovered' width='
|
178
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='89'/>
|
179
|
+
<td class='uncovered' width='11'/>
|
180
180
|
</tr>
|
181
181
|
</table>
|
182
182
|
</td>
|
@@ -184,80 +184,26 @@ table.report tr.dark {
|
|
184
184
|
</table>
|
185
185
|
</td>
|
186
186
|
</tr>
|
187
|
-
<tr class='dark'><td><a href='
|
188
|
-
</td>
|
189
|
-
<td class='lines_total'><tt>1105</tt>
|
190
|
-
</td>
|
191
|
-
<td class='lines_code'><tt>553</tt>
|
192
|
-
</td>
|
193
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>46.3%</tt>
|
194
|
-
</td>
|
195
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='46'/>
|
196
|
-
<td class='uncovered' width='54'/>
|
197
|
-
</tr>
|
198
|
-
</table>
|
199
|
-
</td>
|
200
|
-
</tr>
|
201
|
-
</table>
|
202
|
-
</td>
|
203
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>6.5%</tt>
|
204
|
-
</td>
|
205
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='7'/>
|
206
|
-
<td class='uncovered' width='93'/>
|
207
|
-
</tr>
|
208
|
-
</table>
|
209
|
-
</td>
|
210
|
-
</tr>
|
211
|
-
</table>
|
212
|
-
</td>
|
213
|
-
</tr>
|
214
|
-
<tr class='light'><td><a href='-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-block_rb.html'>/Library/Ruby/Gems/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb</a>
|
215
|
-
</td>
|
216
|
-
<td class='lines_total'><tt>51</tt>
|
217
|
-
</td>
|
218
|
-
<td class='lines_code'><tt>28</tt>
|
219
|
-
</td>
|
220
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>52.9%</tt>
|
221
|
-
</td>
|
222
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='53'/>
|
223
|
-
<td class='uncovered' width='47'/>
|
224
|
-
</tr>
|
225
|
-
</table>
|
226
|
-
</td>
|
227
|
-
</tr>
|
228
|
-
</table>
|
229
|
-
</td>
|
230
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>17.9%</tt>
|
231
|
-
</td>
|
232
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='18'/>
|
233
|
-
<td class='uncovered' width='82'/>
|
234
|
-
</tr>
|
235
|
-
</table>
|
236
|
-
</td>
|
237
|
-
</tr>
|
238
|
-
</table>
|
239
|
-
</td>
|
240
|
-
</tr>
|
241
|
-
<tr class='dark'><td><a href='-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-callbacks_rb.html'>/Library/Ruby/Gems/gems/diff-lcs-1.1.2/lib/diff/lcs/callbacks.rb</a>
|
187
|
+
<tr class='dark'><td><a href='lib-classx_rb.html'>lib/classx.rb</a>
|
242
188
|
</td>
|
243
|
-
<td class='lines_total'><tt>
|
189
|
+
<td class='lines_total'><tt>205</tt>
|
244
190
|
</td>
|
245
|
-
<td class='lines_code'><tt>
|
191
|
+
<td class='lines_code'><tt>130</tt>
|
246
192
|
</td>
|
247
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>
|
193
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
248
194
|
</td>
|
249
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
250
|
-
<td class='uncovered' width='
|
195
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
196
|
+
<td class='uncovered' width='0'/>
|
251
197
|
</tr>
|
252
198
|
</table>
|
253
199
|
</td>
|
254
200
|
</tr>
|
255
201
|
</table>
|
256
202
|
</td>
|
257
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>
|
203
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
|
258
204
|
</td>
|
259
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
260
|
-
<td class='uncovered' width='
|
205
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
206
|
+
<td class='uncovered' width='0'/>
|
261
207
|
</tr>
|
262
208
|
</table>
|
263
209
|
</td>
|
@@ -265,26 +211,26 @@ table.report tr.dark {
|
|
265
211
|
</table>
|
266
212
|
</td>
|
267
213
|
</tr>
|
268
|
-
<tr class='light'><td><a href='
|
214
|
+
<tr class='light'><td><a href='lib-classx-attribute_rb.html'>lib/classx/attribute.rb</a>
|
269
215
|
</td>
|
270
|
-
<td class='lines_total'><tt>
|
216
|
+
<td class='lines_total'><tt>286</tt>
|
271
217
|
</td>
|
272
|
-
<td class='lines_code'><tt>
|
218
|
+
<td class='lines_code'><tt>221</tt>
|
273
219
|
</td>
|
274
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>
|
220
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>98.6%</tt>
|
275
221
|
</td>
|
276
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
277
|
-
<td class='uncovered' width='
|
222
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='99'/>
|
223
|
+
<td class='uncovered' width='1'/>
|
278
224
|
</tr>
|
279
225
|
</table>
|
280
226
|
</td>
|
281
227
|
</tr>
|
282
228
|
</table>
|
283
229
|
</td>
|
284
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>
|
230
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>98.2%</tt>
|
285
231
|
</td>
|
286
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
287
|
-
<td class='uncovered' width='
|
232
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='98'/>
|
233
|
+
<td class='uncovered' width='2'/>
|
288
234
|
</tr>
|
289
235
|
</table>
|
290
236
|
</td>
|
@@ -292,26 +238,26 @@ table.report tr.dark {
|
|
292
238
|
</table>
|
293
239
|
</td>
|
294
240
|
</tr>
|
295
|
-
<tr class='dark'><td><a href='
|
241
|
+
<tr class='dark'><td><a href='lib-classx-attributes_rb.html'>lib/classx/attributes.rb</a>
|
296
242
|
</td>
|
297
|
-
<td class='lines_total'><tt>
|
243
|
+
<td class='lines_total'><tt>158</tt>
|
298
244
|
</td>
|
299
|
-
<td class='lines_code'><tt>
|
245
|
+
<td class='lines_code'><tt>94</tt>
|
300
246
|
</td>
|
301
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>
|
247
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
302
248
|
</td>
|
303
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
304
|
-
<td class='uncovered' width='
|
249
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
250
|
+
<td class='uncovered' width='0'/>
|
305
251
|
</tr>
|
306
252
|
</table>
|
307
253
|
</td>
|
308
254
|
</tr>
|
309
255
|
</table>
|
310
256
|
</td>
|
311
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>
|
257
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
|
312
258
|
</td>
|
313
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
314
|
-
<td class='uncovered' width='
|
259
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
260
|
+
<td class='uncovered' width='0'/>
|
315
261
|
</tr>
|
316
262
|
</table>
|
317
263
|
</td>
|
@@ -319,26 +265,26 @@ table.report tr.dark {
|
|
319
265
|
</table>
|
320
266
|
</td>
|
321
267
|
</tr>
|
322
|
-
<tr class='light'><td><a href='-
|
268
|
+
<tr class='light'><td><a href='lib-classx-bracketable_rb.html'>lib/classx/bracketable.rb</a>
|
323
269
|
</td>
|
324
|
-
<td class='lines_total'><tt>
|
270
|
+
<td class='lines_total'><tt>61</tt>
|
325
271
|
</td>
|
326
|
-
<td class='lines_code'><tt>
|
272
|
+
<td class='lines_code'><tt>34</tt>
|
327
273
|
</td>
|
328
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>
|
274
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
329
275
|
</td>
|
330
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
331
|
-
<td class='uncovered' width='
|
276
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
277
|
+
<td class='uncovered' width='0'/>
|
332
278
|
</tr>
|
333
279
|
</table>
|
334
280
|
</td>
|
335
281
|
</tr>
|
336
282
|
</table>
|
337
283
|
</td>
|
338
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>
|
284
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
|
339
285
|
</td>
|
340
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
341
|
-
<td class='uncovered' width='
|
286
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
287
|
+
<td class='uncovered' width='0'/>
|
342
288
|
</tr>
|
343
289
|
</table>
|
344
290
|
</td>
|
@@ -346,26 +292,26 @@ table.report tr.dark {
|
|
346
292
|
</table>
|
347
293
|
</td>
|
348
294
|
</tr>
|
349
|
-
<tr class='dark'><td><a href='lib-
|
295
|
+
<tr class='dark'><td><a href='lib-classx-class_attributes_rb.html'>lib/classx/class_attributes.rb</a>
|
350
296
|
</td>
|
351
|
-
<td class='lines_total'><tt>
|
297
|
+
<td class='lines_total'><tt>165</tt>
|
352
298
|
</td>
|
353
|
-
<td class='lines_code'><tt>
|
299
|
+
<td class='lines_code'><tt>108</tt>
|
354
300
|
</td>
|
355
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>
|
301
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>95.2%</tt>
|
356
302
|
</td>
|
357
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
358
|
-
<td class='uncovered' width='
|
303
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='95'/>
|
304
|
+
<td class='uncovered' width='5'/>
|
359
305
|
</tr>
|
360
306
|
</table>
|
361
307
|
</td>
|
362
308
|
</tr>
|
363
309
|
</table>
|
364
310
|
</td>
|
365
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>
|
311
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>92.6%</tt>
|
366
312
|
</td>
|
367
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
368
|
-
<td class='uncovered' width='
|
313
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='93'/>
|
314
|
+
<td class='uncovered' width='7'/>
|
369
315
|
</tr>
|
370
316
|
</table>
|
371
317
|
</td>
|
@@ -373,26 +319,26 @@ table.report tr.dark {
|
|
373
319
|
</table>
|
374
320
|
</td>
|
375
321
|
</tr>
|
376
|
-
<tr class='light'><td><a href='lib-classx-
|
322
|
+
<tr class='light'><td><a href='lib-classx-commandable_rb.html'>lib/classx/commandable.rb</a>
|
377
323
|
</td>
|
378
|
-
<td class='lines_total'><tt>
|
324
|
+
<td class='lines_total'><tt>117</tt>
|
379
325
|
</td>
|
380
|
-
<td class='lines_code'><tt>
|
326
|
+
<td class='lines_code'><tt>70</tt>
|
381
327
|
</td>
|
382
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>
|
328
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>41.0%</tt>
|
383
329
|
</td>
|
384
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
385
|
-
<td class='uncovered' width='
|
330
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='41'/>
|
331
|
+
<td class='uncovered' width='59'/>
|
386
332
|
</tr>
|
387
333
|
</table>
|
388
334
|
</td>
|
389
335
|
</tr>
|
390
336
|
</table>
|
391
337
|
</td>
|
392
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>
|
338
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>8.6%</tt>
|
393
339
|
</td>
|
394
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
395
|
-
<td class='uncovered' width='
|
340
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='9'/>
|
341
|
+
<td class='uncovered' width='91'/>
|
396
342
|
</tr>
|
397
343
|
</table>
|
398
344
|
</td>
|
@@ -400,26 +346,26 @@ table.report tr.dark {
|
|
400
346
|
</table>
|
401
347
|
</td>
|
402
348
|
</tr>
|
403
|
-
<tr class='dark'><td><a href='lib-classx-
|
349
|
+
<tr class='dark'><td><a href='lib-classx-declare_rb.html'>lib/classx/declare.rb</a>
|
404
350
|
</td>
|
405
|
-
<td class='lines_total'><tt>
|
351
|
+
<td class='lines_total'><tt>49</tt>
|
406
352
|
</td>
|
407
|
-
<td class='lines_code'><tt>
|
353
|
+
<td class='lines_code'><tt>26</tt>
|
408
354
|
</td>
|
409
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>
|
355
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>93.9%</tt>
|
410
356
|
</td>
|
411
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
412
|
-
<td class='uncovered' width='
|
357
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='94'/>
|
358
|
+
<td class='uncovered' width='6'/>
|
413
359
|
</tr>
|
414
360
|
</table>
|
415
361
|
</td>
|
416
362
|
</tr>
|
417
363
|
</table>
|
418
364
|
</td>
|
419
|
-
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>
|
365
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>88.5%</tt>
|
420
366
|
</td>
|
421
|
-
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='
|
422
|
-
<td class='uncovered' width='
|
367
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='88'/>
|
368
|
+
<td class='uncovered' width='12'/>
|
423
369
|
</tr>
|
424
370
|
</table>
|
425
371
|
</td>
|
@@ -429,9 +375,9 @@ table.report tr.dark {
|
|
429
375
|
</tr>
|
430
376
|
<tr class='light'><td><a href='lib-classx-validate_rb.html'>lib/classx/validate.rb</a>
|
431
377
|
</td>
|
432
|
-
<td class='lines_total'><tt>
|
378
|
+
<td class='lines_total'><tt>40</tt>
|
433
379
|
</td>
|
434
|
-
<td class='lines_code'><tt>
|
380
|
+
<td class='lines_code'><tt>17</tt>
|
435
381
|
</td>
|
436
382
|
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
437
383
|
</td>
|