acfs 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 69903ec6f49f6fb0d192c60aa302ddc9ba16f940
4
- data.tar.gz: bb15a106632b4d5f3681d829bee1b4e547d61039
3
+ metadata.gz: c960a6ef96c4fb47b25a4cb7e94a2bbab5a84b06
4
+ data.tar.gz: 490d2fcd1442773d5c35e0c423e28597ffa33fcf
5
5
  SHA512:
6
- metadata.gz: 4acac2d53426422d60c59502fde95f17893fabced18c70d9236c3473c1250be5ac492f8ff6271db2073340af96725dee05748a6a5de43d9f92fa330fb3ef060d
7
- data.tar.gz: d4aefee793caaad3a20afcc1c703b07882492805ad80ce70efb9fafda71700f425ed2246e8964e03c839cfd1f9ebe6da255872316afceabe15bea413161ad518
6
+ metadata.gz: 3f63ede8fdcb5bcd754f5b090bffcfbcf904cd167af88d68fc7d21434f78a65685f1b6f67dd3b8d3ceedbc67ee245ce46c135b25cb2a295175df9020f6e707d8
7
+ data.tar.gz: a9e72d86a83711bfdd87a15deea1e31cde0cfbf29a1555f83b0608cacdfa14fb6ffaacdd10db7ca57cedad15704cabec3bbe1e1dbf572e7e0b4158ed573b31da
@@ -2,6 +2,7 @@ language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
4
  - 1.9.3
5
+ - jruby
5
6
 
6
7
  gemfile:
7
8
  - gemfiles/Gemfile.rails-3-2
data/Gemfile CHANGED
@@ -1,4 +1,19 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in acfs.gemspec
4
- gemspec
4
+ gemroot = File.dirname File.absolute_path __FILE__
5
+ gemspec path: gemroot
6
+
7
+ # Development gems
8
+ #
9
+ gem 'webmock', '~> 1.7'
10
+ gem 'rake'
11
+ gem 'rspec'
12
+ gem 'guard-rspec'
13
+ gem 'coveralls'
14
+
15
+
16
+ # Platform specific development dependencies
17
+ #
18
+ gem 'msgpack', platform: :ruby
19
+ gem 'msgpack-jruby', require: 'msgpack', platform: :jruby
data/README.md CHANGED
@@ -13,7 +13,7 @@ level and automatic request queuing and parallel processing. See Usage for more.
13
13
 
14
14
  Add this line to your application's Gemfile:
15
15
 
16
- gem 'acfs', '~> 0.11.0'
16
+ gem 'acfs', '~> 0.12.0'
17
17
 
18
18
  **Note:** Acfs is under development. I'll try to avoid changes to the public
19
19
  API but internal APIs may change quite often.
@@ -25,10 +25,4 @@ Gem::Specification.new do |spec|
25
25
  spec.add_runtime_dependency 'typhoeus'
26
26
 
27
27
  spec.add_development_dependency 'bundler', '~> 1.3'
28
- spec.add_development_dependency 'webmock', '~> 1.7'
29
- spec.add_development_dependency 'rake'
30
- spec.add_development_dependency 'rspec'
31
- spec.add_development_dependency 'guard-rspec'
32
- spec.add_development_dependency 'coveralls'
33
- spec.add_development_dependency 'msgpack'
34
28
  end
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in acfs.gemspec
4
- gemspec path: '../'
3
+ # Load root Gemfile
4
+ self.instance_eval Bundler.read_file 'Gemfile'
5
5
 
6
6
  gem 'activesupport', '~> 3.2.0'
7
7
  gem 'activemodel', '~> 3.2.0'
@@ -1,8 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in acfs.gemspec
4
- gemspec path: '../'
3
+ # Load root Gemfile
4
+ self.instance_eval Bundler.read_file 'Gemfile'
5
5
 
6
- gem 'activesupport', '~> 4.0.0.beta1'
7
- gem 'activemodel', '~> 4.0.0.beta1'
8
- gem 'actionpack', '~> 4.0.0.beta1'
6
+ gem 'activesupport', '~> 4.0.0.rc1'
7
+ gem 'activemodel', '~> 4.0.0.rc1'
8
+ gem 'actionpack', '~> 4.0.0.rc1'
@@ -10,8 +10,8 @@ module Acfs
10
10
  class ErroneousResponse < Error
