cb_hashie 2.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,70 @@
1
+ require 'spec_helper'
2
+
3
+ describe Hashie::Trash do
4
+ class TrashTest < Hashie::Trash
5
+ property :first_name, :from => :firstName
6
+ end
7
+
8
+ let(:trash) { TrashTest.new }
9
+
10
+ describe 'translating properties' do
11
+ it 'adds the property to the list' do
12
+ TrashTest.properties.should include(:first_name)
13
+ end
14
+
15
+ it 'creates a method for reading the property' do
16
+ trash.should respond_to(:first_name)
17
+ end
18
+
19
+ it 'creates a method for writing the property' do
20
+ trash.should respond_to(:first_name=)
21
+ end
22
+
23
+ it 'creates a method for writing the translated property' do
24
+ trash.should respond_to(:firstName=)
25
+ end
26
+
27
+ it 'does not create a method for reading the translated property' do
28
+ trash.should_not respond_to(:firstName)
29
+ end
30
+ end
31
+
32
+ describe 'writing to properties' do
33
+
34
+ it 'does not write to a non-existent property using []=' do
35
+ lambda{trash['abc'] = 123}.should raise_error(NoMethodError)
36
+ end
37
+
38
+ it 'writes to an existing property using []=' do
39
+ lambda{trash['first_name'] = 'Bob'}.should_not raise_error
40
+ end
41
+
42
+ it 'writes to a translated property using []=' do
43
+ lambda{trash['firstName'] = 'Bob'}.should_not raise_error
44
+ end
45
+
46
+ it 'reads/writes to an existing property using a method call' do
47
+ trash.first_name = 'Franklin'
48
+ trash.first_name.should == 'Franklin'
49
+ end
50
+
51
+ it 'writes to an translated property using a method call' do
52
+ trash.firstName = 'Franklin'
53
+ trash.first_name.should == 'Franklin'
54
+ end
55
+ end
56
+
57
+ describe ' initializing with a Hash' do
58
+ it 'does not initialize non-existent properties' do
59
+ lambda{TrashTest.new(:bork => 'abc')}.should raise_error(NoMethodError)
60
+ end
61
+
62
+ it 'sets the desired properties' do
63
+ TrashTest.new(:first_name => 'Michael').first_name.should == 'Michael'
64
+ end
65
+
66
+ it 'sets the translated properties' do
67
+ TrashTest.new(:firstName => 'Michael').first_name.should == 'Michael'
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --format progress
3
+ --backtrace
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
+
6
+ require 'hashie'
7
+ require 'rspec'
8
+ require 'rspec/autorun'
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
metadata ADDED
@@ -0,0 +1,181 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cb_hashie
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0.beta
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Michael Bleigh
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.9.2
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.9.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '2.5'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '2.5'
46
+ - !ruby/object:Gem::Dependency
47
+ name: guard
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: guard-rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: growl
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: Hashie is a small collection of tools that make hashes more powerful.
95
+ Currently includes Mash (Mocking Hash) and Dash (Discrete Hash).
96
+ email:
97
+ - michael@intridea.com
98
+ executables: []
99
+ extensions: []
100
+ extra_rdoc_files: []
101
+ files:
102
+ - .document
103
+ - .gitignore
104
+ - .rspec
105
+ - .travis.yml
106
+ - .yardopts
107
+ - Gemfile
108
+ - Gemfile.lock
109
+ - Guardfile
110
+ - LICENSE
111
+ - README.markdown
112
+ - Rakefile
113
+ - VERSION
114
+ - hashie.gemspec
115
+ - lib/hashie.rb
116
+ - lib/hashie/clash.rb
117
+ - lib/hashie/dash.rb
118
+ - lib/hashie/extensions/coercion.rb
119
+ - lib/hashie/extensions/deep_merge.rb
120
+ - lib/hashie/extensions/indifferent_access.rb
121
+ - lib/hashie/extensions/key_conversion.rb
122
+ - lib/hashie/extensions/merge_initializer.rb
123
+ - lib/hashie/extensions/method_access.rb
124
+ - lib/hashie/extensions/structure.rb
125
+ - lib/hashie/hash.rb
126
+ - lib/hashie/hash_extensions.rb
127
+ - lib/hashie/mash.rb
128
+ - lib/hashie/trash.rb
129
+ - lib/hashie/version.rb
130
+ - spec/hashie/clash_spec.rb
131
+ - spec/hashie/dash_spec.rb
132
+ - spec/hashie/extensions/coercion_spec.rb
133
+ - spec/hashie/extensions/indifferent_access_spec.rb
134
+ - spec/hashie/extensions/key_conversion_spec.rb
135
+ - spec/hashie/extensions/merge_initializer_spec.rb
136
+ - spec/hashie/extensions/method_access_spec.rb
137
+ - spec/hashie/hash_spec.rb
138
+ - spec/hashie/mash_spec.rb
139
+ - spec/hashie/trash_spec.rb
140
+ - spec/spec.opts
141
+ - spec/spec_helper.rb
142
+ homepage: https://github.com/intridea/hashie
143
+ licenses: []
144
+ post_install_message:
145
+ rdoc_options: []
146
+ require_paths:
147
+ - lib
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ segments:
155
+ - 0
156
+ hash: -3600221870114248671
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - ! '>'
161
+ - !ruby/object:Gem::Version
162
+ version: 1.3.1
163
+ requirements: []
164
+ rubyforge_project:
165
+ rubygems_version: 1.8.24
166
+ signing_key:
167
+ specification_version: 3
168
+ summary: Your friendly neighborhood hash toolkit.
169
+ test_files:
170
+ - spec/hashie/clash_spec.rb
171
+ - spec/hashie/dash_spec.rb
172
+ - spec/hashie/extensions/coercion_spec.rb
173
+ - spec/hashie/extensions/indifferent_access_spec.rb
174
+ - spec/hashie/extensions/key_conversion_spec.rb
175
+ - spec/hashie/extensions/merge_initializer_spec.rb
176
+ - spec/hashie/extensions/method_access_spec.rb
177
+ - spec/hashie/hash_spec.rb
178
+ - spec/hashie/mash_spec.rb
179
+ - spec/hashie/trash_spec.rb
180
+ - spec/spec.opts
181
+ - spec/spec_helper.rb