hashie 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,19 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Michael Bleigh
9
+ - Jerry Cheung
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2011-10-15 00:00:00.000000000Z
13
+ date: 2013-02-16 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: rake
16
- requirement: &70100391048320 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
20
  - - ~>
@@ -21,10 +22,15 @@ dependencies:
21
22
  version: 0.9.2
22
23
  type: :development
23
24
  prerelease: false
24
- version_requirements: *70100391048320
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 0.9.2
25
31
  - !ruby/object:Gem::Dependency
26
32
  name: rspec
27
- requirement: &70100391047700 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
28
34
  none: false
29
35
  requirements:
30
36
  - - ~>
@@ -32,10 +38,15 @@ dependencies:
32
38
  version: '2.5'
33
39
  type: :development
34
40
  prerelease: false
35
- version_requirements: *70100391047700
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '2.5'
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: guard
38
- requirement: &70100391047200 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,31 @@ dependencies:
43
54
  version: '0'
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70100391047200
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
47
63
  - !ruby/object:Gem::Dependency
48
64
  name: guard-rspec
49
- requirement: &70100391046540 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: growl
81
+ requirement: !ruby/object:Gem::Requirement
50
82
  none: false
51
83
  requirements:
52
84
  - - ! '>='
@@ -54,11 +86,17 @@ dependencies:
54
86
  version: '0'
55
87
  type: :development
56
88
  prerelease: false
57
- version_requirements: *70100391046540
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
58
95
  description: Hashie is a small collection of tools that make hashes more powerful.
59
96
  Currently includes Mash (Mocking Hash) and Dash (Discrete Hash).
60
97
  email:
61
98
  - michael@intridea.com
99
+ - jollyjerry@gmail.com
62
100
  executables: []
63
101
  extensions: []
64
102
  extra_rdoc_files: []
@@ -67,16 +105,26 @@ files:
67
105
  - .gitignore
68
106
  - .rspec
69
107
  - .travis.yml
108
+ - .yardopts
109
+ - CHANGELOG.md
110
+ - CONTRIBUTING.md
70
111
  - Gemfile
71
- - Gemfile.lock
72
112
  - Guardfile
73
113
  - LICENSE
74
- - README.rdoc
114
+ - README.markdown
75
115
  - Rakefile
116
+ - VERSION
76
117
  - hashie.gemspec
77
118
  - lib/hashie.rb
78
119
  - lib/hashie/clash.rb
79
120
  - lib/hashie/dash.rb
121
+ - lib/hashie/extensions/coercion.rb
122
+ - lib/hashie/extensions/deep_merge.rb
123
+ - lib/hashie/extensions/indifferent_access.rb
124
+ - lib/hashie/extensions/key_conversion.rb
125
+ - lib/hashie/extensions/merge_initializer.rb
126
+ - lib/hashie/extensions/method_access.rb
127
+ - lib/hashie/extensions/structure.rb
80
128
  - lib/hashie/hash.rb
81
129
  - lib/hashie/hash_extensions.rb
82
130
  - lib/hashie/mash.rb
@@ -84,13 +132,20 @@ files:
84
132
  - lib/hashie/version.rb
85
133
  - spec/hashie/clash_spec.rb
86
134
  - spec/hashie/dash_spec.rb
135
+ - spec/hashie/extensions/coercion_spec.rb
136
+ - spec/hashie/extensions/deep_merge_spec.rb
137
+ - spec/hashie/extensions/indifferent_access_spec.rb
138
+ - spec/hashie/extensions/key_conversion_spec.rb
139
+ - spec/hashie/extensions/merge_initializer_spec.rb
140
+ - spec/hashie/extensions/method_access_spec.rb
87
141
  - spec/hashie/hash_spec.rb
88
142
  - spec/hashie/mash_spec.rb
89
143
  - spec/hashie/trash_spec.rb
90
144
  - spec/spec.opts
91
145
  - spec/spec_helper.rb
92
146
  homepage: https://github.com/intridea/hashie
93
- licenses: []
147
+ licenses:
148
+ - MIT
94
149
  post_install_message:
95
150
  rdoc_options: []
96
151
  require_paths:
@@ -103,7 +158,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
158
  version: '0'
104
159
  segments:
105
160
  - 0
106
- hash: 839965074967514567
161
+ hash: 3365405731084107333
107
162
  required_rubygems_version: !ruby/object:Gem::Requirement
108
163
  none: false
109
164
  requirements:
@@ -112,18 +167,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
167
  version: '0'
113
168
  segments:
114
169
  - 0
115
- hash: 839965074967514567
170
+ hash: 3365405731084107333
116
171
  requirements: []
117
172
  rubyforge_project:
118
- rubygems_version: 1.8.10
173
+ rubygems_version: 1.8.23
119
174
  signing_key:
120
175
  specification_version: 3
121
176
  summary: Your friendly neighborhood hash toolkit.