11
11
  attr_accessor :response
12
12
 
13
- def initialize(response)
14
- self.response = response
13
+ def initialize(data = {})
14
+ self.response = data[:response]
15
15
  end
16
16
  end
17
17
 
@@ -20,4 +20,12 @@ module Acfs
20
20
  class ResourceNotFound < ErroneousResponse
21
21
  end
22
22
 
23
+ class InvalidResource < ErroneousResponse
24
+ attr_accessor :errors
25
+
26
+ def initialize(data)
27
+ self.errors = data[:errors]
28
+ super
29
+ end
30
+ end
23
31
  end
@@ -14,7 +14,7 @@ module Acfs
14
14
  CONTENT_TYPES = %w(application/x-msgpack)
15
15
 
16
16
  def response(response, nxt)
17
- response.data = ::MessagePack.load(response.body) if message_pack?(response)
17
+ response.data = ::MessagePack.unpack(response.body) if message_pack?(response)
18
18
  nxt.call response
19
19
  end
20
20
 
@@ -47,10 +47,18 @@ module Acfs
47
47
  false
48
48
  end
49
49
 
50
- def save!(*) # :nodoc:
51
- request = new? ? create_request : put_request
50
+ def save!(opts = {}) # :nodoc:
51
+ #raise ::Acfs::InvalidResource errors: errors.to_a unless valid?
52
+
53
+ opts[:data] = attributes unless opts[:data]
54
+
55
+ request = new? ? create_request(opts) : put_request(opts)
52
56
  request.on_complete do |response|
53
- update_with response.data
57
+ if response.success?
58
+ update_with response.data
59
+ else
60
+ self.class.raise! response
61
+ end
54
62
  end
55
63
 
56
64
  self.class.service.run request
@@ -58,17 +66,27 @@ module Acfs
58
66
 
59
67
  module ClassMethods
60
68
 
61
- # Create a new resource sending given data.
69
+ # Create a new resource sending given data. If resource cannot be
70
+ # created an error will be thrown.
71
+ #
72
+ def create!(data, opts = {})
73
+ new.tap do |model|
74
+ model.save! opts.merge data: data
75
+ end
76
+ end
77
+
78
+ # Create a new resource sending given data. If resource cannot be
79
+ # create model will be returned and error hash contains response
80
+ # errors if available.
62
81
  #
63
82
  def create(data, opts = {})
64
83
  model = new
65
- request = Acfs::Request.new url, method: :post, data: data
66
- request.on_complete do |response|
67
- model.attributes = response.data
68
- model.loaded!
84
+ model.save! opts.merge data: data
85
+ model
86
+ rescue InvalidResource => err
87
+ (err.errors || []).each do |field, errors|
88
+ model.errors.set field, errors
69
89
  end
70
-
71
- service.run request
72
90
  model
73
91
  end
74
92
  end
@@ -79,12 +97,12 @@ module Acfs
79
97
  loaded!
80
98
  end
81
99
 
82
- def create_request
83
- Acfs::Request.new self.class.url, method: :post, data: attributes
100
+ def create_request(opts = {})
101
+ Acfs::Request.new self.class.url, method: :post, data: opts[:data]
84
102
  end
85
103
 
86
- def put_request
87
- Acfs::Request.new url, method: :put, data: attributes
104
+ def put_request(opts = {})
105
+ Acfs::Request.new url, method: :put, data: opts[:data]
88
106
  end
89
107
  end
90
108
  end
@@ -53,6 +53,17 @@ module Acfs::Model
53
53
  end
54
54
  alias :where :all
55
55
 
56
+ def raise!(response)
57
+ case response.code
58
+ when 404
59
+ raise ::Acfs::ResourceNotFound.new response: response
60
+ when 422
61
+ raise ::Acfs::InvalidResource.new response: response, errors: response.data['errors']
62
+ else
63
+ raise ::Acfs::ErroneousResponse.new response: response
64
+ end
65
+ end
66
+
56
67
  private
57
68
  def find_single(id, opts, &block)
58
69
  model = self.new
@@ -63,7 +74,7 @@ module Acfs::Model
63
74
  model.loaded!
64
75
  block.call model unless block.nil?
65
76
  else
