classx 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -17,7 +17,7 @@ DESCRIPTION = <<-"END_DESCRIPTION"
17
17
  Meta Framework extending and flexible attribute like Moose ( perl )
18
18
  END_DESCRIPTION
19
19
  BIN_FILES = %w( )
20
- VERS = "0.0.6"
20
+ VERS = "0.0.7"
21
21
 
22
22
  EXTRA_RDOC_FILES = []
23
23
  HECKLE_ROOT_MODULES = ["Classx"]
@@ -75,7 +75,7 @@ module ClassX
75
75
 
76
76
  attribute_of.each do |key, val|
77
77
  next if val.class.lazy?
78
- raise AttrRequiredError, "param: :#{key} is required to #{hash.inspect}" if !val.class.optional? && !val.get
78
+ raise AttrRequiredError, "param: :#{key} is required to #{hash.inspect}" if !val.class.optional? && val.get.nil?
79
79
  end
80
80
 
81
81
  after_init
@@ -102,11 +102,11 @@ module ClassX
102
102
  define_method name do |*vals|
103
103
  if vals == []
104
104
  @__attribute_data_of ||= {}
105
- if @__attribute_data_of[name]
106
- return @__attribute_data_of[name]
107
- else
105
+ if @__attribute_data_of[name].nil?
108
106
  attr_instance = __send__ "attribute_of:#{name}"
109
- return @__attribute_data_of[name] = attr_instance.get
107
+ return ( @__attribute_data_of[name] = attr_instance.get )
108
+ else
109
+ return @__attribute_data_of[name]
110
110
  end
111
111
  else
112
112
  raise ArgumentError if vals.size > 1
@@ -33,6 +33,20 @@ describe ClassX do
33
33
  end
34
34
  end
35
35
 
36
+ describe 'when value is false' do
37
+ before do
38
+ @class = Class.new
39
+ @class.class_eval do
40
+ include ClassX
41
+ has :x, :default => lambda { false }
42
+ end
43
+ end
44
+
45
+ it "should return false" do
46
+ @class.new.x.should == false
47
+ end
48
+ end
49
+
36
50
  describe 'when value is not Proc' do
37
51
  before do
38
52
  @class = Class.new
@@ -123,6 +137,24 @@ describe ClassX do
123
137
  lambda { @class.new }.should_not raise_error(ClassX::AttrRequiredError)
124
138
  end
125
139
  end
140
+
141
+ describe 'when value is false' do
142
+ before do
143
+ @class = Class.new
144
+ @class.class_eval do
145
+ include ClassX
146
+ has :x, :optional => true
147
+ end
148
+ end
149
+
150
+ it "shoult return false " do
151
+ obj = @class.new
152
+ obj.x = false
153
+ p obj
154
+ obj.x.should == false
155
+ end
156
+ end
157
+
126
158
  end
127
159
 
128
160
  describe 'not attribute param exist in #initialize argument' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: classx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keiji, Yoshimi
@@ -9,7 +9,7 @@ autorequire: ""
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-26 00:00:00 +09:00
12
+ date: 2009-02-25 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -79,16 +79,6 @@ files:
79
79
  - spec/spec.opts
80
80
  - spec/spec_helper.rb
81
81
  - doc/output
82
- - doc/output/coverage
83
- - doc/output/coverage/index.html
84
- - doc/output/coverage/lib-classx-attribute_rb.html
85
- - doc/output/coverage/lib-classx-attributes_rb.html
86
- - doc/output/coverage/lib-classx-bracketable_rb.html
87
- - doc/output/coverage/lib-classx-class_attributes_rb.html
88
- - doc/output/coverage/lib-classx-commandable_rb.html
89
- - doc/output/coverage/lib-classx-declare_rb.html
90
- - doc/output/coverage/lib-classx-validate_rb.html
91
- - doc/output/coverage/lib-classx_rb.html
92
82
  - bench/attribute_get.rb
93
83
  - bench/attribute_set.rb
94
84
  - bench/define_attribute.rb
@@ -131,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
121
  requirements: []
132
122
 
133
123
  rubyforge_project: akasakarb
134
- rubygems_version: 1.3.0
124
+ rubygems_version: 1.3.1
135
125
  signing_key:
136
126
  specification_version: 2
137
127
  summary: Meta Framework extending and flexible attribute like Moose ( perl )
