rest-core 3.2.0 → 3.3.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.
- checksums.yaml +4 -4
- data/CHANGES.md +23 -0
- data/Gemfile +1 -1
- data/README.md +11 -10
- data/Rakefile +2 -1
- data/lib/rest-core.rb +0 -1
- data/lib/rest-core/builder.rb +59 -12
- data/lib/rest-core/client/universal.rb +11 -10
- data/lib/rest-core/middleware.rb +20 -0
- data/lib/rest-core/middleware/cache.rb +12 -10
- data/lib/rest-core/middleware/default_headers.rb +2 -2
- data/lib/rest-core/middleware/default_payload.rb +2 -26
- data/lib/rest-core/middleware/default_query.rb +2 -10
- data/lib/rest-core/middleware/json_request.rb +2 -1
- data/lib/rest-core/middleware/json_response.rb +5 -2
- data/lib/rest-core/test.rb +3 -12
- data/lib/rest-core/version.rb +1 -1
- data/rest-core.gemspec +11 -12
- data/task/gemgem.rb +1 -5
- data/test/test_auth_basic.rb +4 -4
- data/test/test_builder.rb +20 -4
- data/test/test_cache.rb +19 -20
- data/test/test_clash.rb +1 -1
- data/test/test_clash_response.rb +11 -11
- data/test/test_client.rb +10 -10
- data/test/test_client_oauth1.rb +3 -3
- data/test/test_config.rb +1 -1
- data/test/test_default_headers.rb +13 -0
- data/test/test_default_payload.rb +11 -3
- data/test/test_default_query.rb +12 -4
- data/test/test_error_detector.rb +1 -1
- data/test/test_error_detector_http.rb +1 -1
- data/test/test_error_handler.rb +5 -5
- data/test/test_event_source.rb +16 -16
- data/test/test_follow_redirect.rb +6 -6
- data/test/test_future.rb +2 -2
- data/test/test_json_request.rb +9 -4
- data/test/test_json_response.rb +9 -9
- data/test/test_oauth1_header.rb +9 -9
- data/test/test_oauth2_header.rb +3 -3
- data/test/test_parse_link.rb +4 -4
- data/test/test_payload.rb +21 -21
- data/test/test_promise.rb +7 -7
- data/test/test_query_response.rb +5 -5
- data/test/test_rest-client.rb +7 -6
- data/test/test_simple.rb +5 -5
- data/test/test_smash.rb +1 -1
- data/test/test_smash_response.rb +11 -11
- data/test/test_thread_pool.rb +1 -1
- data/test/test_timeout.rb +3 -3
- data/test/test_universal.rb +12 -2
- metadata +9 -10
- data/lib/rest-core/wrapper.rb +0 -72
- data/test/test_wrapper.rb +0 -36
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lin Jen-Shin (godfat)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: timers
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "<"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '4'
|
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
|
-
version: '
|
54
|
+
version: '4'
|
55
55
|
description: |-
|
56
56
|
Modular Ruby clients interface for REST APIs.
|
57
57
|
|
@@ -133,7 +133,6 @@ files:
|
|
133
133
|
- lib/rest-core/util/payload.rb
|
134
134
|
- lib/rest-core/util/smash.rb
|
135
135
|
- lib/rest-core/version.rb
|
136
|
-
- lib/rest-core/wrapper.rb
|
137
136
|
- rest-core.gemspec
|
138
137
|
- task/README.md
|
139
138
|
- task/gemgem.rb
|
@@ -146,6 +145,7 @@ files:
|
|
146
145
|
- test/test_client.rb
|
147
146
|
- test/test_client_oauth1.rb
|
148
147
|
- test/test_config.rb
|
148
|
+
- test/test_default_headers.rb
|
149
149
|
- test/test_default_payload.rb
|
150
150
|
- test/test_default_query.rb
|
151
151
|
- test/test_error_detector.rb
|
@@ -169,7 +169,6 @@ files:
|
|
169
169
|
- test/test_thread_pool.rb
|
170
170
|
- test/test_timeout.rb
|
171
171
|
- test/test_universal.rb
|
172
|
-
- test/test_wrapper.rb
|
173
172
|
homepage: https://github.com/godfat/rest-core
|
174
173
|
licenses:
|
175
174
|
- Apache License 2.0
|
@@ -190,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
189
|
version: '0'
|
191
190
|
requirements: []
|
192
191
|
rubyforge_project:
|
193
|
-
rubygems_version: 2.
|
192
|
+
rubygems_version: 2.4.1
|
194
193
|
signing_key:
|
195
194
|
specification_version: 4
|
196
195
|
summary: Modular Ruby clients interface for REST APIs.
|
@@ -203,6 +202,7 @@ test_files:
|
|
203
202
|
- test/test_client.rb
|
204
203
|
- test/test_client_oauth1.rb
|
205
204
|
- test/test_config.rb
|
205
|
+
- test/test_default_headers.rb
|
206
206
|
- test/test_default_payload.rb
|
207
207
|
- test/test_default_query.rb
|
208
208
|
- test/test_error_detector.rb
|
@@ -226,4 +226,3 @@ test_files:
|
|
226
226
|
- test/test_thread_pool.rb
|
227
227
|
- test/test_timeout.rb
|
228
228
|
- test/test_universal.rb
|
229
|
-
- test/test_wrapper.rb
|
data/lib/rest-core/wrapper.rb
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rest-core'
|
3
|
-
|
4
|
-
module RestCore::Wrapper
|
5
|
-
include RestCore
|
6
|
-
|
7
|
-
module DefaultEngine
|
8
|
-
def default_engine
|
9
|
-
@default_engine ||= RestCore::Dry
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.included mod
|
14
|
-
mod.send(:extend, DefaultEngine)
|
15
|
-
class << mod
|
16
|
-
attr_writer :default_engine
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
attr_reader :middles, :wrapped
|
21
|
-
attr_writer :default_engine
|
22
|
-
def default_engine
|
23
|
-
@default_engine ||= self.class.default_engine
|
24
|
-
end
|
25
|
-
|
26
|
-
def initialize &block
|
27
|
-
@engine = nil
|
28
|
-
@middles ||= []
|
29
|
-
instance_eval(&block) if block_given?
|
30
|
-
@wrapped ||= to_app
|
31
|
-
end
|
32
|
-
|
33
|
-
def use middle, *args, &block
|
34
|
-
middles << [middle, args, block]
|
35
|
-
end
|
36
|
-
|
37
|
-
def run engine
|
38
|
-
@engine = engine
|
39
|
-
end
|
40
|
-
|
41
|
-
def members
|
42
|
-
middles.map{ |(middle, args, block)|
|
43
|
-
if middle.public_method_defined?(:wrapped)
|
44
|
-
# TODO: this is hacky... try to avoid calling new!
|
45
|
-
middle.members + middle.new(Dry.new, *args, &block).members
|
46
|
-
else
|
47
|
-
middle.members
|
48
|
-
end if middle.respond_to?(:members)
|
49
|
-
}.flatten.compact
|
50
|
-
end
|
51
|
-
|
52
|
-
def to_app engine=@engine || default_engine
|
53
|
-
# === foldr m.new app middles
|
54
|
-
middles.reverse.inject(engine.new){ |app, (middle, args, block)|
|
55
|
-
begin
|
56
|
-
middle.new(app, *partial_deep_copy(args), &block)
|
57
|
-
rescue ArgumentError => e
|
58
|
-
raise ArgumentError.new("#{middle}: #{e}")
|
59
|
-
end
|
60
|
-
}
|
61
|
-
end
|
62
|
-
|
63
|
-
module_function
|
64
|
-
def partial_deep_copy obj
|
65
|
-
case obj
|
66
|
-
when Array; obj.map{ |o| partial_deep_copy(o) }
|
67
|
-
when Hash ; obj.inject({}){ |r, (k, v)| r[k] = partial_deep_copy(v); r }
|
68
|
-
when Numeric, Symbol, TrueClass, FalseClass, NilClass; obj
|
69
|
-
else begin obj.dup; rescue TypeError; obj; end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
data/test/test_wrapper.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rest-core/test'
|
3
|
-
|
4
|
-
describe RC::Wrapper do
|
5
|
-
should 'wrap around simple middleware' do
|
6
|
-
wrapper = RC::Bypass.dup
|
7
|
-
wrapper.send(:include, RC::Wrapper)
|
8
|
-
client = RC::Builder.client do
|
9
|
-
use wrapper do
|
10
|
-
use RC::Bypass
|
11
|
-
end
|
12
|
-
run RC::Dry
|
13
|
-
end
|
14
|
-
|
15
|
-
client.new.app.call(1=>2){ |res| res.should.eq(1=>2) }
|
16
|
-
end
|
17
|
-
|
18
|
-
should 'default app is RestCore::Dry' do
|
19
|
-
wrapper = Class.new
|
20
|
-
wrapper.send(:include, RC::Wrapper)
|
21
|
-
wrapper.new.wrapped.class.should.eq RC::Dry
|
22
|
-
end
|
23
|
-
|
24
|
-
should 'switch default_engine to RestCore::RestClient' do
|
25
|
-
wrapper = Class.new
|
26
|
-
wrapper.send(:include, RC::Wrapper)
|
27
|
-
wrapper.default_engine = RC::RestClient
|
28
|
-
wrapper.new.wrapped.class.should.eq RC::RestClient
|
29
|
-
end
|
30
|
-
|
31
|
-
should 'accept middlewares without a member' do
|
32
|
-
Class.new.send(:include, RC::Wrapper).new{
|
33
|
-
use Class.new.send(:include, RC::Middleware)
|
34
|
-
}.members.should.eq []
|
35
|
-
end
|
36
|
-
end
|