66
- raise_error_for response
77
+ raise! response
67
78
  end
68
79
  end
69
80
  service.queue request
@@ -85,15 +96,6 @@ module Acfs::Model
85
96
  end
86
97
  end
87
98
  end
88
-
89
- def raise_error_for(response)
90
- case response.code
91
- when 404
92
- raise ::Acfs::ResourceNotFound.new response
93
- else
94
- raise ::Acfs::ErroneousResponse.new response
95
- end
96
- end
97
99
  end
98
100
  end
99
101
  end
@@ -1,7 +1,7 @@
1
1
  module Acfs
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 11
4
+ MINOR = 12
5
5
  PATCH = 0
6
6
  STAGE = nil
7
7
 
@@ -14,7 +14,7 @@ describe Acfs::Middleware::MessagePackDecoder do
14
14
 
15
15
  context 'with Message Pack response' do
16
16
  let(:headers) { { 'Content-Type' => 'application/x-msgpack' } }
17
- let(:body) { MessagePack.dump data }
17
+ let(:body) { MessagePack.pack data }
18
18
 
19
19
  it 'should decode body data' do
20
20
  request.complete! response
@@ -23,15 +23,6 @@ describe Acfs::Middleware::MessagePackDecoder do
23
23
  end
24
24
  end
25
25
 
26
- context 'with invalid response' do
27
- let(:headers) { { 'Content-Type' => 'application/x-msgpack' } }
28
- let(:body) { MessagePack.dump(data)[4..-4] }
29
-
30
- it 'should raise an error' do
31
- expect { request.complete! response }.to raise_error(MessagePack::MalformedFormatError)
32
- end
33
- end
34
-
35
26
  context 'without Message Pack response' do
36
27
  let(:headers) { { 'Content-Type' => 'application/text' } }
37
28
  let(:body) { data.to_json }
@@ -3,13 +3,8 @@ require 'spec_helper'
3
3
  describe Acfs::Model::Dirty do
4
4
  let(:model) { MyUser.new }
5
5
  before do
6
- stub_request(:get, "http://users.example.org/users/1").to_return(
7
- body: MessagePack.dump({ id: 1, name: 'Anon', age: 12 }),
8
- headers: {'Content-Type' => 'application/x-msgpack'})
9
-
10
- stub_request(:post, 'http://users.example.org/users').to_return(
11
- body: MessagePack.dump({ id: 5, name: 'dhh', age: 12 }),
12
- headers: {'Content-Type' => 'application/x-msgpack'})
6
+ stub_request(:get, "http://users.example.org/users/1").to_return response({ id: 1, name: 'Anon', age: 12 })
7
+ stub_request(:post, 'http://users.example.org/users').to_return response({ id: 5, name: 'dhh', age: 12 })
13
8
  end
14
9
 
15
10
  it 'includes ActiveModel::Dirty' do
@@ -3,9 +3,7 @@ require 'spec_helper'
3
3
  describe Acfs::Model::Loadable do
4
4
  let(:model) { MyUser.find 1 }
5
5
  before do
6
- stub_request(:get, "http://users.example.org/users/1").to_return(
7
- body: MessagePack.dump({ id: 1, name: "Anon", age: 12 }),
8
- headers: {'Content-Type' => 'application/x-msgpack'})
6
+ stub_request(:get, "http://users.example.org/users/1").to_return response({ id: 1, name: "Anon", age: 12 })
9
7
  end
10
8
 
11
9
  describe '#loaded?' do
@@ -3,9 +3,7 @@ require 'spec_helper'
3
3
  describe Acfs::Model::Locatable do
4
4
  let(:model) { MyUser }
5
5
  before do
6
- stub_request(:get, "http://users.example.org/users/1").to_return(
7
- body: MessagePack.dump({ id: 1, name: "Anon", age: 12 }),
8
- headers: {'Content-Type' => 'application/x-msgpack'})
6
+ stub_request(:get, "http://users.example.org/users/1").to_return response({ id: 1, name: "Anon", age: 12 })
9
7
  end
10
8
 
11
9
  describe '.url' do
@@ -3,20 +3,28 @@ require 'spec_helper'
3
3
  describe Acfs::Model::Persistence do
4
4
  let(:model_class) { MyUser }
5
5
  before do