@@ -1,414 +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'><head><title>C0 code coverage information</title>
3
- <style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
4
- <style type='text/css'>span.cross-ref-title {
5
- font-size: 140%;
6
- }
7
- span.cross-ref a {
8
- text-decoration: none;
9
- }
10
- span.cross-ref {
11
- background-color:#f3f7fa;
12
- border: 1px dashed #333;
13
- margin: 1em;
14
- padding: 0.5em;
15
- overflow: hidden;
16
- }
17
- a.crossref-toggle {
18
- text-decoration: none;
19
- }
20
- span.marked0 {
21
- background-color: rgb(185, 210, 200);
22
- display: block;
23
- }
24
- span.marked1 {
25
- background-color: rgb(190, 215, 205);
26
- display: block;
27
- }
28
- span.inferred0 {
29
- background-color: rgb(175, 200, 200);
30
- display: block;
31
- }
32
- span.inferred1 {
33
- background-color: rgb(180, 205, 205);
34
- display: block;
35
- }
36
- span.uncovered0 {
37
- background-color: rgb(225, 110, 110);
38
- display: block;
39
- }
40
- span.uncovered1 {
41
- background-color: rgb(235, 120, 120);
42
- display: block;
43
- }
44
- span.overview {
45
- border-bottom: 8px solid black;
46
- }
47
- div.overview {
48
- border-bottom: 8px solid black;
49
- }
50
- body {
51
- font-family: verdana, arial, helvetica;
52
- }
53
- div.footer {
54
- font-size: 68%;
55
- margin-top: 1.5em;
56
- }
57
- h1, h2, h3, h4, h5, h6 {
58
- margin-bottom: 0.5em;
59
- }
60
- h5 {
61
- margin-top: 0.5em;
62
- }
63
- .hidden {
64
- display: none;
65
- }
66
- div.separator {
67
- height: 10px;
68
- }
69
- /* Commented out for better readability, esp. on IE */
70
- /*
71
- table tr td, table tr th {
72
- font-size: 68%;
73
- }
74
- td.value table tr td {
75
- font-size: 11px;
76
- }
77
- */
78
- table.percent_graph {
79
- height: 12px;
80
- border: #808080 1px solid;
81
- empty-cells: show;
82
- }
83
- table.percent_graph td.covered {
84
- height: 10px;
85
- background: #00f000;
86
- }
87
- table.percent_graph td.uncovered {
88
- height: 10px;
89
- background: #e00000;
90
- }
91
- table.percent_graph td.NA {
92
- height: 10px;
93
- background: #eaeaea;
94
- }
95
- table.report {
96
- border-collapse: collapse;
97
- width: 100%;
98
- }
99
- table.report td.heading {
100
- background: #dcecff;
101
- border: #d0d0d0 1px solid;
102
- font-weight: bold;
103
- text-align: center;
104
- }
105
- table.report td.heading:hover {
106
- background: #c0ffc0;
107
- }
108
- table.report td.text {
109
- border: #d0d0d0 1px solid;
110
- }
111
- table.report td.value,
112
- table.report td.lines_total,
113
- table.report td.lines_code {
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
- </head>
150
- <body><h3>C0 code coverage information</h3>
151
- <p>Generated on Fri Dec 26 09:01:48 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
152
- </p>
153
- <hr/>
154
- <table class='report'><thead><tr><td class='heading'>Name</td>
155
- <td class='heading'>Total lines</td>
156
- <td class='heading'>Lines of code</td>
157
- <td class='heading'>Total coverage</td>
158
- <td class='heading'>Code coverage</td>
159
- </tr>
160
- </thead>
161
- <tbody><tr class='light'><td>TOTAL</td>
162
- <td class='lines_total'><tt>1131</tt>
163
- </td>
164
- <td class='lines_code'><tt>742</tt>
165
- </td>
166
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>92.5%</tt>
167
- &nbsp;</td>
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
- </tr>
171
- </table>
172
- </td>
173
- </tr>
174
- </table>
175
- </td>
176
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>89.2%</tt>
177
- &nbsp;</td>
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
- </tr>
181
- </table>
182
- </td>
183
- </tr>
184
- </table>
185
- </td>
186
- </tr>
187
- <tr class='dark'><td><a href='lib-classx_rb.html'>lib/classx.rb</a>
188
- </td>
189
- <td class='lines_total'><tt>210</tt>
190
- </td>
191
- <td class='lines_code'><tt>136</tt>
192
- </td>
193
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>99.5%</tt>
194
- &nbsp;</td>
195
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
196
- <td class='uncovered' width='0'/>
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'>99.3%</tt>
204
- &nbsp;</td>
205
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='99'/>
206
- <td class='uncovered' width='1'/>
207
- </tr>
208
- </table>
209
- </td>
210
- </tr>
211
- </table>
212
- </td>
213
- </tr>
214
- <tr class='light'><td><a href='lib-classx-attribute_rb.html'>lib/classx/attribute.rb</a>
215
- </td>
216
- <td class='lines_total'><tt>315</tt>
217
- </td>
218
- <td class='lines_code'><tt>244</tt>
219
- </td>
220
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>98.7%</tt>
221
- &nbsp;</td>
222
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='99'/>
223
- <td class='uncovered' width='1'/>
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'>98.4%</tt>
231
- &nbsp;</td>
232
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='98'/>
233
- <td class='uncovered' width='2'/>
234
- </tr>
235
- </table>
236
- </td>
237
- </tr>
238
- </table>
239
- </td>
240
- </tr>
241
- <tr class='dark'><td><a href='lib-classx-attributes_rb.html'>lib/classx/attributes.rb</a>
242
- </td>
243
- <td class='lines_total'><tt>161</tt>
244
- </td>
245
- <td class='lines_code'><tt>97</tt>
246
- </td>
247
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
248
- &nbsp;</td>
249
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
250
- <td class='uncovered' width='0'/>
251
- </tr>
252
- </table>
253
- </td>
254
- </tr>
255
- </table>
256
- </td>
257
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
258
- &nbsp;</td>
259
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
260
- <td class='uncovered' width='0'/>
261
- </tr>
262
- </table>
263
- </td>
264
- </tr>
265
- </table>
266
- </td>
267
- </tr>
268
- <tr class='light'><td><a href='lib-classx-bracketable_rb.html'>lib/classx/bracketable.rb</a>
269
- </td>
270
- <td class='lines_total'><tt>61</tt>
271
- </td>
272
- <td class='lines_code'><tt>34</tt>
273
- </td>
274
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
275
- &nbsp;</td>
276
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
277
- <td class='uncovered' width='0'/>
278
- </tr>
279
- </table>
280
- </td>
281
- </tr>
282
- </table>
283
- </td>
284
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
285
- &nbsp;</td>
286
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
287
- <td class='uncovered' width='0'/>
288
- </tr>
289
- </table>
290
- </td>
291
- </tr>
292
- </table>
293
- </td>
294
- </tr>
295
- <tr class='dark'><td><a href='lib-classx-class_attributes_rb.html'>lib/classx/class_attributes.rb</a>
296
- </td>
297
- <td class='lines_total'><tt>165</tt>
298
- </td>
299
- <td class='lines_code'><tt>108</tt>
300
- </td>
301
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>95.2%</tt>
302
- &nbsp;</td>
303
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='95'/>
304
- <td class='uncovered' width='5'/>
305
- </tr>
306
- </table>
307
- </td>
308
- </tr>
309
- </table>
310
- </td>
311
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>92.6%</tt>
312
- &nbsp;</td>
313
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='93'/>
314
- <td class='uncovered' width='7'/>
315
- </tr>
316
- </table>
317
- </td>
318
- </tr>
319
- </table>
320
- </td>
321
- </tr>
322
- <tr class='light'><td><a href='lib-classx-commandable_rb.html'>lib/classx/commandable.rb</a>
323
- </td>
324
- <td class='lines_total'><tt>117</tt>
325
- </td>
326
- <td class='lines_code'><tt>70</tt>
327
- </td>
328
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>41.0%</tt>
329
- &nbsp;</td>
330
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='41'/>
331
- <td class='uncovered' width='59'/>
332
- </tr>
333
- </table>
334
- </td>
335
- </tr>
336
- </table>
337
- </td>
338
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>8.6%</tt>
339
- &nbsp;</td>
340
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='9'/>
341
- <td class='uncovered' width='91'/>
342
- </tr>
343
- </table>
344
- </td>
345
- </tr>
346
- </table>
347
- </td>
348
- </tr>
349
- <tr class='dark'><td><a href='lib-classx-declare_rb.html'>lib/classx/declare.rb</a>
350
- </td>
351
- <td class='lines_total'><tt>49</tt>
352
- </td>
353
- <td class='lines_code'><tt>26</tt>
354
- </td>
355
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>93.9%</tt>
356
- &nbsp;</td>
357
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='94'/>
358
- <td class='uncovered' width='6'/>
359
- </tr>
360
- </table>
361
- </td>
362
- </tr>
363
- </table>
364
- </td>
365
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>88.5%</tt>
366
- &nbsp;</td>
367
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='88'/>
368
- <td class='uncovered' width='12'/>
369
- </tr>
370
- </table>
371
- </td>
372
- </tr>
373
- </table>
374
- </td>
375
- </tr>
376
- <tr class='light'><td><a href='lib-classx-validate_rb.html'>lib/classx/validate.rb</a>
377
- </td>
378
- <td class='lines_total'><tt>53</tt>
379
- </td>
380
- <td class='lines_code'><tt>27</tt>
381
- </td>
382
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
383
- &nbsp;</td>
384
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
385
- <td class='uncovered' width='0'/>
386
- </tr>
387
- </table>
388
- </td>
389
- </tr>
390
- </table>
391
- </td>
392
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
393
- &nbsp;</td>
394
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
395
- <td class='uncovered' width='0'/>
396
- </tr>
397
- </table>
398
- </td>
399
- </tr>
400
- </table>
401
- </td>
402
- </tr>
403
- </tbody>
404
- </table>
405
- <hr/>
406
- <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
407
- version 0.8.1.2.</p>
408
- <p><a href='http://validator.w3.org/check/referer'><img src='http://www.w3.org/Icons/valid-xhtml11' height='31' alt='Valid XHTML 1.1!' width='88'/>
409
- </a>
410
- <a href='http://jigsaw.w3.org/css-validator/check/referer'><img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px'/>
411
- </a>
412
- </p>
413
- </body>
414
- </html>