cwyckoff-hash_builder 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.rdoc +31 -4
  2. data/lib/hash_builder.rb +3 -0
  3. metadata +2 -1
data/README.rdoc CHANGED
@@ -11,7 +11,7 @@ Are you tired of ugly, cumbersome hashes cluttering up your Rails models and con
11
11
  == Examples
12
12
 
13
13
 
14
- === Definitions
14
+ === Defining
15
15
 
16
16
  Let's say you want to build a hash of user contact information. In a separate file, set up a hash definition:
17
17
 
@@ -30,12 +30,18 @@ Let's say you want to build a hash of user contact information. In a separate f
30
30
  bldr[:zip] = "04656"
31
31
  end
32
32
 
33
+ bldr.build_hash(:personal) do
34
+ bldr[:gender] = "male"
35
+ bldr[:age] = "50"
36
+ bldr[:married] = false
37
+ end
38
+
33
39
  end
34
40
 
35
41
 
36
42
  === Building
37
43
 
38
- Each definition requires a key -- in this case :contact_info. Moreover, within the contact definition, you may set up namespaces (:name and :address) to further organize your hash content.
44
+ Each definition requires a key -- in this case :contact_info. Moreover, within the contact definition, you may set up namespaces (:name, :address, and :personal) to further organize your hash content.
39
45
 
40
46
  In order to build your hash, simply call
41
47
 
@@ -51,13 +57,16 @@ which will return
51
57
  :city => "Crabapple Cove",
52
58
  :state => "ME",
53
59
  :zip => "04656",
60
+ :gender => "mail",
61
+ :age => "50",
62
+ :married => false,
54
63
  }
55
64
 
56
65
  If you want to build an individual namespace, call
57
66
 
58
67
  HashBuilder.build_namespace(:contact_info, :address)
59
68
 
60
- which will return only
69
+ which will return only the :address section of the hash
61
70
 
62
71
  {
63
72
  :street => "123 Main St.",
@@ -73,8 +82,20 @@ To select multiple namespaces, set them in a block:
73
82
  b.using :address
74
83
  end
75
84
 
85
+ which returns only the :name and :address sections of the hash
86
+
87
+ {
88
+ :title => "Dr.",
89
+ :f_name => "Hawkeye",
90
+ :l_name => "Pierce",
91
+ :street => "123 Main St.",
92
+ :city => "Crabapple Cove",
93
+ :state => "ME",
94
+ :zip => "04656",
95
+ }
76
96
 
77
- === Additional Variables
97
+
98
+ === Variables
78
99
 
79
100
  You may pass additional variables to your hash definition when you build it. Simply pass them after the definition key.
80
101
 
@@ -101,6 +122,12 @@ All of this assumes that you will now yield the additional variables in the hash
101
122
  bldr[:zip] = user.zip
102
123
  end
103
124
 
125
+ bldr.build_hash(:personal) do |user|
126
+ bldr[:gender] = user.gender
127
+ bldr[:age] = user.age
128
+ bldr[:married] = user.married
129
+ end
130
+
104
131
  end
105
132
 
106
133
 
@@ -0,0 +1,3 @@
1
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
2
+
3
+ require "hash_builder/hash_builder"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cwyckoff-hash_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Wyckoff
@@ -24,6 +24,7 @@ extra_rdoc_files:
24
24
  - MIT-LICENSE
25
25
  files:
26
26
  - init.rb
27
+ - lib/hash_builder.rb
27
28
  - lib/hash_builder/hash_builder.rb
28
29
  - README.rdoc
29
30
  - MIT-LICENSE