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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +23 -0
  3. data/Gemfile +1 -1
  4. data/README.md +11 -10
  5. data/Rakefile +2 -1
  6. data/lib/rest-core.rb +0 -1
  7. data/lib/rest-core/builder.rb +59 -12
  8. data/lib/rest-core/client/universal.rb +11 -10
  9. data/lib/rest-core/middleware.rb +20 -0
  10. data/lib/rest-core/middleware/cache.rb +12 -10
  11. data/lib/rest-core/middleware/default_headers.rb +2 -2
  12. data/lib/rest-core/middleware/default_payload.rb +2 -26
  13. data/lib/rest-core/middleware/default_query.rb +2 -10
  14. data/lib/rest-core/middleware/json_request.rb +2 -1
  15. data/lib/rest-core/middleware/json_response.rb +5 -2
  16. data/lib/rest-core/test.rb +3 -12
  17. data/lib/rest-core/version.rb +1 -1
  18. data/rest-core.gemspec +11 -12
  19. data/task/gemgem.rb +1 -5
  20. data/test/test_auth_basic.rb +4 -4
  21. data/test/test_builder.rb +20 -4
  22. data/test/test_cache.rb +19 -20
  23. data/test/test_clash.rb +1 -1
  24. data/test/test_clash_response.rb +11 -11
  25. data/test/test_client.rb +10 -10
  26. data/test/test_client_oauth1.rb +3 -3
  27. data/test/test_config.rb +1 -1
  28. data/test/test_default_headers.rb +13 -0
  29. data/test/test_default_payload.rb +11 -3
  30. data/test/test_default_query.rb +12 -4
  31. data/test/test_error_detector.rb +1 -1
  32. data/test/test_error_detector_http.rb +1 -1
  33. data/test/test_error_handler.rb +5 -5
  34. data/test/test_event_source.rb +16 -16
  35. data/test/test_follow_redirect.rb +6 -6
  36. data/test/test_future.rb +2 -2
  37. data/test/test_json_request.rb +9 -4
  38. data/test/test_json_response.rb +9 -9
  39. data/test/test_oauth1_header.rb +9 -9
  40. data/test/test_oauth2_header.rb +3 -3
  41. data/test/test_parse_link.rb +4 -4
  42. data/test/test_payload.rb +21 -21
  43. data/test/test_promise.rb +7 -7
  44. data/test/test_query_response.rb +5 -5
  45. data/test/test_rest-client.rb +7 -6
  46. data/test/test_simple.rb +5 -5
  47. data/test/test_smash.rb +1 -1
  48. data/test/test_smash_response.rb +11 -11
  49. data/test/test_thread_pool.rb +1 -1
  50. data/test/test_timeout.rb +3 -3
  51. data/test/test_universal.rb +12 -2
  52. metadata +9 -10
  53. data/lib/rest-core/wrapper.rb +0 -72
  54. 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.2.0
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-06-27 00:00:00.000000000 Z
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: '0'
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: '0'
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.2.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
@@ -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