6
- @get_stub = stub_request(:get, "http://users.example.org/users/1").to_return(
7
- body: MessagePack.dump({ id: 1, name: "Anon", age: 12 }),
8
- headers: {'Content-Type' => 'application/x-msgpack'})
6
+ @get_stub = stub_request(:get, "http://users.example.org/users/1").to_return response({ id: 1, name: "Anon", age: 12 })
9
7
 
10
8
  @patch_stub = stub_request(:put, 'http://users.example.org/users/1')
11
9
  .with(
12
10
  body: '{"id":1,"name":"Idefix","age":12}')
13
- .to_return(
14
- body: MessagePack.dump({ id: 1, name: 'Idefix', age: 12 }),
15
- headers: {'Content-Type' => 'application/x-msgpack'})
11
+ .to_return response({ id: 1, name: 'Idefix', age: 12 })
16
12
 
17
- @post_stub = stub_request(:post, 'http://users.example.org/users').to_return(
18
- body: MessagePack.dump({ id: 5, name: 'Idefix', age: 12 }),
19
- headers: {'Content-Type' => 'application/x-msgpack'})
13
+ @post_stub = stub_request(:post, 'http://users.example.org/users')
14
+ .with(body: '{"id":null,"name":"Idefix","age":12}')
15
+ .to_return response({ id: 5, name: 'Idefix', age: 12 })
16
+
17
+ stub_request(:post, 'http://users.example.org/users')
18
+ .with(body: '{"id":null,"name":"Anon","age":null}')
19
+ .to_return response({ id: 5, name: 'Anon', age: 12 })
20
+
21
+ stub_request(:post, 'http://users.example.org/users')
22
+ .with(body: '{"name":"Idefix","age":12}')
23
+ .to_return response({ id: 5, name: 'Idefix', age: 12 })
24
+
25
+ stub_request(:post, 'http://users.example.org/users')
26
+ .with(body: '{"age":12}')
27
+ .to_return response({ errors: { name: [ 'required' ] }}, status: 422)
20
28
  end
21
29
 
22
30
  context 'new model' do
@@ -77,4 +85,62 @@ describe Acfs::Model::Persistence do
77
85
  it { expect(model).to_not be_new }
78
86
  end
79
87
  end
88
+
89
+ describe '.create!' do
90
+ context 'with valid data' do
91
+ let(:data) { { name: 'Idefix', age: 12 } }
92
+
93
+ it 'should create new resource' do
94
+ model = model_class.create! data
95
+ expect(model.name).to be == 'Idefix'
96
+ expect(model.age).to be == 12
97
+ end
98
+
99
+ it 'should be persisted' do
100
+ model = model_class.create! data
101
+ expect(model).to be_persisted
102
+ end
103
+ end
104
+
105
+ context 'with invalid data' do
106
+ let(:data) { { age: 12 } }
107
+
108
+ it 'should raise an error' do
109
+ expect { model_class.create! data }.to raise_error ::Acfs::InvalidResource do |error|
110
+ expect(error.errors).to be == { name: ['required'] }.stringify_keys
111
+ end
112
+ end
113
+ end
114
+ end
115
+
116
+ describe '.create' do
117
+ context 'with valid data' do
118
+ let(:data) { { name: 'Idefix', age: 12 } }
119
+
120
+ it 'should create new resource' do
121
+ model = model_class.create! data
122
+ expect(model.name).to be == 'Idefix'
123
+ expect(model.age).to be == 12
124
+ end
125
+
126
+ it 'should be persisted' do
127
+ model = model_class.create! data
128
+ expect(model).to be_persisted
129
+ end
130
+ end
131
+
132
+ context 'with invalid data' do
133
+ let(:data) { { age: 12 } }
134
+
135
+ it 'should return not persisted resource' do
136
+ model = model_class.create data
137
+ expect(model).to_not be_persisted
138
+ end
139
+
140
+ it 'should contain error hash' do
141
+ model = model_class.create data
142
+ expect(model.errors.to_hash).to be == { name: [ "required" ]}.stringify_keys
143
+ end
144
+ end
145
+ end
80
146
  end
@@ -7,9 +7,7 @@ describe Acfs::Model::QueryMethods do
7
7
  context 'with single id' do
8
8
  context 'with successful response' do
9
9
  before do
