aspect 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/aspect/has_attributes.rb +3 -13
- data/spec/coverage/index.html +1579 -7
- data/spec/lib/aspect/has_attributes_spec.rb +0 -168
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5782ead891d8e7ef320ba474a4b1d69b678664c
|
4
|
+
data.tar.gz: e3a656ede2ddb04caa1eed15b75666f4b138735f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b01d11ad92685f00b16f7a7b599e62ebea6b3a4813c1fb61f9fe01d53029355e94a0f5f918562996927eb0fd1d5b4eab23203927fe61110f892d1eac2ccc8f0d
|
7
|
+
data.tar.gz: d6a92e2b990197b0e26e4c593d4bb8483921ddfc4353b7f6edfed648deac0c4c82b02d582f912a3e4a4a9a035f6407fe9cc2945b275129457902602531fb0d6c
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
@@ -144,7 +144,6 @@ module Aspect
|
|
144
144
|
# @option options [Boolean] :query (false)
|
145
145
|
# Determines whether to define as a query attribute, with the getter having a question mark appended to the
|
146
146
|
# method name and the setter converting the value or block into a boolean using bang-bang (`!!`).
|
147
|
-
# @option options [#to_sym] :method (nil) The method name to send to the value after executing
|
148
147
|
# @yieldparam [Object] value The value given to the setter method.
|
149
148
|
# @yieldparam [Hash] options The options given when defining, given to the setter method.
|
150
149
|
# @yieldreturn [Object] The value to set the instance variable as.
|
@@ -158,14 +157,9 @@ module Aspect
|
|
158
157
|
if options[:getter]
|
159
158
|
options[:getter] = options[:getter] == true ? {} : options[:getter].to_h
|
160
159
|
|
161
|
-
options[:getter][:method] = options[:getter][:method].to_sym if options[:getter][:method]
|
162
|
-
options[:getter][:instance_method] = options[:getter][:instance_method].to_sym if options[:getter][:instance_method]
|
163
|
-
|
164
160
|
method_name = options[:query] ? "#{name}?" : name
|
165
161
|
define_method(method_name) do
|
166
162
|
value = instance_variable_get("@#{name}")
|
167
|
-
value = value.send(options[:getter][:method]) if options[:getter][:method]
|
168
|
-
value = method(options[:getter][:instance_method]).call(value) if options[:getter][:instance_method]
|
169
163
|
|
170
164
|
options[:query] ? !!value : value
|
171
165
|
end
|
@@ -174,13 +168,8 @@ module Aspect
|
|
174
168
|
if options[:setter]
|
175
169
|
options[:setter] = options[:setter] == true ? {} : options[:setter].to_h
|
176
170
|
|
177
|
-
options[:setter][:method] = options[:setter][:method].to_sym if options[:setter][:method]
|
178
|
-
options[:setter][:instance_method] = options[:setter][:instance_method].to_sym if options[:setter][:instance_method]
|
179
|
-
|
180
171
|
define_method("#{name}=") do |value|
|
181
172
|
value = instance_exec(value, options, &block) unless block.nil?
|
182
|
-
value = value.send(options[:setter][:method]) if options[:setter][:method]
|
183
|
-
value = method(options[:setter][:instance_method]).call(value) if options[:setter][:instance_method]
|
184
173
|
value = options[:query] ? !!value : value
|
185
174
|
|
186
175
|
instance_variable_set("@#{name}", value)
|
@@ -198,7 +187,6 @@ module Aspect
|
|
198
187
|
end
|
199
188
|
end
|
200
189
|
|
201
|
-
# @method update_attributes
|
202
190
|
# Update attributes on this object.
|
203
191
|
#
|
204
192
|
# @example
|
@@ -240,9 +228,11 @@ module Aspect
|
|
240
228
|
# user.moderator? # => true
|
241
229
|
# user.admin? # => false
|
242
230
|
# @param [Hash, #to_h] attributes
|
243
|
-
# @return [Object]
|
231
|
+
# @return [Object]
|
244
232
|
def update_attributes(attributes={})
|
245
233
|
attributes.to_h.each { |name, value| send("#{name}=", value) }
|
234
|
+
|
235
|
+
self
|
246
236
|
end
|
247
237
|
end
|
248
238
|
end
|
data/spec/coverage/index.html
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
<img src="./assets/0.10.0/loading.gif" alt="loading"/>
|
15
15
|
</div>
|
16
16
|
<div id="wrapper" style="display:none;">
|
17
|
-
<div class="timestamp">Generated <abbr class="timeago" title="2016-02-
|
17
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2016-02-07T16:45:58-05:00">2016-02-07T16:45:58-05:00</abbr></div>
|
18
18
|
<ul class="group_tabs"></ul>
|
19
19
|
|
20
20
|
<div id="content">
|
@@ -24,17 +24,17 @@
|
|
24
24
|
(<span class="covered_percent"><span class="green">100.0%</span></span>
|
25
25
|
covered at
|
26
26
|
<span class="covered_strength">
|
27
|
-
<span class="
|
28
|
-
|
27
|
+
<span class="green">
|
28
|
+
7.21
|
29
29
|
</span>
|
30
30
|
</span> hits/line)
|
31
31
|
</h2>
|
32
32
|
<a name="AllFiles"></a>
|
33
33
|
<div>
|
34
|
-
<b>
|
35
|
-
<b>
|
36
|
-
<span class="green"><b>
|
37
|
-
<span class="red"><b>0
|
34
|
+
<b>3</b> files in total.
|
35
|
+
<b>31</b> relevant lines.
|
36
|
+
<span class="green"><b>31</b> lines covered</span> and
|
37
|
+
<span class="red"><b>0</b> lines missed </span>
|
38
38
|
</div>
|
39
39
|
<table class="file_list">
|
40
40
|
<thead>
|
@@ -50,6 +50,36 @@
|
|
50
50
|
</thead>
|
51
51
|
<tbody>
|
52
52
|
|
53
|
+
<tr>
|
54
|
+
<td class="strong"><a href="#a15d89cad3877ed3c7a9194f58fb7bf5737f1513" class="src_link" title="lib/aspect.rb">lib/aspect.rb</a></td>
|
55
|
+
<td class="green strong">100.0 %</td>
|
56
|
+
<td>7</td>
|
57
|
+
<td>3</td>
|
58
|
+
<td>3</td>
|
59
|
+
<td>0</td>
|
60
|
+
<td>1.0</td>
|
61
|
+
</tr>
|
62
|
+
|
63
|
+
<tr>
|
64
|
+
<td class="strong"><a href="#43328843ff8f5fa7104029506958698590c35729" class="src_link" title="lib/aspect/has_attributes.rb">lib/aspect/has_attributes.rb</a></td>
|
65
|
+
<td class="green strong">100.0 %</td>
|
66
|
+
<td>238</td>
|
67
|
+
<td>26</td>
|
68
|
+
<td>26</td>
|
69
|
+
<td>0</td>
|
70
|
+
<td>8.4</td>
|
71
|
+
</tr>
|
72
|
+
|
73
|
+
<tr>
|
74
|
+
<td class="strong"><a href="#3b6af0d81674d1892ae079d4019486ad504c42ce" class="src_link" title="lib/aspect/version.rb">lib/aspect/version.rb</a></td>
|
75
|
+
<td class="green strong">100.0 %</td>
|
76
|
+
<td>3</td>
|
77
|
+
<td>2</td>
|
78
|
+
<td>2</td>
|
79
|
+
<td>0</td>
|
80
|
+
<td>1.0</td>
|
81
|
+
</tr>
|
82
|
+
|
53
83
|
</tbody>
|
54
84
|
</table>
|
55
85
|
</div>
|
@@ -66,6 +96,1548 @@
|
|
66
96
|
|
67
97
|
<div class="source_files">
|
68
98
|
|
99
|
+
<div class="source_table" id="a15d89cad3877ed3c7a9194f58fb7bf5737f1513">
|
100
|
+
<div class="header">
|
101
|
+
<h3>lib/aspect.rb</h3>
|
102
|
+
<h4><span class="green">100.0 %</span> covered</h4>
|
103
|
+
<div>
|
104
|
+
<b>3</b> relevant lines.
|
105
|
+
<span class="green"><b>3</b> lines covered</span> and
|
106
|
+
<span class="red"><b>0</b> lines missed.</span>
|
107
|
+
</div>
|
108
|
+
</div>
|
109
|
+
|
110
|
+
<pre>
|
111
|
+
<ol>
|
112
|
+
|
113
|
+
<li class="covered" data-hits="1" data-linenumber="1">
|
114
|
+
<span class="hits">1</span>
|
115
|
+
|
116
|
+
<code class="ruby">require "aspect/version"</code>
|
117
|
+
</li>
|
118
|
+
|
119
|
+
<li class="never" data-hits="" data-linenumber="2">
|
120
|
+
|
121
|
+
|
122
|
+
<code class="ruby"></code>
|
123
|
+
</li>
|
124
|
+
|
125
|
+
<li class="never" data-hits="" data-linenumber="3">
|
126
|
+
|
127
|
+
|
128
|
+
<code class="ruby"># A small collection of useful mixins for plain old Ruby objects.</code>
|
129
|
+
</li>
|
130
|
+
|
131
|
+
<li class="covered" data-hits="1" data-linenumber="4">
|
132
|
+
<span class="hits">1</span>
|
133
|
+
|
134
|
+
<code class="ruby">module Aspect</code>
|
135
|
+
</li>
|
136
|
+
|
137
|
+
<li class="never" data-hits="" data-linenumber="5">
|
138
|
+
|
139
|
+
|
140
|
+
<code class="ruby">end</code>
|
141
|
+
</li>
|
142
|
+
|
143
|
+
<li class="never" data-hits="" data-linenumber="6">
|
144
|
+
|
145
|
+
|
146
|
+
<code class="ruby"></code>
|
147
|
+
</li>
|
148
|
+
|
149
|
+
<li class="covered" data-hits="1" data-linenumber="7">
|
150
|
+
<span class="hits">1</span>
|
151
|
+
|
152
|
+
<code class="ruby">require "aspect/has_attributes"</code>
|
153
|
+
</li>
|
154
|
+
|
155
|
+
</ol>
|
156
|
+
</pre>
|
157
|
+
</div>
|
158
|
+
|
159
|
+
<div class="source_table" id="43328843ff8f5fa7104029506958698590c35729">
|
160
|
+
<div class="header">
|
161
|
+
<h3>lib/aspect/has_attributes.rb</h3>
|
162
|
+
<h4><span class="green">100.0 %</span> covered</h4>
|
163
|
+
<div>
|
164
|
+
<b>26</b> relevant lines.
|
165
|
+
<span class="green"><b>26</b> lines covered</span> and
|
166
|
+
<span class="red"><b>0</b> lines missed.</span>
|
167
|
+
</div>
|
168
|
+
</div>
|
169
|
+
|
170
|
+
<pre>
|
171
|
+
<ol>
|
172
|
+
|
173
|
+
<li class="covered" data-hits="1" data-linenumber="1">
|
174
|
+
<span class="hits">1</span>
|
175
|
+
|
176
|
+
<code class="ruby">module Aspect</code>
|
177
|
+
</li>
|
178
|
+
|
179
|
+
<li class="never" data-hits="" data-linenumber="2">
|
180
|
+
|
181
|
+
|
182
|
+
<code class="ruby"> # Easily define attribute getter/setter/accessors on an object with a `.attribute` class method.</code>
|
183
|
+
</li>
|
184
|
+
|
185
|
+
<li class="never" data-hits="" data-linenumber="3">
|
186
|
+
|
187
|
+
|
188
|
+
<code class="ruby"> #</code>
|
189
|
+
</li>
|
190
|
+
|
191
|
+
<li class="never" data-hits="" data-linenumber="4">
|
192
|
+
|
193
|
+
|
194
|
+
<code class="ruby"> # This also defines the `#update_attributes` instance method to use for mass assignment.</code>
|
195
|
+
</li>
|
196
|
+
|
197
|
+
<li class="never" data-hits="" data-linenumber="5">
|
198
|
+
|
199
|
+
|
200
|
+
<code class="ruby"> #</code>
|
201
|
+
</li>
|
202
|
+
|
203
|
+
<li class="never" data-hits="" data-linenumber="6">
|
204
|
+
|
205
|
+
|
206
|
+
<code class="ruby"> # **Documentation Notes**</code>
|
207
|
+
</li>
|
208
|
+
|
209
|
+
<li class="never" data-hits="" data-linenumber="7">
|
210
|
+
|
211
|
+
|
212
|
+
<code class="ruby"> #</code>
|
213
|
+
</li>
|
214
|
+
|
215
|
+
<li class="never" data-hits="" data-linenumber="8">
|
216
|
+
|
217
|
+
|
218
|
+
<code class="ruby"> # Since `.attribute` is a method which dynamically defines methods, you may need to use a special declaration</code>
|
219
|
+
</li>
|
220
|
+
|
221
|
+
<li class="never" data-hits="" data-linenumber="9">
|
222
|
+
|
223
|
+
|
224
|
+
<code class="ruby"> # in order to associate the documentation to the method.</code>
|
225
|
+
</li>
|
226
|
+
|
227
|
+
<li class="never" data-hits="" data-linenumber="10">
|
228
|
+
|
229
|
+
|
230
|
+
<code class="ruby"> #</code>
|
231
|
+
</li>
|
232
|
+
|
233
|
+
<li class="never" data-hits="" data-linenumber="11">
|
234
|
+
|
235
|
+
|
236
|
+
<code class="ruby"> # Here's how I do it with [YARD](http://yardoc.org):</code>
|
237
|
+
</li>
|
238
|
+
|
239
|
+
<li class="never" data-hits="" data-linenumber="12">
|
240
|
+
|
241
|
+
|
242
|
+
<code class="ruby"> #</code>
|
243
|
+
</li>
|
244
|
+
|
245
|
+
<li class="never" data-hits="" data-linenumber="13">
|
246
|
+
|
247
|
+
|
248
|
+
<code class="ruby"> # ```rb</code>
|
249
|
+
</li>
|
250
|
+
|
251
|
+
<li class="never" data-hits="" data-linenumber="14">
|
252
|
+
|
253
|
+
|
254
|
+
<code class="ruby"> # class User</code>
|
255
|
+
</li>
|
256
|
+
|
257
|
+
<li class="never" data-hits="" data-linenumber="15">
|
258
|
+
|
259
|
+
|
260
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
261
|
+
</li>
|
262
|
+
|
263
|
+
<li class="never" data-hits="" data-linenumber="16">
|
264
|
+
|
265
|
+
|
266
|
+
<code class="ruby"> #</code>
|
267
|
+
</li>
|
268
|
+
|
269
|
+
<li class="never" data-hits="" data-linenumber="17">
|
270
|
+
|
271
|
+
|
272
|
+
<code class="ruby"> # # @method name</code>
|
273
|
+
</li>
|
274
|
+
|
275
|
+
<li class="never" data-hits="" data-linenumber="18">
|
276
|
+
|
277
|
+
|
278
|
+
<code class="ruby"> # # Get the name.</code>
|
279
|
+
</li>
|
280
|
+
|
281
|
+
<li class="never" data-hits="" data-linenumber="19">
|
282
|
+
|
283
|
+
|
284
|
+
<code class="ruby"> # #</code>
|
285
|
+
</li>
|
286
|
+
|
287
|
+
<li class="never" data-hits="" data-linenumber="20">
|
288
|
+
|
289
|
+
|
290
|
+
<code class="ruby"> # # @return [String]</code>
|
291
|
+
</li>
|
292
|
+
|
293
|
+
<li class="never" data-hits="" data-linenumber="21">
|
294
|
+
|
295
|
+
|
296
|
+
<code class="ruby"> #</code>
|
297
|
+
</li>
|
298
|
+
|
299
|
+
<li class="never" data-hits="" data-linenumber="22">
|
300
|
+
|
301
|
+
|
302
|
+
<code class="ruby"> # # @method name=</code>
|
303
|
+
</li>
|
304
|
+
|
305
|
+
<li class="never" data-hits="" data-linenumber="23">
|
306
|
+
|
307
|
+
|
308
|
+
<code class="ruby"> # # Set the name.</code>
|
309
|
+
</li>
|
310
|
+
|
311
|
+
<li class="never" data-hits="" data-linenumber="24">
|
312
|
+
|
313
|
+
|
314
|
+
<code class="ruby"> # #</code>
|
315
|
+
</li>
|
316
|
+
|
317
|
+
<li class="never" data-hits="" data-linenumber="25">
|
318
|
+
|
319
|
+
|
320
|
+
<code class="ruby"> # # @param [#to_s] value</code>
|
321
|
+
</li>
|
322
|
+
|
323
|
+
<li class="never" data-hits="" data-linenumber="26">
|
324
|
+
|
325
|
+
|
326
|
+
<code class="ruby"> # # @return [String]</code>
|
327
|
+
</li>
|
328
|
+
|
329
|
+
<li class="never" data-hits="" data-linenumber="27">
|
330
|
+
|
331
|
+
|
332
|
+
<code class="ruby"> # attribute(:name) { |value| value.to_s.strip }</code>
|
333
|
+
</li>
|
334
|
+
|
335
|
+
<li class="never" data-hits="" data-linenumber="28">
|
336
|
+
|
337
|
+
|
338
|
+
<code class="ruby"> #</code>
|
339
|
+
</li>
|
340
|
+
|
341
|
+
<li class="never" data-hits="" data-linenumber="29">
|
342
|
+
|
343
|
+
|
344
|
+
<code class="ruby"> # # @method admin?</code>
|
345
|
+
</li>
|
346
|
+
|
347
|
+
<li class="never" data-hits="" data-linenumber="30">
|
348
|
+
|
349
|
+
|
350
|
+
<code class="ruby"> # # Get whether this user is an admin.</code>
|
351
|
+
</li>
|
352
|
+
|
353
|
+
<li class="never" data-hits="" data-linenumber="31">
|
354
|
+
|
355
|
+
|
356
|
+
<code class="ruby"> # #</code>
|
357
|
+
</li>
|
358
|
+
|
359
|
+
<li class="never" data-hits="" data-linenumber="32">
|
360
|
+
|
361
|
+
|
362
|
+
<code class="ruby"> # # @return [Boolean]</code>
|
363
|
+
</li>
|
364
|
+
|
365
|
+
<li class="never" data-hits="" data-linenumber="33">
|
366
|
+
|
367
|
+
|
368
|
+
<code class="ruby"> #</code>
|
369
|
+
</li>
|
370
|
+
|
371
|
+
<li class="never" data-hits="" data-linenumber="34">
|
372
|
+
|
373
|
+
|
374
|
+
<code class="ruby"> # # @method admin=</code>
|
375
|
+
</li>
|
376
|
+
|
377
|
+
<li class="never" data-hits="" data-linenumber="35">
|
378
|
+
|
379
|
+
|
380
|
+
<code class="ruby"> # # Set whether this user is an admin.</code>
|
381
|
+
</li>
|
382
|
+
|
383
|
+
<li class="never" data-hits="" data-linenumber="36">
|
384
|
+
|
385
|
+
|
386
|
+
<code class="ruby"> # #</code>
|
387
|
+
</li>
|
388
|
+
|
389
|
+
<li class="never" data-hits="" data-linenumber="37">
|
390
|
+
|
391
|
+
|
392
|
+
<code class="ruby"> # # @param [Boolean] value</code>
|
393
|
+
</li>
|
394
|
+
|
395
|
+
<li class="never" data-hits="" data-linenumber="38">
|
396
|
+
|
397
|
+
|
398
|
+
<code class="ruby"> # # @return [Boolean]</code>
|
399
|
+
</li>
|
400
|
+
|
401
|
+
<li class="never" data-hits="" data-linenumber="39">
|
402
|
+
|
403
|
+
|
404
|
+
<code class="ruby"> # attribute(:admin, query: true)</code>
|
405
|
+
</li>
|
406
|
+
|
407
|
+
<li class="never" data-hits="" data-linenumber="40">
|
408
|
+
|
409
|
+
|
410
|
+
<code class="ruby"> # end</code>
|
411
|
+
</li>
|
412
|
+
|
413
|
+
<li class="never" data-hits="" data-linenumber="41">
|
414
|
+
|
415
|
+
|
416
|
+
<code class="ruby"> # ```</code>
|
417
|
+
</li>
|
418
|
+
|
419
|
+
<li class="covered" data-hits="1" data-linenumber="42">
|
420
|
+
<span class="hits">1</span>
|
421
|
+
|
422
|
+
<code class="ruby"> module HasAttributes</code>
|
423
|
+
</li>
|
424
|
+
|
425
|
+
<li class="never" data-hits="" data-linenumber="43">
|
426
|
+
|
427
|
+
|
428
|
+
<code class="ruby"> # The class methods to extend into the object HasAttributes was included in.</code>
|
429
|
+
</li>
|
430
|
+
|
431
|
+
<li class="covered" data-hits="1" data-linenumber="44">
|
432
|
+
<span class="hits">1</span>
|
433
|
+
|
434
|
+
<code class="ruby"> module ClassMethods</code>
|
435
|
+
</li>
|
436
|
+
|
437
|
+
<li class="never" data-hits="" data-linenumber="45">
|
438
|
+
|
439
|
+
|
440
|
+
<code class="ruby"> # Define an attribute on the object.</code>
|
441
|
+
</li>
|
442
|
+
|
443
|
+
<li class="never" data-hits="" data-linenumber="46">
|
444
|
+
|
445
|
+
|
446
|
+
<code class="ruby"> #</code>
|
447
|
+
</li>
|
448
|
+
|
449
|
+
<li class="never" data-hits="" data-linenumber="47">
|
450
|
+
|
451
|
+
|
452
|
+
<code class="ruby"> # @example Simple accessor</code>
|
453
|
+
</li>
|
454
|
+
|
455
|
+
<li class="never" data-hits="" data-linenumber="48">
|
456
|
+
|
457
|
+
|
458
|
+
<code class="ruby"> # class User</code>
|
459
|
+
</li>
|
460
|
+
|
461
|
+
<li class="never" data-hits="" data-linenumber="49">
|
462
|
+
|
463
|
+
|
464
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
465
|
+
</li>
|
466
|
+
|
467
|
+
<li class="never" data-hits="" data-linenumber="50">
|
468
|
+
|
469
|
+
|
470
|
+
<code class="ruby"> #</code>
|
471
|
+
</li>
|
472
|
+
|
473
|
+
<li class="never" data-hits="" data-linenumber="51">
|
474
|
+
|
475
|
+
|
476
|
+
<code class="ruby"> # attribute(:name)</code>
|
477
|
+
</li>
|
478
|
+
|
479
|
+
<li class="never" data-hits="" data-linenumber="52">
|
480
|
+
|
481
|
+
|
482
|
+
<code class="ruby"> # end</code>
|
483
|
+
</li>
|
484
|
+
|
485
|
+
<li class="never" data-hits="" data-linenumber="53">
|
486
|
+
|
487
|
+
|
488
|
+
<code class="ruby"> #</code>
|
489
|
+
</li>
|
490
|
+
|
491
|
+
<li class="never" data-hits="" data-linenumber="54">
|
492
|
+
|
493
|
+
|
494
|
+
<code class="ruby"> # user = User.new</code>
|
495
|
+
</li>
|
496
|
+
|
497
|
+
<li class="never" data-hits="" data-linenumber="55">
|
498
|
+
|
499
|
+
|
500
|
+
<code class="ruby"> # user.name = "Ezio Auditore"</code>
|
501
|
+
</li>
|
502
|
+
|
503
|
+
<li class="never" data-hits="" data-linenumber="56">
|
504
|
+
|
505
|
+
|
506
|
+
<code class="ruby"> # user.name # => "Ezio Auditore"</code>
|
507
|
+
</li>
|
508
|
+
|
509
|
+
<li class="never" data-hits="" data-linenumber="57">
|
510
|
+
|
511
|
+
|
512
|
+
<code class="ruby"> # @example Simple getter</code>
|
513
|
+
</li>
|
514
|
+
|
515
|
+
<li class="never" data-hits="" data-linenumber="58">
|
516
|
+
|
517
|
+
|
518
|
+
<code class="ruby"> # class User</code>
|
519
|
+
</li>
|
520
|
+
|
521
|
+
<li class="never" data-hits="" data-linenumber="59">
|
522
|
+
|
523
|
+
|
524
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
525
|
+
</li>
|
526
|
+
|
527
|
+
<li class="never" data-hits="" data-linenumber="60">
|
528
|
+
|
529
|
+
|
530
|
+
<code class="ruby"> #</code>
|
531
|
+
</li>
|
532
|
+
|
533
|
+
<li class="never" data-hits="" data-linenumber="61">
|
534
|
+
|
535
|
+
|
536
|
+
<code class="ruby"> # attribute(:name, setter: false)</code>
|
537
|
+
</li>
|
538
|
+
|
539
|
+
<li class="never" data-hits="" data-linenumber="62">
|
540
|
+
|
541
|
+
|
542
|
+
<code class="ruby"> #</code>
|
543
|
+
</li>
|
544
|
+
|
545
|
+
<li class="never" data-hits="" data-linenumber="63">
|
546
|
+
|
547
|
+
|
548
|
+
<code class="ruby"> # def initialize(name)</code>
|
549
|
+
</li>
|
550
|
+
|
551
|
+
<li class="never" data-hits="" data-linenumber="64">
|
552
|
+
|
553
|
+
|
554
|
+
<code class="ruby"> # @name = name</code>
|
555
|
+
</li>
|
556
|
+
|
557
|
+
<li class="never" data-hits="" data-linenumber="65">
|
558
|
+
|
559
|
+
|
560
|
+
<code class="ruby"> # end</code>
|
561
|
+
</li>
|
562
|
+
|
563
|
+
<li class="never" data-hits="" data-linenumber="66">
|
564
|
+
|
565
|
+
|
566
|
+
<code class="ruby"> # end</code>
|
567
|
+
</li>
|
568
|
+
|
569
|
+
<li class="never" data-hits="" data-linenumber="67">
|
570
|
+
|
571
|
+
|
572
|
+
<code class="ruby"> #</code>
|
573
|
+
</li>
|
574
|
+
|
575
|
+
<li class="never" data-hits="" data-linenumber="68">
|
576
|
+
|
577
|
+
|
578
|
+
<code class="ruby"> # user = User.new("Ezio Auditore")</code>
|
579
|
+
</li>
|
580
|
+
|
581
|
+
<li class="never" data-hits="" data-linenumber="69">
|
582
|
+
|
583
|
+
|
584
|
+
<code class="ruby"> # user.name # => "Ezio Auditore"</code>
|
585
|
+
</li>
|
586
|
+
|
587
|
+
<li class="never" data-hits="" data-linenumber="70">
|
588
|
+
|
589
|
+
|
590
|
+
<code class="ruby"> # @example Simple setter</code>
|
591
|
+
</li>
|
592
|
+
|
593
|
+
<li class="never" data-hits="" data-linenumber="71">
|
594
|
+
|
595
|
+
|
596
|
+
<code class="ruby"> # class User</code>
|
597
|
+
</li>
|
598
|
+
|
599
|
+
<li class="never" data-hits="" data-linenumber="72">
|
600
|
+
|
601
|
+
|
602
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
603
|
+
</li>
|
604
|
+
|
605
|
+
<li class="never" data-hits="" data-linenumber="73">
|
606
|
+
|
607
|
+
|
608
|
+
<code class="ruby"> #</code>
|
609
|
+
</li>
|
610
|
+
|
611
|
+
<li class="never" data-hits="" data-linenumber="74">
|
612
|
+
|
613
|
+
|
614
|
+
<code class="ruby"> # attribute(:name, getter: false)</code>
|
615
|
+
</li>
|
616
|
+
|
617
|
+
<li class="never" data-hits="" data-linenumber="75">
|
618
|
+
|
619
|
+
|
620
|
+
<code class="ruby"> #</code>
|
621
|
+
</li>
|
622
|
+
|
623
|
+
<li class="never" data-hits="" data-linenumber="76">
|
624
|
+
|
625
|
+
|
626
|
+
<code class="ruby"> # def name</code>
|
627
|
+
</li>
|
628
|
+
|
629
|
+
<li class="never" data-hits="" data-linenumber="77">
|
630
|
+
|
631
|
+
|
632
|
+
<code class="ruby"> # @name.strip</code>
|
633
|
+
</li>
|
634
|
+
|
635
|
+
<li class="never" data-hits="" data-linenumber="78">
|
636
|
+
|
637
|
+
|
638
|
+
<code class="ruby"> # end</code>
|
639
|
+
</li>
|
640
|
+
|
641
|
+
<li class="never" data-hits="" data-linenumber="79">
|
642
|
+
|
643
|
+
|
644
|
+
<code class="ruby"> # end</code>
|
645
|
+
</li>
|
646
|
+
|
647
|
+
<li class="never" data-hits="" data-linenumber="80">
|
648
|
+
|
649
|
+
|
650
|
+
<code class="ruby"> #</code>
|
651
|
+
</li>
|
652
|
+
|
653
|
+
<li class="never" data-hits="" data-linenumber="81">
|
654
|
+
|
655
|
+
|
656
|
+
<code class="ruby"> # user = User.new</code>
|
657
|
+
</li>
|
658
|
+
|
659
|
+
<li class="never" data-hits="" data-linenumber="82">
|
660
|
+
|
661
|
+
|
662
|
+
<code class="ruby"> # user.name = " Ezio Auditore "</code>
|
663
|
+
</li>
|
664
|
+
|
665
|
+
<li class="never" data-hits="" data-linenumber="83">
|
666
|
+
|
667
|
+
|
668
|
+
<code class="ruby"> # user.name # => "Ezio Auditore"</code>
|
669
|
+
</li>
|
670
|
+
|
671
|
+
<li class="never" data-hits="" data-linenumber="84">
|
672
|
+
|
673
|
+
|
674
|
+
<code class="ruby"> # @example Accessor with block</code>
|
675
|
+
</li>
|
676
|
+
|
677
|
+
<li class="never" data-hits="" data-linenumber="85">
|
678
|
+
|
679
|
+
|
680
|
+
<code class="ruby"> # class User</code>
|
681
|
+
</li>
|
682
|
+
|
683
|
+
<li class="never" data-hits="" data-linenumber="86">
|
684
|
+
|
685
|
+
|
686
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
687
|
+
</li>
|
688
|
+
|
689
|
+
<li class="never" data-hits="" data-linenumber="87">
|
690
|
+
|
691
|
+
|
692
|
+
<code class="ruby"> #</code>
|
693
|
+
</li>
|
694
|
+
|
695
|
+
<li class="never" data-hits="" data-linenumber="88">
|
696
|
+
|
697
|
+
|
698
|
+
<code class="ruby"> # attribute(:name) { |value| value.to_s.strip }</code>
|
699
|
+
</li>
|
700
|
+
|
701
|
+
<li class="never" data-hits="" data-linenumber="89">
|
702
|
+
|
703
|
+
|
704
|
+
<code class="ruby"> # end</code>
|
705
|
+
</li>
|
706
|
+
|
707
|
+
<li class="never" data-hits="" data-linenumber="90">
|
708
|
+
|
709
|
+
|
710
|
+
<code class="ruby"> #</code>
|
711
|
+
</li>
|
712
|
+
|
713
|
+
<li class="never" data-hits="" data-linenumber="91">
|
714
|
+
|
715
|
+
|
716
|
+
<code class="ruby"> # user = User.new</code>
|
717
|
+
</li>
|
718
|
+
|
719
|
+
<li class="never" data-hits="" data-linenumber="92">
|
720
|
+
|
721
|
+
|
722
|
+
<code class="ruby"> # user.name = " Ezio Auditore "</code>
|
723
|
+
</li>
|
724
|
+
|
725
|
+
<li class="never" data-hits="" data-linenumber="93">
|
726
|
+
|
727
|
+
|
728
|
+
<code class="ruby"> # user.name # => "Ezio Auditore"</code>
|
729
|
+
</li>
|
730
|
+
|
731
|
+
<li class="never" data-hits="" data-linenumber="94">
|
732
|
+
|
733
|
+
|
734
|
+
<code class="ruby"> # @example Accessor with block, passing options</code>
|
735
|
+
</li>
|
736
|
+
|
737
|
+
<li class="never" data-hits="" data-linenumber="95">
|
738
|
+
|
739
|
+
|
740
|
+
<code class="ruby"> # class User</code>
|
741
|
+
</li>
|
742
|
+
|
743
|
+
<li class="never" data-hits="" data-linenumber="96">
|
744
|
+
|
745
|
+
|
746
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
747
|
+
</li>
|
748
|
+
|
749
|
+
<li class="never" data-hits="" data-linenumber="97">
|
750
|
+
|
751
|
+
|
752
|
+
<code class="ruby"> #</code>
|
753
|
+
</li>
|
754
|
+
|
755
|
+
<li class="never" data-hits="" data-linenumber="98">
|
756
|
+
|
757
|
+
|
758
|
+
<code class="ruby"> # conversion_block = Proc.new { |value, options| "#{options[:prefix]}-#{value.to_s.strip}" }</code>
|
759
|
+
</li>
|
760
|
+
|
761
|
+
<li class="never" data-hits="" data-linenumber="99">
|
762
|
+
|
763
|
+
|
764
|
+
<code class="ruby"> # attribute(:foo, prefix: "Foo", &conversion_block)</code>
|
765
|
+
</li>
|
766
|
+
|
767
|
+
<li class="never" data-hits="" data-linenumber="100">
|
768
|
+
|
769
|
+
|
770
|
+
<code class="ruby"> # attribute(:bar, prefix: "Bar", &conversion_block)</code>
|
771
|
+
</li>
|
772
|
+
|
773
|
+
<li class="never" data-hits="" data-linenumber="101">
|
774
|
+
|
775
|
+
|
776
|
+
<code class="ruby"> # end</code>
|
777
|
+
</li>
|
778
|
+
|
779
|
+
<li class="never" data-hits="" data-linenumber="102">
|
780
|
+
|
781
|
+
|
782
|
+
<code class="ruby"> #</code>
|
783
|
+
</li>
|
784
|
+
|
785
|
+
<li class="never" data-hits="" data-linenumber="103">
|
786
|
+
|
787
|
+
|
788
|
+
<code class="ruby"> # user = User.new</code>
|
789
|
+
</li>
|
790
|
+
|
791
|
+
<li class="never" data-hits="" data-linenumber="104">
|
792
|
+
|
793
|
+
|
794
|
+
<code class="ruby"> # user.foo = " Thing "</code>
|
795
|
+
</li>
|
796
|
+
|
797
|
+
<li class="never" data-hits="" data-linenumber="105">
|
798
|
+
|
799
|
+
|
800
|
+
<code class="ruby"> # user.foo # => "Foo-Thing"</code>
|
801
|
+
</li>
|
802
|
+
|
803
|
+
<li class="never" data-hits="" data-linenumber="106">
|
804
|
+
|
805
|
+
|
806
|
+
<code class="ruby"> # user.bar = " Thingy"</code>
|
807
|
+
</li>
|
808
|
+
|
809
|
+
<li class="never" data-hits="" data-linenumber="107">
|
810
|
+
|
811
|
+
|
812
|
+
<code class="ruby"> # user.bar # => "Bar-Thingy"</code>
|
813
|
+
</li>
|
814
|
+
|
815
|
+
<li class="never" data-hits="" data-linenumber="108">
|
816
|
+
|
817
|
+
|
818
|
+
<code class="ruby"> # @example Query accessor</code>
|
819
|
+
</li>
|
820
|
+
|
821
|
+
<li class="never" data-hits="" data-linenumber="109">
|
822
|
+
|
823
|
+
|
824
|
+
<code class="ruby"> # class User</code>
|
825
|
+
</li>
|
826
|
+
|
827
|
+
<li class="never" data-hits="" data-linenumber="110">
|
828
|
+
|
829
|
+
|
830
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
831
|
+
</li>
|
832
|
+
|
833
|
+
<li class="never" data-hits="" data-linenumber="111">
|
834
|
+
|
835
|
+
|
836
|
+
<code class="ruby"> #</code>
|
837
|
+
</li>
|
838
|
+
|
839
|
+
<li class="never" data-hits="" data-linenumber="112">
|
840
|
+
|
841
|
+
|
842
|
+
<code class="ruby"> # attribute(:admin, query: true)</code>
|
843
|
+
</li>
|
844
|
+
|
845
|
+
<li class="never" data-hits="" data-linenumber="113">
|
846
|
+
|
847
|
+
|
848
|
+
<code class="ruby"> # end</code>
|
849
|
+
</li>
|
850
|
+
|
851
|
+
<li class="never" data-hits="" data-linenumber="114">
|
852
|
+
|
853
|
+
|
854
|
+
<code class="ruby"> #</code>
|
855
|
+
</li>
|
856
|
+
|
857
|
+
<li class="never" data-hits="" data-linenumber="115">
|
858
|
+
|
859
|
+
|
860
|
+
<code class="ruby"> # user = User.new</code>
|
861
|
+
</li>
|
862
|
+
|
863
|
+
<li class="never" data-hits="" data-linenumber="116">
|
864
|
+
|
865
|
+
|
866
|
+
<code class="ruby"> # user.admin? # => false</code>
|
867
|
+
</li>
|
868
|
+
|
869
|
+
<li class="never" data-hits="" data-linenumber="117">
|
870
|
+
|
871
|
+
|
872
|
+
<code class="ruby"> # user.admin = "yep" # Accepts truthy values</code>
|
873
|
+
</li>
|
874
|
+
|
875
|
+
<li class="never" data-hits="" data-linenumber="118">
|
876
|
+
|
877
|
+
|
878
|
+
<code class="ruby"> # user.admin? # => true</code>
|
879
|
+
</li>
|
880
|
+
|
881
|
+
<li class="never" data-hits="" data-linenumber="119">
|
882
|
+
|
883
|
+
|
884
|
+
<code class="ruby"> # @example Query accessor with block</code>
|
885
|
+
</li>
|
886
|
+
|
887
|
+
<li class="never" data-hits="" data-linenumber="120">
|
888
|
+
|
889
|
+
|
890
|
+
<code class="ruby"> # class User</code>
|
891
|
+
</li>
|
892
|
+
|
893
|
+
<li class="never" data-hits="" data-linenumber="121">
|
894
|
+
|
895
|
+
|
896
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
897
|
+
</li>
|
898
|
+
|
899
|
+
<li class="never" data-hits="" data-linenumber="122">
|
900
|
+
|
901
|
+
|
902
|
+
<code class="ruby"> #</code>
|
903
|
+
</li>
|
904
|
+
|
905
|
+
<li class="never" data-hits="" data-linenumber="123">
|
906
|
+
|
907
|
+
|
908
|
+
<code class="ruby"> # attribute(:moderator, query: true)</code>
|
909
|
+
</li>
|
910
|
+
|
911
|
+
<li class="never" data-hits="" data-linenumber="124">
|
912
|
+
|
913
|
+
|
914
|
+
<code class="ruby"> # attribute(:admin, query: true) { |value| @moderator && value }</code>
|
915
|
+
</li>
|
916
|
+
|
917
|
+
<li class="never" data-hits="" data-linenumber="125">
|
918
|
+
|
919
|
+
|
920
|
+
<code class="ruby"> # end</code>
|
921
|
+
</li>
|
922
|
+
|
923
|
+
<li class="never" data-hits="" data-linenumber="126">
|
924
|
+
|
925
|
+
|
926
|
+
<code class="ruby"> #</code>
|
927
|
+
</li>
|
928
|
+
|
929
|
+
<li class="never" data-hits="" data-linenumber="127">
|
930
|
+
|
931
|
+
|
932
|
+
<code class="ruby"> # user = User.new</code>
|
933
|
+
</li>
|
934
|
+
|
935
|
+
<li class="never" data-hits="" data-linenumber="128">
|
936
|
+
|
937
|
+
|
938
|
+
<code class="ruby"> #</code>
|
939
|
+
</li>
|
940
|
+
|
941
|
+
<li class="never" data-hits="" data-linenumber="129">
|
942
|
+
|
943
|
+
|
944
|
+
<code class="ruby"> # user.moderator? # => false</code>
|
945
|
+
</li>
|
946
|
+
|
947
|
+
<li class="never" data-hits="" data-linenumber="130">
|
948
|
+
|
949
|
+
|
950
|
+
<code class="ruby"> # user.admin? # => false</code>
|
951
|
+
</li>
|
952
|
+
|
953
|
+
<li class="never" data-hits="" data-linenumber="131">
|
954
|
+
|
955
|
+
|
956
|
+
<code class="ruby"> # user.admin = true</code>
|
957
|
+
</li>
|
958
|
+
|
959
|
+
<li class="never" data-hits="" data-linenumber="132">
|
960
|
+
|
961
|
+
|
962
|
+
<code class="ruby"> # user.admin? # => false</code>
|
963
|
+
</li>
|
964
|
+
|
965
|
+
<li class="never" data-hits="" data-linenumber="133">
|
966
|
+
|
967
|
+
|
968
|
+
<code class="ruby"> #</code>
|
969
|
+
</li>
|
970
|
+
|
971
|
+
<li class="never" data-hits="" data-linenumber="134">
|
972
|
+
|
973
|
+
|
974
|
+
<code class="ruby"> # user.moderator = true</code>
|
975
|
+
</li>
|
976
|
+
|
977
|
+
<li class="never" data-hits="" data-linenumber="135">
|
978
|
+
|
979
|
+
|
980
|
+
<code class="ruby"> # user.moderator? # => true</code>
|
981
|
+
</li>
|
982
|
+
|
983
|
+
<li class="never" data-hits="" data-linenumber="136">
|
984
|
+
|
985
|
+
|
986
|
+
<code class="ruby"> # user.admin? # => false</code>
|
987
|
+
</li>
|
988
|
+
|
989
|
+
<li class="never" data-hits="" data-linenumber="137">
|
990
|
+
|
991
|
+
|
992
|
+
<code class="ruby"> # user.admin = true</code>
|
993
|
+
</li>
|
994
|
+
|
995
|
+
<li class="never" data-hits="" data-linenumber="138">
|
996
|
+
|
997
|
+
|
998
|
+
<code class="ruby"> # user.moderator? # => true</code>
|
999
|
+
</li>
|
1000
|
+
|
1001
|
+
<li class="never" data-hits="" data-linenumber="139">
|
1002
|
+
|
1003
|
+
|
1004
|
+
<code class="ruby"> # user.admin? # => true</code>
|
1005
|
+
</li>
|
1006
|
+
|
1007
|
+
<li class="never" data-hits="" data-linenumber="140">
|
1008
|
+
|
1009
|
+
|
1010
|
+
<code class="ruby"> # @param [#to_sym] name The name of the attribute and instance variable.</code>
|
1011
|
+
</li>
|
1012
|
+
|
1013
|
+
<li class="never" data-hits="" data-linenumber="141">
|
1014
|
+
|
1015
|
+
|
1016
|
+
<code class="ruby"> # @param [Hash, #to_hash] options The options for defining and passing to the block.</code>
|
1017
|
+
</li>
|
1018
|
+
|
1019
|
+
<li class="never" data-hits="" data-linenumber="142">
|
1020
|
+
|
1021
|
+
|
1022
|
+
<code class="ruby"> # @option options [Boolean] :getter (true) Determines whether to define an attribute getter.</code>
|
1023
|
+
</li>
|
1024
|
+
|
1025
|
+
<li class="never" data-hits="" data-linenumber="143">
|
1026
|
+
|
1027
|
+
|
1028
|
+
<code class="ruby"> # @option options [Boolean] :setter (true) Determines whether to define an attribute setter.</code>
|
1029
|
+
</li>
|
1030
|
+
|
1031
|
+
<li class="never" data-hits="" data-linenumber="144">
|
1032
|
+
|
1033
|
+
|
1034
|
+
<code class="ruby"> # @option options [Boolean] :query (false)</code>
|
1035
|
+
</li>
|
1036
|
+
|
1037
|
+
<li class="never" data-hits="" data-linenumber="145">
|
1038
|
+
|
1039
|
+
|
1040
|
+
<code class="ruby"> # Determines whether to define as a query attribute, with the getter having a question mark appended to the</code>
|
1041
|
+
</li>
|
1042
|
+
|
1043
|
+
<li class="never" data-hits="" data-linenumber="146">
|
1044
|
+
|
1045
|
+
|
1046
|
+
<code class="ruby"> # method name and the setter converting the value or block into a boolean using bang-bang (`!!`).</code>
|
1047
|
+
</li>
|
1048
|
+
|
1049
|
+
<li class="never" data-hits="" data-linenumber="147">
|
1050
|
+
|
1051
|
+
|
1052
|
+
<code class="ruby"> # @yieldparam [Object] value The value given to the setter method.</code>
|
1053
|
+
</li>
|
1054
|
+
|
1055
|
+
<li class="never" data-hits="" data-linenumber="148">
|
1056
|
+
|
1057
|
+
|
1058
|
+
<code class="ruby"> # @yieldparam [Hash] options The options given when defining, given to the setter method.</code>
|
1059
|
+
</li>
|
1060
|
+
|
1061
|
+
<li class="never" data-hits="" data-linenumber="149">
|
1062
|
+
|
1063
|
+
|
1064
|
+
<code class="ruby"> # @yieldreturn [Object] The value to set the instance variable as.</code>
|
1065
|
+
</li>
|
1066
|
+
|
1067
|
+
<li class="never" data-hits="" data-linenumber="150">
|
1068
|
+
|
1069
|
+
|
1070
|
+
<code class="ruby"> # @return [Object]</code>
|
1071
|
+
</li>
|
1072
|
+
|
1073
|
+
<li class="covered" data-hits="1" data-linenumber="151">
|
1074
|
+
<span class="hits">1</span>
|
1075
|
+
|
1076
|
+
<code class="ruby"> def attribute(name, options={}, &block) # TODO: Should break out into protected methods?</code>
|
1077
|
+
</li>
|
1078
|
+
|
1079
|
+
<li class="covered" data-hits="13" data-linenumber="152">
|
1080
|
+
<span class="hits">13</span>
|
1081
|
+
|
1082
|
+
<code class="ruby"> name = name.to_sym</code>
|
1083
|
+
</li>
|
1084
|
+
|
1085
|
+
<li class="never" data-hits="" data-linenumber="153">
|
1086
|
+
|
1087
|
+
|
1088
|
+
<code class="ruby"></code>
|
1089
|
+
</li>
|
1090
|
+
|
1091
|
+
<li class="covered" data-hits="13" data-linenumber="154">
|
1092
|
+
<span class="hits">13</span>
|
1093
|
+
|
1094
|
+
<code class="ruby"> options = options.to_h unless options.is_a?(Hash)</code>
|
1095
|
+
</li>
|
1096
|
+
|
1097
|
+
<li class="covered" data-hits="13" data-linenumber="155">
|
1098
|
+
<span class="hits">13</span>
|
1099
|
+
|
1100
|
+
<code class="ruby"> options = { getter: true, setter: true }.merge(options)</code>
|
1101
|
+
</li>
|
1102
|
+
|
1103
|
+
<li class="never" data-hits="" data-linenumber="156">
|
1104
|
+
|
1105
|
+
|
1106
|
+
<code class="ruby"></code>
|
1107
|
+
</li>
|
1108
|
+
|
1109
|
+
<li class="covered" data-hits="13" data-linenumber="157">
|
1110
|
+
<span class="hits">13</span>
|
1111
|
+
|
1112
|
+
<code class="ruby"> if options[:getter]</code>
|
1113
|
+
</li>
|
1114
|
+
|
1115
|
+
<li class="covered" data-hits="12" data-linenumber="158">
|
1116
|
+
<span class="hits">12</span>
|
1117
|
+
|
1118
|
+
<code class="ruby"> options[:getter] = options[:getter] == true ? {} : options[:getter].to_h</code>
|
1119
|
+
</li>
|
1120
|
+
|
1121
|
+
<li class="never" data-hits="" data-linenumber="159">
|
1122
|
+
|
1123
|
+
|
1124
|
+
<code class="ruby"></code>
|
1125
|
+
</li>
|
1126
|
+
|
1127
|
+
<li class="covered" data-hits="12" data-linenumber="160">
|
1128
|
+
<span class="hits">12</span>
|
1129
|
+
|
1130
|
+
<code class="ruby"> method_name = options[:query] ? "#{name}?" : name</code>
|
1131
|
+
</li>
|
1132
|
+
|
1133
|
+
<li class="covered" data-hits="12" data-linenumber="161">
|
1134
|
+
<span class="hits">12</span>
|
1135
|
+
|
1136
|
+
<code class="ruby"> define_method(method_name) do</code>
|
1137
|
+
</li>
|
1138
|
+
|
1139
|
+
<li class="covered" data-hits="20" data-linenumber="162">
|
1140
|
+
<span class="hits">20</span>
|
1141
|
+
|
1142
|
+
<code class="ruby"> value = instance_variable_get("@#{name}")</code>
|
1143
|
+
</li>
|
1144
|
+
|
1145
|
+
<li class="never" data-hits="" data-linenumber="163">
|
1146
|
+
|
1147
|
+
|
1148
|
+
<code class="ruby"></code>
|
1149
|
+
</li>
|
1150
|
+
|
1151
|
+
<li class="covered" data-hits="20" data-linenumber="164">
|
1152
|
+
<span class="hits">20</span>
|
1153
|
+
|
1154
|
+
<code class="ruby"> options[:query] ? !!value : value</code>
|
1155
|
+
</li>
|
1156
|
+
|
1157
|
+
<li class="never" data-hits="" data-linenumber="165">
|
1158
|
+
|
1159
|
+
|
1160
|
+
<code class="ruby"> end</code>
|
1161
|
+
</li>
|
1162
|
+
|
1163
|
+
<li class="never" data-hits="" data-linenumber="166">
|
1164
|
+
|
1165
|
+
|
1166
|
+
<code class="ruby"> end</code>
|
1167
|
+
</li>
|
1168
|
+
|
1169
|
+
<li class="never" data-hits="" data-linenumber="167">
|
1170
|
+
|
1171
|
+
|
1172
|
+
<code class="ruby"></code>
|
1173
|
+
</li>
|
1174
|
+
|
1175
|
+
<li class="covered" data-hits="13" data-linenumber="168">
|
1176
|
+
<span class="hits">13</span>
|
1177
|
+
|
1178
|
+
<code class="ruby"> if options[:setter]</code>
|
1179
|
+
</li>
|
1180
|
+
|
1181
|
+
<li class="covered" data-hits="11" data-linenumber="169">
|
1182
|
+
<span class="hits">11</span>
|
1183
|
+
|
1184
|
+
<code class="ruby"> options[:setter] = options[:setter] == true ? {} : options[:setter].to_h</code>
|
1185
|
+
</li>
|
1186
|
+
|
1187
|
+
<li class="never" data-hits="" data-linenumber="170">
|
1188
|
+
|
1189
|
+
|
1190
|
+
<code class="ruby"></code>
|
1191
|
+
</li>
|
1192
|
+
|
1193
|
+
<li class="covered" data-hits="11" data-linenumber="171">
|
1194
|
+
<span class="hits">11</span>
|
1195
|
+
|
1196
|
+
<code class="ruby"> define_method("#{name}=") do |value|</code>
|
1197
|
+
</li>
|
1198
|
+
|
1199
|
+
<li class="covered" data-hits="10" data-linenumber="172">
|
1200
|
+
<span class="hits">10</span>
|
1201
|
+
|
1202
|
+
<code class="ruby"> value = instance_exec(value, options, &block) unless block.nil?</code>
|
1203
|
+
</li>
|
1204
|
+
|
1205
|
+
<li class="covered" data-hits="10" data-linenumber="173">
|
1206
|
+
<span class="hits">10</span>
|
1207
|
+
|
1208
|
+
<code class="ruby"> value = options[:query] ? !!value : value</code>
|
1209
|
+
</li>
|
1210
|
+
|
1211
|
+
<li class="never" data-hits="" data-linenumber="174">
|
1212
|
+
|
1213
|
+
|
1214
|
+
<code class="ruby"></code>
|
1215
|
+
</li>
|
1216
|
+
|
1217
|
+
<li class="covered" data-hits="10" data-linenumber="175">
|
1218
|
+
<span class="hits">10</span>
|
1219
|
+
|
1220
|
+
<code class="ruby"> instance_variable_set("@#{name}", value)</code>
|
1221
|
+
</li>
|
1222
|
+
|
1223
|
+
<li class="never" data-hits="" data-linenumber="176">
|
1224
|
+
|
1225
|
+
|
1226
|
+
<code class="ruby"> end</code>
|
1227
|
+
</li>
|
1228
|
+
|
1229
|
+
<li class="never" data-hits="" data-linenumber="177">
|
1230
|
+
|
1231
|
+
|
1232
|
+
<code class="ruby"> end</code>
|
1233
|
+
</li>
|
1234
|
+
|
1235
|
+
<li class="never" data-hits="" data-linenumber="178">
|
1236
|
+
|
1237
|
+
|
1238
|
+
<code class="ruby"></code>
|
1239
|
+
</li>
|
1240
|
+
|
1241
|
+
<li class="covered" data-hits="13" data-linenumber="179">
|
1242
|
+
<span class="hits">13</span>
|
1243
|
+
|
1244
|
+
<code class="ruby"> self</code>
|
1245
|
+
</li>
|
1246
|
+
|
1247
|
+
<li class="never" data-hits="" data-linenumber="180">
|
1248
|
+
|
1249
|
+
|
1250
|
+
<code class="ruby"> end</code>
|
1251
|
+
</li>
|
1252
|
+
|
1253
|
+
<li class="never" data-hits="" data-linenumber="181">
|
1254
|
+
|
1255
|
+
|
1256
|
+
<code class="ruby"> end</code>
|
1257
|
+
</li>
|
1258
|
+
|
1259
|
+
<li class="never" data-hits="" data-linenumber="182">
|
1260
|
+
|
1261
|
+
|
1262
|
+
<code class="ruby"></code>
|
1263
|
+
</li>
|
1264
|
+
|
1265
|
+
<li class="covered" data-hits="1" data-linenumber="183">
|
1266
|
+
<span class="hits">1</span>
|
1267
|
+
|
1268
|
+
<code class="ruby"> class << self</code>
|
1269
|
+
</li>
|
1270
|
+
|
1271
|
+
<li class="never" data-hits="" data-linenumber="184">
|
1272
|
+
|
1273
|
+
|
1274
|
+
<code class="ruby"> # On include hook to extend `ClassMethods`.</code>
|
1275
|
+
</li>
|
1276
|
+
|
1277
|
+
<li class="covered" data-hits="1" data-linenumber="185">
|
1278
|
+
<span class="hits">1</span>
|
1279
|
+
|
1280
|
+
<code class="ruby"> def included(base)</code>
|
1281
|
+
</li>
|
1282
|
+
|
1283
|
+
<li class="covered" data-hits="1" data-linenumber="186">
|
1284
|
+
<span class="hits">1</span>
|
1285
|
+
|
1286
|
+
<code class="ruby"> base.send(:extend, ClassMethods)</code>
|
1287
|
+
</li>
|
1288
|
+
|
1289
|
+
<li class="never" data-hits="" data-linenumber="187">
|
1290
|
+
|
1291
|
+
|
1292
|
+
<code class="ruby"> end</code>
|
1293
|
+
</li>
|
1294
|
+
|
1295
|
+
<li class="never" data-hits="" data-linenumber="188">
|
1296
|
+
|
1297
|
+
|
1298
|
+
<code class="ruby"> end</code>
|
1299
|
+
</li>
|
1300
|
+
|
1301
|
+
<li class="never" data-hits="" data-linenumber="189">
|
1302
|
+
|
1303
|
+
|
1304
|
+
<code class="ruby"></code>
|
1305
|
+
</li>
|
1306
|
+
|
1307
|
+
<li class="never" data-hits="" data-linenumber="190">
|
1308
|
+
|
1309
|
+
|
1310
|
+
<code class="ruby"> # Update attributes on this object.</code>
|
1311
|
+
</li>
|
1312
|
+
|
1313
|
+
<li class="never" data-hits="" data-linenumber="191">
|
1314
|
+
|
1315
|
+
|
1316
|
+
<code class="ruby"> #</code>
|
1317
|
+
</li>
|
1318
|
+
|
1319
|
+
<li class="never" data-hits="" data-linenumber="192">
|
1320
|
+
|
1321
|
+
|
1322
|
+
<code class="ruby"> # @example</code>
|
1323
|
+
</li>
|
1324
|
+
|
1325
|
+
<li class="never" data-hits="" data-linenumber="193">
|
1326
|
+
|
1327
|
+
|
1328
|
+
<code class="ruby"> # class User</code>
|
1329
|
+
</li>
|
1330
|
+
|
1331
|
+
<li class="never" data-hits="" data-linenumber="194">
|
1332
|
+
|
1333
|
+
|
1334
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
1335
|
+
</li>
|
1336
|
+
|
1337
|
+
<li class="never" data-hits="" data-linenumber="195">
|
1338
|
+
|
1339
|
+
|
1340
|
+
<code class="ruby"> #</code>
|
1341
|
+
</li>
|
1342
|
+
|
1343
|
+
<li class="never" data-hits="" data-linenumber="196">
|
1344
|
+
|
1345
|
+
|
1346
|
+
<code class="ruby"> # attribute(:name) { |value| value.to_s.strip }</code>
|
1347
|
+
</li>
|
1348
|
+
|
1349
|
+
<li class="never" data-hits="" data-linenumber="197">
|
1350
|
+
|
1351
|
+
|
1352
|
+
<code class="ruby"> # attribute(:moderator, query: true)</code>
|
1353
|
+
</li>
|
1354
|
+
|
1355
|
+
<li class="never" data-hits="" data-linenumber="198">
|
1356
|
+
|
1357
|
+
|
1358
|
+
<code class="ruby"> # attribute(:admin, query: true) { |value| @moderator ? value : false }</code>
|
1359
|
+
</li>
|
1360
|
+
|
1361
|
+
<li class="never" data-hits="" data-linenumber="199">
|
1362
|
+
|
1363
|
+
|
1364
|
+
<code class="ruby"> # end</code>
|
1365
|
+
</li>
|
1366
|
+
|
1367
|
+
<li class="never" data-hits="" data-linenumber="200">
|
1368
|
+
|
1369
|
+
|
1370
|
+
<code class="ruby"> #</code>
|
1371
|
+
</li>
|
1372
|
+
|
1373
|
+
<li class="never" data-hits="" data-linenumber="201">
|
1374
|
+
|
1375
|
+
|
1376
|
+
<code class="ruby"> # user = User.new</code>
|
1377
|
+
</li>
|
1378
|
+
|
1379
|
+
<li class="never" data-hits="" data-linenumber="202">
|
1380
|
+
|
1381
|
+
|
1382
|
+
<code class="ruby"> #</code>
|
1383
|
+
</li>
|
1384
|
+
|
1385
|
+
<li class="never" data-hits="" data-linenumber="203">
|
1386
|
+
|
1387
|
+
|
1388
|
+
<code class="ruby"> # user.name # => nil</code>
|
1389
|
+
</li>
|
1390
|
+
|
1391
|
+
<li class="never" data-hits="" data-linenumber="204">
|
1392
|
+
|
1393
|
+
|
1394
|
+
<code class="ruby"> # user.moderator? # => false</code>
|
1395
|
+
</li>
|
1396
|
+
|
1397
|
+
<li class="never" data-hits="" data-linenumber="205">
|
1398
|
+
|
1399
|
+
|
1400
|
+
<code class="ruby"> # user.admin? # => false</code>
|
1401
|
+
</li>
|
1402
|
+
|
1403
|
+
<li class="never" data-hits="" data-linenumber="206">
|
1404
|
+
|
1405
|
+
|
1406
|
+
<code class="ruby"> #</code>
|
1407
|
+
</li>
|
1408
|
+
|
1409
|
+
<li class="never" data-hits="" data-linenumber="207">
|
1410
|
+
|
1411
|
+
|
1412
|
+
<code class="ruby"> # user.update_attributes(name: " Ezio Auditore ", moderator: true)</code>
|
1413
|
+
</li>
|
1414
|
+
|
1415
|
+
<li class="never" data-hits="" data-linenumber="208">
|
1416
|
+
|
1417
|
+
|
1418
|
+
<code class="ruby"> #</code>
|
1419
|
+
</li>
|
1420
|
+
|
1421
|
+
<li class="never" data-hits="" data-linenumber="209">
|
1422
|
+
|
1423
|
+
|
1424
|
+
<code class="ruby"> # user.name # => "Ezio Auditore"</code>
|
1425
|
+
</li>
|
1426
|
+
|
1427
|
+
<li class="never" data-hits="" data-linenumber="210">
|
1428
|
+
|
1429
|
+
|
1430
|
+
<code class="ruby"> # user.moderator? # => true</code>
|
1431
|
+
</li>
|
1432
|
+
|
1433
|
+
<li class="never" data-hits="" data-linenumber="211">
|
1434
|
+
|
1435
|
+
|
1436
|
+
<code class="ruby"> # user.admin? # => false</code>
|
1437
|
+
</li>
|
1438
|
+
|
1439
|
+
<li class="never" data-hits="" data-linenumber="212">
|
1440
|
+
|
1441
|
+
|
1442
|
+
<code class="ruby"> # @example In `#initialize`</code>
|
1443
|
+
</li>
|
1444
|
+
|
1445
|
+
<li class="never" data-hits="" data-linenumber="213">
|
1446
|
+
|
1447
|
+
|
1448
|
+
<code class="ruby"> # class User</code>
|
1449
|
+
</li>
|
1450
|
+
|
1451
|
+
<li class="never" data-hits="" data-linenumber="214">
|
1452
|
+
|
1453
|
+
|
1454
|
+
<code class="ruby"> # include Aspect::HasAttributes</code>
|
1455
|
+
</li>
|
1456
|
+
|
1457
|
+
<li class="never" data-hits="" data-linenumber="215">
|
1458
|
+
|
1459
|
+
|
1460
|
+
<code class="ruby"> #</code>
|
1461
|
+
</li>
|
1462
|
+
|
1463
|
+
<li class="never" data-hits="" data-linenumber="216">
|
1464
|
+
|
1465
|
+
|
1466
|
+
<code class="ruby"> # def initialize(attributes={})</code>
|
1467
|
+
</li>
|
1468
|
+
|
1469
|
+
<li class="never" data-hits="" data-linenumber="217">
|
1470
|
+
|
1471
|
+
|
1472
|
+
<code class="ruby"> # update_attributes(attributes)</code>
|
1473
|
+
</li>
|
1474
|
+
|
1475
|
+
<li class="never" data-hits="" data-linenumber="218">
|
1476
|
+
|
1477
|
+
|
1478
|
+
<code class="ruby"> # end</code>
|
1479
|
+
</li>
|
1480
|
+
|
1481
|
+
<li class="never" data-hits="" data-linenumber="219">
|
1482
|
+
|
1483
|
+
|
1484
|
+
<code class="ruby"> #</code>
|
1485
|
+
</li>
|
1486
|
+
|
1487
|
+
<li class="never" data-hits="" data-linenumber="220">
|
1488
|
+
|
1489
|
+
|
1490
|
+
<code class="ruby"> # attribute(:name) { |value| value.to_s.strip }</code>
|
1491
|
+
</li>
|
1492
|
+
|
1493
|
+
<li class="never" data-hits="" data-linenumber="221">
|
1494
|
+
|
1495
|
+
|
1496
|
+
<code class="ruby"> # attribute(:moderator, query: true)</code>
|
1497
|
+
</li>
|
1498
|
+
|
1499
|
+
<li class="never" data-hits="" data-linenumber="222">
|
1500
|
+
|
1501
|
+
|
1502
|
+
<code class="ruby"> # attribute(:admin, query: true) { |value| @moderator ? value : false }</code>
|
1503
|
+
</li>
|
1504
|
+
|
1505
|
+
<li class="never" data-hits="" data-linenumber="223">
|
1506
|
+
|
1507
|
+
|
1508
|
+
<code class="ruby"> # end</code>
|
1509
|
+
</li>
|
1510
|
+
|
1511
|
+
<li class="never" data-hits="" data-linenumber="224">
|
1512
|
+
|
1513
|
+
|
1514
|
+
<code class="ruby"> #</code>
|
1515
|
+
</li>
|
1516
|
+
|
1517
|
+
<li class="never" data-hits="" data-linenumber="225">
|
1518
|
+
|
1519
|
+
|
1520
|
+
<code class="ruby"> # user = User.new(name: " Ezio Auditore ", moderator: true)</code>
|
1521
|
+
</li>
|
1522
|
+
|
1523
|
+
<li class="never" data-hits="" data-linenumber="226">
|
1524
|
+
|
1525
|
+
|
1526
|
+
<code class="ruby"> #</code>
|
1527
|
+
</li>
|
1528
|
+
|
1529
|
+
<li class="never" data-hits="" data-linenumber="227">
|
1530
|
+
|
1531
|
+
|
1532
|
+
<code class="ruby"> # user.name # => "Ezio Auditore"</code>
|
1533
|
+
</li>
|
1534
|
+
|
1535
|
+
<li class="never" data-hits="" data-linenumber="228">
|
1536
|
+
|
1537
|
+
|
1538
|
+
<code class="ruby"> # user.moderator? # => true</code>
|
1539
|
+
</li>
|
1540
|
+
|
1541
|
+
<li class="never" data-hits="" data-linenumber="229">
|
1542
|
+
|
1543
|
+
|
1544
|
+
<code class="ruby"> # user.admin? # => false</code>
|
1545
|
+
</li>
|
1546
|
+
|
1547
|
+
<li class="never" data-hits="" data-linenumber="230">
|
1548
|
+
|
1549
|
+
|
1550
|
+
<code class="ruby"> # @param [Hash, #to_h] attributes</code>
|
1551
|
+
</li>
|
1552
|
+
|
1553
|
+
<li class="never" data-hits="" data-linenumber="231">
|
1554
|
+
|
1555
|
+
|
1556
|
+
<code class="ruby"> # @return [Object]</code>
|
1557
|
+
</li>
|
1558
|
+
|
1559
|
+
<li class="covered" data-hits="1" data-linenumber="232">
|
1560
|
+
<span class="hits">1</span>
|
1561
|
+
|
1562
|
+
<code class="ruby"> def update_attributes(attributes={})</code>
|
1563
|
+
</li>
|
1564
|
+
|
1565
|
+
<li class="covered" data-hits="3" data-linenumber="233">
|
1566
|
+
<span class="hits">3</span>
|
1567
|
+
|
1568
|
+
<code class="ruby"> attributes.to_h.each { |name, value| send("#{name}=", value) }</code>
|
1569
|
+
</li>
|
1570
|
+
|
1571
|
+
<li class="never" data-hits="" data-linenumber="234">
|
1572
|
+
|
1573
|
+
|
1574
|
+
<code class="ruby"></code>
|
1575
|
+
</li>
|
1576
|
+
|
1577
|
+
<li class="covered" data-hits="1" data-linenumber="235">
|
1578
|
+
<span class="hits">1</span>
|
1579
|
+
|
1580
|
+
<code class="ruby"> self</code>
|
1581
|
+
</li>
|
1582
|
+
|
1583
|
+
<li class="never" data-hits="" data-linenumber="236">
|
1584
|
+
|
1585
|
+
|
1586
|
+
<code class="ruby"> end</code>
|
1587
|
+
</li>
|
1588
|
+
|
1589
|
+
<li class="never" data-hits="" data-linenumber="237">
|
1590
|
+
|
1591
|
+
|
1592
|
+
<code class="ruby"> end</code>
|
1593
|
+
</li>
|
1594
|
+
|
1595
|
+
<li class="never" data-hits="" data-linenumber="238">
|
1596
|
+
|
1597
|
+
|
1598
|
+
<code class="ruby">end</code>
|
1599
|
+
</li>
|
1600
|
+
|
1601
|
+
</ol>
|
1602
|
+
</pre>
|
1603
|
+
</div>
|
1604
|
+
|
1605
|
+
<div class="source_table" id="3b6af0d81674d1892ae079d4019486ad504c42ce">
|
1606
|
+
<div class="header">
|
1607
|
+
<h3>lib/aspect/version.rb</h3>
|
1608
|
+
<h4><span class="green">100.0 %</span> covered</h4>
|
1609
|
+
<div>
|
1610
|
+
<b>2</b> relevant lines.
|
1611
|
+
<span class="green"><b>2</b> lines covered</span> and
|
1612
|
+
<span class="red"><b>0</b> lines missed.</span>
|
1613
|
+
</div>
|
1614
|
+
</div>
|
1615
|
+
|
1616
|
+
<pre>
|
1617
|
+
<ol>
|
1618
|
+
|
1619
|
+
<li class="covered" data-hits="1" data-linenumber="1">
|
1620
|
+
<span class="hits">1</span>
|
1621
|
+
|
1622
|
+
<code class="ruby">module Aspect</code>
|
1623
|
+
</li>
|
1624
|
+
|
1625
|
+
<li class="covered" data-hits="1" data-linenumber="2">
|
1626
|
+
<span class="hits">1</span>
|
1627
|
+
|
1628
|
+
<code class="ruby"> VERSION = "0.0.1".freeze</code>
|
1629
|
+
</li>
|
1630
|
+
|
1631
|
+
<li class="never" data-hits="" data-linenumber="3">
|
1632
|
+
|
1633
|
+
|
1634
|
+
<code class="ruby">end</code>
|
1635
|
+
</li>
|
1636
|
+
|
1637
|
+
</ol>
|
1638
|
+
</pre>
|
1639
|
+
</div>
|
1640
|
+
|
69
1641
|
</div>
|
70
1642
|
</div>
|
71
1643
|
</body>
|