122
- test_files:
123
- - spec/hashie/clash_spec.rb
124
- - spec/hashie/dash_spec.rb
125
- - spec/hashie/hash_spec.rb
126
- - spec/hashie/mash_spec.rb
127
- - spec/hashie/trash_spec.rb
128
- - spec/spec.opts
129
- - spec/spec_helper.rb
177
+ test_files: []
@@ -1,34 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- hashie (1.2.0)
5
-
6
- GEM
7
- remote: http://rubygems.org/
8
- specs:
9
- diff-lcs (1.1.2)
10
- guard (0.5.1)
11
- thor (~> 0.14.6)
12
- guard-rspec (0.4.0)
13
- guard (>= 0.4.0)
14
- rake (0.9.2)
15
- rspec (2.6.0)
16
- rspec-core (~> 2.6.0)
17
- rspec-expectations (~> 2.6.0)
18
- rspec-mocks (~> 2.6.0)
19
- rspec-core (2.6.4)
20
- rspec-expectations (2.6.0)
21
- diff-lcs (~> 1.1.2)
22
- rspec-mocks (2.6.0)
23
- thor (0.14.6)
24
-
25
- PLATFORMS
26
- java
27
- ruby
28
-
29
- DEPENDENCIES
30
- guard
31
- guard-rspec
32
- hashie!
33
- rake (~> 0.9.2)
34
- rspec (~> 2.5)
@@ -1,120 +0,0 @@
1
- = Hashie
2
-
3
- Hashie is a growing collection of tools that extend Hashes and make
4
- them more useful.
5
-
6
- == Installation
7
-
8
- Hashie is available as a RubyGem:
9
-
10
- gem install hashie
11
-
12
- == Mash
13
-
14
- Mash is an extended Hash that gives simple pseudo-object functionality
15
- that can be built from hashes and easily extended. It is designed to
16
- be used in RESTful API libraries to provide easy object-like access
17
- to JSON and XML parsed hashes.
18
-
19
- === Example:
20
-
21
- mash = Hashie::Mash.new
22
- mash.name? # => false
23
- mash.name # => nil
24
- mash.name = "My Mash"
25
- mash.name # => "My Mash"
26
- mash.name? # => true
27
- mash.inspect # => <Hashie::Mash name="My Mash">
28
-
29
- mash = Mash.new
30
- # use bang methods for multi-level assignment
31
- mash.author!.name = "Michael Bleigh"
32
- mash.author # => <Hashie::Mash name="Michael Bleigh">
33
-
34
- <b>Note:</b> The <tt>?</tt> method will return false if a key has been set
35
- to false or nil. In order to check if a key has been set at all, use the
36
- <tt>mash.key?('some_key')</tt> method instead.
37
-
38
- == Dash
39
-
40
- Dash is an extended Hash that has a discrete set of defined properties
41
- and only those properties may be set on the hash. Additionally, you
42
- can set defaults for each property. You can also flag a property as
43
- required. Required properties will raise an execption if unset.
44
-
45
- === Example:
46
-
47
- class Person < Hashie::Dash
48
- property :name, :required => true
49
- property :email
50
- property :occupation, :default => 'Rubyist'
51
- end
52
-
53
- p = Person.new # => ArgumentError: The property 'name' is required for this Dash.
54
-
55
- p = Person.new(:name => "Bob")
56
- p.name # => 'Bob'
57
- p.name = nil # => ArgumentError: The property 'name' is required for this Dash.
58
- p.email = 'abc@def.com'
59
- p.occupation # => 'Rubyist'
60
- p.email # => 'abc@def.com'
61
- p[:awesome] # => NoMethodError
62
- p[:occupation] # => 'Rubyist'
63
-
64
- == Trash
65
-
66
- A Trash is a Dash that allows you to translate keys on initialization.
67
- It is used like so:
68
-
69
- class Person < Hashie::Trash
70
- property :first_name, :from => :firstName
71
- end
72
-
73
- This will automatically translate the <tt>firstName</tt> key to <tt>first_name</tt>
74
- when it is initialized using a hash such as through:
75
-
76
- Person.new(:firstName => 'Bob')
77
-
78
- == Clash
79
-
80
- Clash is a Chainable Lazy Hash that allows you to easily construct
81
- complex hashes using method notation chaining. This will allow you
82
- to use a more action-oriented approach to building options hashes.
83
-
84
- Essentially, a Clash is a generalized way to provide much of the same
85
- kind of "chainability" that libraries like Arel or Rails 2.x's named_scopes
86
- provide.
87
-
88
- === Example
89
-
90
- c = Hashie::Clash.new
91
- c.where(:abc => 'def').order(:created_at)
92
- c # => {:where => {:abc => 'def}, :order => :created_at}
93
-
94
- # You can also use bang notation to chain into sub-hashes,
95
- # jumping back up the chain with _end!
96
- c = Hashie::Clash.new
97
- c.where!.abc('def').ghi(123)._end!.order(:created_at)
98
- c # => {:where => {:abc => 'def', :ghi => 123}, :order => :created_at}
99
-
100
- # Multiple hashes are merged automatically
101
- c = Hashie::Clash.new
102
- c.where(:abc => 'def').where(:hgi => 123)
103
- c # => {:where => {:abc => 'def', :hgi => 123}}
104
-
105
-
106
- == Note on Patches/Pull Requests
107
-
108
- * Fork the project.
109
- * Make your feature addition or bug fix.
110
- * Add tests for it. This is important so I don't break it in a future version unintentionally.
111
- * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
112
- * Send me a pull request. Bonus points for topic branches.
113
-
114
- == Authors
115
-
116
- * Michael Bleigh
117
-
118
- == Copyright
119
-
120
- Copyright (c) 2009 Intridea, Inc (http://intridea.com/). See LICENSE for details.