classx 0.0.6 → 0.0.7

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/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>