10
- stub_request(:get, 'http://users.example.org/users/1').to_return(
11
- body: MessagePack.dump({ id: 1, name: 'Anon', age: 12 }),
12
- headers: {'Content-Type' => 'application/x-msgpack'})
10
+ stub_request(:get, 'http://users.example.org/users/1').to_return response({ id: 1, name: 'Anon', age: 12 })
13
11
  end
14
12
 
15
13
  it 'should load a single remote resource' do
@@ -33,10 +31,7 @@ describe Acfs::Model::QueryMethods do
33
31
 
34
32
  context 'with 404 response' do
35
33
  before do
36
- stub_request(:get, 'http://users.example.org/users/1').to_return(
37
- status: 404,
38
- body: MessagePack.dump({ error: 'not found' }),
39
- headers: {'Content-Type' => 'application/x-msgpack'})
34
+ stub_request(:get, 'http://users.example.org/users/1').to_return response({ error: 'not found' }, status: 404)
40
35
  end
41
36
 
42
37
  it 'should raise a NotFound error' do
@@ -50,9 +45,7 @@ describe Acfs::Model::QueryMethods do
50
45
 
51
46
  context 'with 500 response' do
52
47
  before do
53
- stub_request(:get, 'http://users.example.org/users/1').to_return(
54
- status: 500,
55
- headers: {'Content-Type' => 'text/plain'})
48
+ stub_request(:get, 'http://users.example.org/users/1').to_return response(nil, status: 500)
56
49
  end
57
50
 
58
51
  it 'should raise a response error' do
@@ -67,12 +60,8 @@ describe Acfs::Model::QueryMethods do
67
60
 
68
61
  context 'with multiple ids' do
69
62
  before do
70
- stub_request(:get, 'http://users.example.org/users/1').to_return(
71
- body: MessagePack.dump({ id: 1, name: 'Anon', age: 12 }),
72
- headers: {'Content-Type' => 'application/x-msgpack'})
73
- stub_request(:get, 'http://users.example.org/users/2').to_return(
74
- body: MessagePack.dump({ id: 2, name: 'Johnny', age: 42 }),
75
- headers: {'Content-Type' => 'application/x-msgpack'})
63
+ stub_request(:get, 'http://users.example.org/users/1').to_return response({ id: 1, name: 'Anon', age: 12 })
64
+ stub_request(:get, 'http://users.example.org/users/2').to_return response({ id: 2, name: 'Johnny', age: 42 })
76
65
  end
77
66
 
78
67
  context 'with successful response' do
@@ -100,10 +89,7 @@ describe Acfs::Model::QueryMethods do
100
89
 
101
90
  context 'with one 404 response' do
102
91
  before do
103
- stub_request(:get, 'http://users.example.org/users/1').to_return(
104
- status: 404,
105
- body: MessagePack.dump({ error: 'not found' }),
106
- headers: {'Content-Type' => 'application/x-msgpack'})
92
+ stub_request(:get, 'http://users.example.org/users/1').to_return response({ error: 'not found' }, status: 404)
107
93
  end
108
94
 
109
95
  it 'should raise resource not found error' do
@@ -4,24 +4,12 @@ describe "Acfs" do
4
4
 
5
5
  before do
6
6
  headers = {}
