acfs 0.21.0 → 0.21.1.b189

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 75cc01a8bf62c8e26a564ee7b93f074c51438590
4
- data.tar.gz: bb9d4214f3c9a9165940496f45f85388536f3fea
5
- SHA512:
6
- metadata.gz: 7d03ef94cdd7abef842964fd42a3d14844c874a56b91cbfaf2d43f2ea9c61b08f41a67ed8417049b793456884982c52de2be84b0762342bc9df87eb9d2eb3e4b
7
- data.tar.gz: 0cb04255453ab76bcd659ffaa9102e79d3c2bf7b313975c8f27bb587c1586ad885167881eaf89dacfaa876f2a24a4a113a6f717e8d7b2cdbb39021e58f082fad
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MjA2MzI1MjgyNDI5ZjhiOWZhYmRiNTljMzAxNjEzN2JmOTEyMWYxMQ==
5
+ data.tar.gz: !binary |-
6
+ ZTMzM2FjZjI4YmM5ZTE0ZWU0NTIyYTVkZjE3NjcxMjU0Y2NiMTY3Nw==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ Zjk0MzRmZWFlY2E4MzkwYWNiYTUwOWJjYjJkZGYyNDA2NjgyOTllZDljOWYy
10
+ NjQxMzVmOGNlNmVlYmQ4ZmU0N2QxNjlmODQ1Zjg4YmZmMjA4NjQ5ZjBkNjAz
11
+ YzhlYjBmM2NkMDYyZjU1ZTM1ZDEyOGNjNzIwZjJiZWYxMWEzNmM=
12
+ data.tar.gz: !binary |-
13
+ Nzg1NjM1ZjFlZjliMDVjNjMxOGM5NDIzN2U4Mjc1YjQ1ZWE5NjNjMTdhYTQ5
14
+ OGM5Zjc5YWQ1ZTRhNzk0Yzk1MTVkNGY5MjJkMzg2ZTdiYjZjNDY0YjQ2M2Zj
15
+ YmQ3MjkyMmMyNDA5MzJhMDA1YzQ0NTc2ZjgwNjM0MDg4NWQ3N2E=
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.21.1
4
+
5
+ * Fix wrong validation context
6
+
3
7
  ## 0.21.0
4
8
 
5
9
  * Add update_attributes
@@ -16,7 +16,7 @@ module Acfs
16
16
 
17
17
  def initialize(opts = {})
18
18
  @response = opts[:response]
19
- message = 'Received erroneous response'
19
+ message = opts[:message] || 'Received erroneous response'
20
20
  if response
21
21
  message << ": #{response.code}"
22
22
  if response.data
@@ -64,6 +64,8 @@ module Acfs
64
64
  def initialize(opts = {})
65
65
  @errors = opts.delete :errors
66
66
  @resource = opts.delete :resource
67
+ opts[:message] ||= @errors.map{ |k,v| "#{k}: #{v.join ', '}" }.join ', ' if @errors.is_a? Hash
68
+ opts[:message] ||= @errors.join ', ' if @errors.is_a? Array
67
69
  super
68
70
  end
69
71
  end
@@ -33,8 +33,8 @@ module Acfs::Model
33
33
  # @param [ Object ] options Option delegated to service class initializer.
34
34
  #
35
35
  def service(klass = nil, options = {})
36
- return @service unless klass
37
- @service = klass.new options
36
+ return (@service = klass.new options) if klass
37
+ @service || superclass.service
38
38
  end
39
39
  end
40
40
  end
@@ -5,7 +5,7 @@ module Acfs::Model
5
5
  module Validation
6
6
 
7
7
  def save!(*_)
8
- raise ::Acfs::InvalidResource.new resource: self, errors: errors.to_a unless valid? :save
8
+ raise ::Acfs::InvalidResource.new resource: self, errors: errors.to_a unless valid? (new? ? :create : :save)
9
9
 
10
10
  super
11
11
  end
@@ -2,7 +2,7 @@ module Acfs
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 21
5
- PATCH = 0
5
+ PATCH = 1
6
6
  STAGE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, STAGE].reject(&:nil?).join('.')
@@ -1,12 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Acfs::Model::Validation do
4
- let(:params) { {} }
4
+ let(:params) { {name: 'john smith', age: 24} }
5
5
  let(:model) { MyUserWithValidations.new params }
6
6
 
7
7
  describe '#valid?' do
8
8
  context 'with valid attributes' do
9
- let(:params) { {name: 'john smith', age: 24} }
10
9
  subject { model }
11
10
 
12
11
  it { should be_valid }
@@ -44,11 +43,33 @@ describe Acfs::Model::Validation do
44
43
  end
45
44
 
46
45
  describe '#save!' do
46
+ subject { -> { model.save! } }
47
+ before { model.stub(:operation) }
48
+
47
49
  context 'with invalid attributes' do
48
50
  let(:params) { {name: 'john'} }
49
- subject { -> { model.save! } }
50
51
 
51
52
  it { expect { subject.call }.to raise_error Acfs::InvalidResource }
52
53
  end
54
+
55
+ context 'on new resource' do
56
+ it 'should validate with `create` context' do
57
+ expect(model).to receive(:valid?).with(:create).and_call_original
58
+ subject.call
59
+ end
60
+ end
61
+
62
+ context 'on changed resource' do
63
+ let(:model) { super().tap { |m| m.id = 1 } }
64
+
65
+ it 'should validate with `save` context' do
66
+ expect(model).to receive(:valid?).with(:save).and_call_original
67
+ subject.call
68
+ end
69
+ end
70
+ end
71
+
72
+ describe 'validates with context' do
73
+
53
74
  end
54
75
  end
@@ -46,3 +46,10 @@ class Comment < Acfs::Resource
46
46
  attribute :id, :integer
47
47
  attribute :text, :string
48
48
  end
49
+
50
+ # DRAFT: Singular resource
51
+ #class Singular < Acfs::Resource
52
+ # service UserService, singular: true
53
+ #
54
+ # attribute :name, :string
55
+ #end
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acfs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.21.1.b189
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Graichen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-28 00:00:00.000000000 Z
11
+ date: 2013-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: actionpack
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: multi_json
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: typhoeus
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ! '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rack
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
@@ -211,14 +211,14 @@ require_paths:
211
211
  - lib
212
212
  required_ruby_version: !ruby/object:Gem::Requirement
213
213
  requirements:
214
- - - '>='
214
+ - - ! '>='
215
215
  - !ruby/object:Gem::Version
216
216
  version: '0'
217
217
  required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  requirements:
219
- - - '>='
219
+ - - ! '>'
220
220
  - !ruby/object:Gem::Version
221
- version: '0'
221
+ version: 1.3.1
222
222
  requirements: []
223
223
  rubyforge_project:
224
224
  rubygems_version: 2.0.3
@@ -252,4 +252,3 @@ test_files:
252
252
  - spec/spec_helper.rb
253
253
  - spec/support/response.rb
254
254
  - spec/support/service.rb
255
- has_rdoc: