Class | Hashery::PropertyHash |
In: |
lib/hashery/property_hash.rb
|
Parent: | CRUDHash |
A PropertyHash is the same as a regular Hash except it strictly limits the allowed keys.
There are two ways to use it.
1) As an object in itself.
h = PropertyHash.new(:a=>1, :b=>2) h[:a] #=> 1 h[:a] = 3 h[:a] #=> 3
But if we try to set key that was not fixed, then we will get an error.
h[:x] = 5 #=> ArgumentError
2) As a superclass.
class MyPropertyHash < PropertyHash property :a, :default => 1 property :b, :default => 2 end h = MyPropertyHash.new h[:a] #=> 1 h[:a] = 3 h[:a] #=> 3
Again, if we try to set key that was not fixed, then we will get an error.
h[:x] = 5 #=> ArgumentError
store | -> | store! |
Alias original store method and make private. |
Initialize new instance of PropertyHash.
properties - [Hash] Priming properties with default values, or
if it doesn't respond to #each_pair, a default object.
default_proc - [Proc] Procedure for default value of properties
for properties without specific defaults.
Get a list of properties with default values.
Returns [Hash] of properties and their default values.