callapi 0.8
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.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/Gemfile +16 -0
- data/LICENSE.txt +22 -0
- data/README.md +207 -0
- data/Rakefile +2 -0
- data/callapi.gemspec +31 -0
- data/lib/callapi.rb +12 -0
- data/lib/callapi/call.rb +3 -0
- data/lib/callapi/call/base.rb +66 -0
- data/lib/callapi/call/request.rb +14 -0
- data/lib/callapi/call/request/api.rb +9 -0
- data/lib/callapi/call/request/base.rb +13 -0
- data/lib/callapi/call/request/http.rb +60 -0
- data/lib/callapi/call/request/http/log_helper.rb +41 -0
- data/lib/callapi/call/request/mock.rb +29 -0
- data/lib/callapi/call/request_metadata.rb +57 -0
- data/lib/callapi/call/response.rb +54 -0
- data/lib/callapi/call/response/json.rb +18 -0
- data/lib/callapi/call/response/json/as_object.rb +49 -0
- data/lib/callapi/call/response/plain.rb +5 -0
- data/lib/callapi/config.rb +56 -0
- data/lib/callapi/errors.rb +58 -0
- data/lib/callapi/routes.rb +131 -0
- data/lib/callapi/routes/metadata.rb +72 -0
- data/lib/callapi/version.rb +3 -0
- data/lib/ext/deep_struct.rb +25 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/unit/call/base_spec.rb +38 -0
- data/spec/unit/call/request/api_spec.rb +41 -0
- data/spec/unit/call/request/mock_spec.rb +38 -0
- data/spec/unit/call/request_metadata_spec.rb +58 -0
- data/spec/unit/call/response/json/as_object_spec.rb +48 -0
- data/spec/unit/call/response/json_spec.rb +21 -0
- data/spec/unit/call/response/plain_spec.rb +23 -0
- data/spec/unit/call/response_spec.rb +61 -0
- data/spec/unit/routes_spec.rb +123 -0
- metadata +216 -0
@@ -0,0 +1,123 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Callapi::Routes do
|
4
|
+
before(:all) do
|
5
|
+
described_class.draw do
|
6
|
+
get 'version'
|
7
|
+
post 'version'
|
8
|
+
put 'version'
|
9
|
+
delete 'version'
|
10
|
+
patch 'version'
|
11
|
+
|
12
|
+
get 'users', strategy: Callapi::Call::Request::Mock, parser: Callapi::Call::Parser::Plain
|
13
|
+
get 'users/:id'
|
14
|
+
namespace :users do
|
15
|
+
get ':id/posts/:post_id'
|
16
|
+
get ':id/posts/:post_id/details'
|
17
|
+
namespace :posts do
|
18
|
+
get 'index'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context '#get "version"' do
|
25
|
+
it 'should create Callapi::Get::Version which inherits from Call::Base' do
|
26
|
+
expect( Callapi::Get::Version.superclass ).to eql(Callapi::Call::Base)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should create #get_version_call method which returns Callapi::Get::Version instance' do
|
30
|
+
expect( get_version_call ).to be_instance_of(Callapi::Get::Version)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context '#post "version"' do
|
35
|
+
it 'should create Callapi::Post::Version which inherits from Call::Base' do
|
36
|
+
expect( Callapi::Post::Version.superclass ).to eql(Callapi::Call::Base)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should create #post_version_call method which returns Callapi::Post::Version instance' do
|
40
|
+
expect( post_version_call ).to be_instance_of(Callapi::Post::Version)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context '#put "version"' do
|
45
|
+
it 'should create Callapi::Put::Version which inherits from Call::Base' do
|
46
|
+
expect( Callapi::Put::Version.superclass ).to eql(Callapi::Call::Base)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should create #put_version_call method which returns Callapi::Put::Version instance' do
|
50
|
+
expect( put_version_call ).to be_instance_of(Callapi::Put::Version)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context '#patch "version"' do
|
55
|
+
it 'should create Callapi::Patch::Version which inherits from Call::Base' do
|
56
|
+
expect( Callapi::Patch::Version.superclass ).to eql(Callapi::Call::Base)
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should create #patch_version_call method which returns Callapi::Patch::Version instance' do
|
60
|
+
expect( patch_version_call ).to be_instance_of(Callapi::Patch::Version)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context '#delete "version"' do
|
65
|
+
it 'should create Callapi::Delete::Version which inherits from Call::Base' do
|
66
|
+
expect( Callapi::Delete::Version.superclass ).to eql(Callapi::Call::Base)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'should create #delete_version_call method which returns Callapi::Delete::Version instance' do
|
70
|
+
expect( delete_version_call ).to be_instance_of(Callapi::Delete::Version)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context 'route options' do
|
75
|
+
context '#get "users", strategy: Callapi::Call::Request::Mock' do
|
76
|
+
it 'should set Callapi::Get::Users.strategy to Callapi::Call::Request::Mock' do
|
77
|
+
expect( Callapi::Get::Users.strategy ).to eql(Callapi::Call::Request::Mock)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context '#get "users", parser: Callapi::Call::Parser::Plain' do
|
82
|
+
it 'should set Callapi::Get::Users.response_parser to Callapi::Call::Parser::Plain' do
|
83
|
+
expect( Callapi::Get::Users.response_parser ).to eql(Callapi::Call::Parser::Plain)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context '#namespace :users { namespace :posts { get "index" } }' do
|
89
|
+
it 'should create Callapi::Get::Users::Posts::Index' do
|
90
|
+
expect( Callapi::Get::Users::Posts::Index.superclass ).to eql(Callapi::Call::Base)
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should create #get_users_posts_index_call method' do
|
94
|
+
expect( get_users_posts_index_call ).to be_instance_of(Callapi::Get::Users::Posts::Index)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
context '#get "users/:id"' do
|
99
|
+
it 'should create Callapi::Get::Users::IdParam class' do
|
100
|
+
expect( Callapi::Get::Users::IdParam.superclass ).to eql(Callapi::Call::Base)
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should create #get_users_by_id method' do
|
104
|
+
expect( get_users_by_id_call ).to be_instance_of(Callapi::Get::Users::IdParam)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context '#get "users/:id/posts/:post_id"' do
|
109
|
+
it 'should create Callapi::Get::Users::Posts::PostIdParam class' do
|
110
|
+
expect( Callapi::Get::Users::IdParam::Posts::PostIdParam.superclass ).to eql(Callapi::Call::Base)
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'should create #get_users_by_id method' do
|
114
|
+
expect( get_users_by_id_posts_by_post_id_call ).to be_instance_of(Callapi::Get::Users::IdParam::Posts::PostIdParam)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context '#get "users/:id/posts/:post_id/details"' do
|
119
|
+
it 'should create Callapi::Get::Users::Posts::PostIdParam::Details class' do
|
120
|
+
expect( Callapi::Get::Users::IdParam::Posts::PostIdParam::Details.superclass ).to eql(Callapi::Call::Base)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
metadata
ADDED
@@ -0,0 +1,216 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: callapi
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.8'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kacper Walanus
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: addressable
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.3'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: addressabler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.1'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: multi_json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.10'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.10'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: colorize
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.7'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.7'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: activesupport
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '4.2'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '4.2'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: chainy
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.0.5
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.0.5
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: memoist
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.11'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.11'
|
139
|
+
description: Callapi
|
140
|
+
email:
|
141
|
+
- kacper.walanus@elpassion.pl
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- ".gitignore"
|
147
|
+
- Gemfile
|
148
|
+
- LICENSE.txt
|
149
|
+
- README.md
|
150
|
+
- Rakefile
|
151
|
+
- callapi.gemspec
|
152
|
+
- lib/callapi.rb
|
153
|
+
- lib/callapi/call.rb
|
154
|
+
- lib/callapi/call/base.rb
|
155
|
+
- lib/callapi/call/request.rb
|
156
|
+
- lib/callapi/call/request/api.rb
|
157
|
+
- lib/callapi/call/request/base.rb
|
158
|
+
- lib/callapi/call/request/http.rb
|
159
|
+
- lib/callapi/call/request/http/log_helper.rb
|
160
|
+
- lib/callapi/call/request/mock.rb
|
161
|
+
- lib/callapi/call/request_metadata.rb
|
162
|
+
- lib/callapi/call/response.rb
|
163
|
+
- lib/callapi/call/response/json.rb
|
164
|
+
- lib/callapi/call/response/json/as_object.rb
|
165
|
+
- lib/callapi/call/response/plain.rb
|
166
|
+
- lib/callapi/config.rb
|
167
|
+
- lib/callapi/errors.rb
|
168
|
+
- lib/callapi/routes.rb
|
169
|
+
- lib/callapi/routes/metadata.rb
|
170
|
+
- lib/callapi/version.rb
|
171
|
+
- lib/ext/deep_struct.rb
|
172
|
+
- spec/spec_helper.rb
|
173
|
+
- spec/unit/call/base_spec.rb
|
174
|
+
- spec/unit/call/request/api_spec.rb
|
175
|
+
- spec/unit/call/request/mock_spec.rb
|
176
|
+
- spec/unit/call/request_metadata_spec.rb
|
177
|
+
- spec/unit/call/response/json/as_object_spec.rb
|
178
|
+
- spec/unit/call/response/json_spec.rb
|
179
|
+
- spec/unit/call/response/plain_spec.rb
|
180
|
+
- spec/unit/call/response_spec.rb
|
181
|
+
- spec/unit/routes_spec.rb
|
182
|
+
homepage: ''
|
183
|
+
licenses:
|
184
|
+
- MIT
|
185
|
+
metadata: {}
|
186
|
+
post_install_message:
|
187
|
+
rdoc_options: []
|
188
|
+
require_paths:
|
189
|
+
- lib
|
190
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '0'
|
200
|
+
requirements: []
|
201
|
+
rubyforge_project:
|
202
|
+
rubygems_version: 2.4.5
|
203
|
+
signing_key:
|
204
|
+
specification_version: 4
|
205
|
+
summary: Callapi
|
206
|
+
test_files:
|
207
|
+
- spec/spec_helper.rb
|
208
|
+
- spec/unit/call/base_spec.rb
|
209
|
+
- spec/unit/call/request/api_spec.rb
|
210
|
+
- spec/unit/call/request/mock_spec.rb
|
211
|
+
- spec/unit/call/request_metadata_spec.rb
|
212
|
+
- spec/unit/call/response/json/as_object_spec.rb
|
213
|
+
- spec/unit/call/response/json_spec.rb
|
214
|
+
- spec/unit/call/response/plain_spec.rb
|
215
|
+
- spec/unit/call/response_spec.rb
|
216
|
+
- spec/unit/routes_spec.rb
|