7
- stub_request(:get, "http://users.example.org/users").to_return(
8
- body: MessagePack.dump([{ id: 1, name: "Anon", age: 12 }, { id: 2, name: "John", age: 26 }]),
9
- headers: headers.merge({'Content-Type' => 'application/x-msgpack'}))
10
- stub_request(:get, "http://users.example.org/users/2").to_return(
11
- body: MessagePack.dump({ id: 2, name: "John", age: 26 }),
12
- headers: headers.merge({'Content-Type' => 'application/x-msgpack', 'ETag' => 'LukeSkywalker' }))
13
- stub_request(:get, "http://users.example.org/users/3").to_return(
14
- body: MessagePack.dump({ id: 3, name: "Miraculix", age: 122 }),
15
- headers: headers.merge({'Content-Type' => 'application/x-msgpack'}))
16
- stub_request(:get, "http://users.example.org/users/100").to_return(
17
- body: '{"id":100,"name":"Jimmy","age":45}',
18
- headers: headers.merge({'Content-Type' => 'application/json'}))
19
- stub_request(:get, "http://users.example.org/users/2/friends").to_return(
20
- body: '[{"id":1,"name":"Anon","age":12}]',
21
- headers: headers.merge({'Content-Type' => 'application/json'}))
22
- stub_request(:get, "http://comments.example.org/comments?user=2").to_return(
23
- body: '[{"id":1,"text":"Comment #1"},{"id":2,"text":"Comment #2"}]',
24
- headers: headers.merge({'Content-Type' => 'application/json'}))
7
+ stub_request(:get, "http://users.example.org/users").to_return response([{ id: 1, name: "Anon", age: 12 }, { id: 2, name: "John", age: 26 }])
8
+ stub_request(:get, "http://users.example.org/users/2").to_return response({ id: 2, name: "John", age: 26 })
9
+ stub_request(:get, "http://users.example.org/users/3").to_return response({ id: 3, name: "Miraculix", age: 122 })
10
+ stub_request(:get, "http://users.example.org/users/100").to_return response({ id:100, name: "Jimmy", age: 45 })
11
+ stub_request(:get, "http://users.example.org/users/2/friends").to_return response([{ id: 1, name: "Anon", age: 12 }])
12
+ stub_request(:get, "http://comments.example.org/comments?user=2").to_return response([{ id: 1, text: "Comment #1"}, { id: 2, text: "Comment #2" }])
25
13
  end
26
14
 
27
15
  it 'should update single resource synchronously' do
@@ -47,8 +35,7 @@ describe "Acfs" do
47
35
  end
48
36
 
49
37
  it 'should create a single resource synchronously' do
50
- stub = stub_request(:post, "http://users.example.org/sessions")
51
- .to_return body: '{"id":"sessionhash","user":1}', headers: {'Content-Type' => 'application/json'}
38
+ stub = stub_request(:post, "http://users.example.org/sessions").to_return response({id: 'sessionhash', user: 1})
52
39
 
53
40
  session = Session.create ident: 'Anon'
54
41
 
@@ -0,0 +1,9 @@
1
+
2
+ def response(data = nil, opts = {})
3
+ if data
4
+ opts.merge! body: JSON.dump(data)
5
+ opts[:headers] ||= {}
6
+ opts[:headers].merge! 'Content-Type' => 'application/json'
7
+ end
8
+ opts
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acfs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
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-05-01 00:00:00.000000000 Z
11
+ date: 2013-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -94,90 +94,6 @@ dependencies:
94
94
  - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.3'
97
- - !ruby/object:Gem::Dependency
98
- name: webmock
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ~>
102
- - !ruby/object:Gem::Version
103
- version: '1.7'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ~>
109
- - !ruby/object:Gem::Version
110
- version: '1.7'
111
- - !ruby/object:Gem::Dependency
112
- name: rake
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '>='
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: rspec
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - '>='
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - '>='
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: guard-rspec
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - '>='
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - '>='
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: coveralls
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - '>='
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - '>='
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: msgpack
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - '>='
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - '>='
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
97
  description: API Client For Services
182
98
  email:
183
99
  - jg@altimos.de
@@ -196,7 +112,6 @@ files:
196
112
  - acfs.gemspec
197
113
  - gemfiles/Gemfile.rails-3-2
198
114
  - gemfiles/Gemfile.rails-4-0
199
- - gemfiles/Gemfile.rails-head
200
115
  - lib/acfs.rb
201
116
  - lib/acfs/adapter/typhoeus.rb
202
117
  - lib/acfs/collection.rb
@@ -246,6 +161,7 @@ files:
246
161
  - spec/acfs/service_spec.rb
247
162
  - spec/acfs_spec.rb
248
163
  - spec/spec_helper.rb
164
+ - spec/support/response.rb
249
165
  - spec/support/service.rb
250
166
  homepage: ''
251
167
  licenses:
@@ -288,4 +204,5 @@ test_files:
288
204
  - spec/acfs/service_spec.rb
289
205
  - spec/acfs_spec.rb
290
206
  - spec/spec_helper.rb
207
+ - spec/support/response.rb
291
208
  - spec/support/service.rb
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in acfs.gemspec
4
- gemspec path: '../'
5
-
6
- gem 'activesupport', github: 'rails/rails'
7
- gem 'activemodel', github: 'rails/rails'