formal_wear 0.3.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/formal_wear.gemspec +1 -1
- data/lib/core_extensions/hash/assert_required_keys.rb +9 -0
- data/lib/core_extensions/hash/deep_dup.rb +12 -0
- data/lib/formal_wear.rb +6 -3
- data/lib/formal_wear/instance_methods.rb +5 -0
- data/lib/formal_wear/version.rb +1 -1
- data/spec/new_object_spec.rb +31 -1
- data/spec/required_attr_spec.rb +2 -2
- metadata +7 -5
data/formal_wear.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.version = FormalWear::VERSION
|
17
17
|
|
18
18
|
gem.add_dependency 'activesupport', '>= 3.0.20'
|
19
|
-
gem.add_dependency '
|
19
|
+
gem.add_dependency 'i18n', '~> 0.5.0'
|
20
20
|
gem.add_development_dependency 'rspec'
|
21
21
|
gem.add_development_dependency 'mocha', '~> 0.13.1'
|
22
22
|
gem.add_development_dependency 'coveralls'
|
data/lib/formal_wear.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
|
+
require 'active_support/core_ext'
|
2
|
+
require 'active_support/concern'
|
3
|
+
|
4
|
+
require 'core_extensions/hash/assert_required_keys'
|
5
|
+
require 'core_extensions/hash/deep_dup'
|
6
|
+
|
1
7
|
require 'formal_wear/version'
|
2
8
|
require 'formal_wear/class_methods'
|
3
9
|
require 'formal_wear/instance_methods'
|
4
10
|
require 'formal_wear/suit'
|
5
|
-
require 'hash_assertions'
|
6
|
-
require 'active_support/core_ext'
|
7
|
-
require 'active_support/concern'
|
8
11
|
|
9
12
|
module FormalWear
|
10
13
|
extend ActiveSupport::Concern
|
data/lib/formal_wear/version.rb
CHANGED
data/spec/new_object_spec.rb
CHANGED
@@ -202,7 +202,37 @@ describe 'a new FormalWear-ing object' do
|
|
202
202
|
|
203
203
|
it 'should ignore attributes that do not exist' do
|
204
204
|
subject
|
205
|
-
config.
|
205
|
+
config.respond_to?(:nonexistent_id).should be_false
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
describe '#update!' do
|
211
|
+
let!(:params) { { moms_id: 1, docs_id: 2, lambda_lambda_lambda: 3 } }
|
212
|
+
|
213
|
+
it 'should update docs_id' do
|
214
|
+
config.expects(:valid?).returns(false)
|
215
|
+
config.update!(params)
|
216
|
+
config.docs_id.should eq(2)
|
217
|
+
end
|
218
|
+
|
219
|
+
context 'if object is valid' do
|
220
|
+
before { config.expects(:save).returns(false) }
|
221
|
+
|
222
|
+
it 'should invoke #save' do
|
223
|
+
config.update!(params)
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
context 'if object is invalid' do
|
228
|
+
before { config.expects(:save).never }
|
229
|
+
|
230
|
+
it 'should not invoke #save' do
|
231
|
+
config.update!(params.except(:lambda_lambda_lambda))
|
232
|
+
end
|
233
|
+
|
234
|
+
it 'should return false' do
|
235
|
+
config.update!(params.except(:lambda_lambda_lambda)).should be_false
|
206
236
|
end
|
207
237
|
end
|
208
238
|
end
|
data/spec/required_attr_spec.rb
CHANGED
@@ -3,13 +3,13 @@ require 'spec_helper'
|
|
3
3
|
describe 'Class#required_attr method' do
|
4
4
|
context 'when given unallowed field options' do
|
5
5
|
it 'raises an ArgumentError' do
|
6
|
-
expect { require_relative('./support/forbidden_option_tester') }.to raise_error(ArgumentError,
|
6
|
+
expect { require_relative('./support/forbidden_option_tester') }.to raise_error(ArgumentError, /Unknown key(\(s\))*: extraneous/)
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
10
|
context 'when missing required field options' do
|
11
11
|
it 'raises an ArgumentError' do
|
12
|
-
expect { require_relative('./support/missing_option_tester') }.to raise_error(ArgumentError, /Missing required key
|
12
|
+
expect { require_relative('./support/missing_option_tester') }.to raise_error(ArgumentError, /Missing required key(\(s\))*: type/)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formal_wear
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -28,13 +28,13 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 3.0.20
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: i18n
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.
|
37
|
+
version: 0.5.0
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.
|
45
|
+
version: 0.5.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rspec
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,8 @@ files:
|
|
108
108
|
- README.md
|
109
109
|
- Rakefile
|
110
110
|
- formal_wear.gemspec
|
111
|
+
- lib/core_extensions/hash/assert_required_keys.rb
|
112
|
+
- lib/core_extensions/hash/deep_dup.rb
|
111
113
|
- lib/formal_wear.rb
|
112
114
|
- lib/formal_wear/class_methods.rb
|
113
115
|
- lib/formal_wear/instance_methods.rb
|