valuable 0.9.7 → 0.9.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +41 -1
- data/valuable.version +1 -1
- metadata +1 -1
data/README.markdown
CHANGED
@@ -24,8 +24,10 @@ Contents
|
|
24
24
|
- [Aliases](#aliases)
|
25
25
|
- [Formatting Input](#formatting-input)
|
26
26
|
- [Pre-Defined Formatters](#pre-defined-formatters)
|
27
|
+
- [Extending Values](#extending-values)
|
27
28
|
- [Collections](#collections)
|
28
29
|
- [Formatting Collections](#formatting-collections)
|
30
|
+
- [Extending Collections](#extending-collections)
|
29
31
|
- [Registering Formatters](#registering-formatters)
|
30
32
|
- [More about Attributes](#more-about-attributes)
|
31
33
|
- [Advanced Input Parsing](#advanced-input-parsing)
|
@@ -102,6 +104,7 @@ like has_value, this creates a getter and setter. The default value is an array.
|
|
102
104
|
options:
|
103
105
|
+ **klass** - apply pre-defined or custom formatters to each element of the array.
|
104
106
|
+ **alias** - create additional getters and setters under this name.
|
107
|
+
+ **extend** - extend the collection with the provided module or modules.
|
105
108
|
|
106
109
|
class Person
|
107
110
|
has_collection :friends
|
@@ -362,6 +365,23 @@ see also [Registering Formatters](#registering-formatters)
|
|
362
365
|
when this is not the correct behavior. )
|
363
366
|
- or any class ( formats as SomeClass.new( ) unless value.is_a?( SomeClass ) )
|
364
367
|
|
368
|
+
Extending Values
|
369
|
+
----------------
|
370
|
+
|
371
|
+
As with has_value, you can do something like:
|
372
|
+
|
373
|
+
module PirateTranslator
|
374
|
+
def to_pirate
|
375
|
+
"#{self} AAARRRRRGgghhhh!"
|
376
|
+
end
|
377
|
+
end
|
378
|
+
|
379
|
+
class Envelope < Valuable
|
380
|
+
has_value :message, :extend => PirateTranslator
|
381
|
+
end
|
382
|
+
|
383
|
+
>> Envelope.new(:message => 'contrived').message.to_pirate
|
384
|
+
=> "contrived AAARRRRRGgghhhh!"
|
365
385
|
|
366
386
|
Collections
|
367
387
|
-----------
|
@@ -372,7 +392,9 @@ is similar to:
|
|
372
392
|
|
373
393
|
has_value :codez, :default => []
|
374
394
|
|
375
|
-
except
|
395
|
+
except
|
396
|
+
* it reads better
|
397
|
+
* that the formatter is applied to the collection's members, not (obviously) the collection. See [Formatting Collections](#formatting-collections) for more details.
|
376
398
|
|
377
399
|
class MailingList < Valuable
|
378
400
|
has_collection :emails
|
@@ -401,6 +423,24 @@ If a klass is specified, members of the collection will be formatted appropriate
|
|
401
423
|
|
402
424
|
see [Advanced Collection Formatting](#advanced-collection-formatting) for more complex examples.
|
403
425
|
|
426
|
+
Extending Collections
|
427
|
+
---------------------
|
428
|
+
|
429
|
+
As with has_value, you can do something like:
|
430
|
+
|
431
|
+
module PirateTranslator
|
432
|
+
def to_pirate
|
433
|
+
"#{self} AAARRRRRGgghhhh!"
|
434
|
+
end
|
435
|
+
end
|
436
|
+
|
437
|
+
class Envelope < Valuable
|
438
|
+
has_value :message, :extend => PirateTranslator
|
439
|
+
end
|
440
|
+
|
441
|
+
>> Envelope.new(:message => 'contrived').message.to_pirate
|
442
|
+
=> "contrived AAARRRRRGgghhhh!"
|
443
|
+
|
404
444
|
Registering Formatters
|
405
445
|
----------------------
|
406
446
|
|
data/valuable.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.8
|