rest-builder 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +12 -5
- data/CHANGES.md +5 -0
- data/README.md +4 -3
- data/Rakefile +4 -9
- data/lib/rest-builder/middleware.rb +1 -1
- data/lib/rest-builder/test.rb +3 -2
- data/lib/rest-builder/version.rb +1 -1
- data/rest-builder.gemspec +5 -5
- data/task/README.md +8 -8
- data/task/gemgem.rb +29 -7
- data/test/test_client.rb +11 -13
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da0d685dc9b0f4d31788b61f599ef824e980f71f
|
4
|
+
data.tar.gz: 4408874a7b33bedb2192d39985b9a03ce0193edc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79b87403cf20b25ac437b57b7a2e96d1130dded6db3420451c41adc6ede32aa3b9ac0c84dad8004fb5e15a8945129c5f2d5c619b9cec96ae0152ac063c38688c
|
7
|
+
data.tar.gz: d85d3fbcd9b34b2d9357e9f4d029f4de104a8a1030d281dfa08900600d77c50841aeb1a5cac56d9b345630542cc573ab2e5a86e00c2b2e2279ae21a84502f12a
|
data/.travis.yml
CHANGED
@@ -1,10 +1,5 @@
|
|
1
1
|
sudo: false
|
2
2
|
language: ruby
|
3
|
-
rvm:
|
4
|
-
- 2.2
|
5
|
-
- 2.3.0
|
6
|
-
- rbx
|
7
|
-
- jruby-9
|
8
3
|
|
9
4
|
before_install:
|
10
5
|
- rvm get head
|
@@ -12,3 +7,15 @@ before_install:
|
|
12
7
|
- rvm use --install $TRAVIS_RUBY_VERSION --binary --latest
|
13
8
|
install: 'gem install bundler; bundle install --retry=3'
|
14
9
|
script: 'ruby -vr bundler/setup -S rake test'
|
10
|
+
|
11
|
+
matrix:
|
12
|
+
include:
|
13
|
+
- rvm: 2.2.5
|
14
|
+
- rvm: 2.3.2
|
15
|
+
- rvm: 2.4.1
|
16
|
+
- rvm: jruby-9
|
17
|
+
env: JRUBY_OPTS=--debug
|
18
|
+
- rvm: rbx
|
19
|
+
|
20
|
+
allow_failures:
|
21
|
+
- rvm: rbx
|
data/CHANGES.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# CHANGES
|
2
2
|
|
3
|
+
## rest-builder 0.9.2 -- 2017-08-05
|
4
|
+
|
5
|
+
* Attach payload for DELETE request as well. See:
|
6
|
+
[A payload within a DELETE request is ignored resulting "Invalid request data" from web services](https://github.com/godfat/rest-core/issues/25)
|
7
|
+
|
3
8
|
## rest-builder 0.9.1 -- 2016-03-04
|
4
9
|
|
5
10
|
* `Promise.set_backtrace` for errors from `event_source`.
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# rest-builder [![Build Status](https://secure.travis-ci.org/godfat/rest-builder.png?branch=master)](http://travis-ci.org/godfat/rest-builder) [![Coverage Status](https://coveralls.io/repos/godfat/rest-builder/badge.png)](https://coveralls.io/
|
1
|
+
# rest-builder [![Build Status](https://secure.travis-ci.org/godfat/rest-builder.png?branch=master)](http://travis-ci.org/godfat/rest-builder) [![Coverage Status](https://coveralls.io/repos/github/godfat/rest-builder/badge.png)](https://coveralls.io/github/godfat/rest-builder) [![Join the chat at https://gitter.im/godfat/rest-builder](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/godfat/rest-builder)
|
2
2
|
|
3
3
|
by Lin Jen-Shin ([godfat](http://godfat.org))
|
4
4
|
|
@@ -7,6 +7,7 @@ by Lin Jen-Shin ([godfat](http://godfat.org))
|
|
7
7
|
* [github](https://github.com/godfat/rest-builder)
|
8
8
|
* [rubygems](https://rubygems.org/gems/rest-builder)
|
9
9
|
* [rdoc](http://rdoc.info/projects/godfat/rest-builder)
|
10
|
+
* [issues](https://github.com/godfat/rest-builder/issues) (feel free to ask for support)
|
10
11
|
|
11
12
|
## DESCRIPTION:
|
12
13
|
|
@@ -560,9 +561,9 @@ the priority here is:
|
|
560
561
|
|
561
562
|
## LICENSE:
|
562
563
|
|
563
|
-
Apache License 2.0
|
564
|
+
Apache License 2.0 (Apache-2.0)
|
564
565
|
|
565
|
-
Copyright (c) 2016, Lin Jen-Shin (godfat)
|
566
|
+
Copyright (c) 2016-2017, Lin Jen-Shin (godfat)
|
566
567
|
|
567
568
|
Licensed under the Apache License, Version 2.0 (the "License");
|
568
569
|
you may not use this file except in compliance with the License.
|
data/Rakefile
CHANGED
@@ -1,21 +1,16 @@
|
|
1
1
|
|
2
2
|
begin
|
3
|
-
require "#{
|
3
|
+
require "#{__dir__}/task/gemgem"
|
4
4
|
rescue LoadError
|
5
5
|
sh 'git submodule update --init --recursive'
|
6
6
|
exec Gem.ruby, '-S', $PROGRAM_NAME, *ARGV
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
Gemgem.init(dir) do |s|
|
9
|
+
Gemgem.init(__dir__, :submodules => %w[promise_pool]) do |s|
|
12
10
|
require 'rest-builder/version'
|
13
11
|
s.name = 'rest-builder'
|
14
12
|
s.version = RestBuilder::VERSION
|
15
|
-
%w[promise_pool httpclient mime-types].each do |g|
|
16
|
-
s.add_runtime_dependency(g)
|
17
|
-
end
|
18
13
|
|
19
|
-
|
20
|
-
|
14
|
+
%w[promise_pool httpclient mime-types].
|
15
|
+
each(&s.method(:add_runtime_dependency))
|
21
16
|
end
|
data/lib/rest-builder/test.rb
CHANGED
@@ -5,10 +5,11 @@ require 'pork/auto'
|
|
5
5
|
require 'muack'
|
6
6
|
require 'webmock'
|
7
7
|
|
8
|
+
WebMock.enable!
|
8
9
|
WebMock.disable_net_connect!(:allow_localhost => true)
|
9
|
-
Pork::
|
10
|
+
Pork::Suite.include(Muack::API, WebMock::API)
|
10
11
|
|
11
|
-
class Pork::
|
12
|
+
class Pork::Suite
|
12
13
|
def with_img
|
13
14
|
f = Tempfile.new(['img', '.jpg'])
|
14
15
|
n = File.basename(f.path)
|
data/lib/rest-builder/version.rb
CHANGED
data/rest-builder.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: rest-builder 0.9.
|
2
|
+
# stub: rest-builder 0.9.2 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "rest-builder".freeze
|
6
|
-
s.version = "0.9.
|
6
|
+
s.version = "0.9.2"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib".freeze]
|
10
10
|
s.authors = ["Lin Jen-Shin (godfat)".freeze]
|
11
|
-
s.date = "
|
11
|
+
s.date = "2017-08-05"
|
12
12
|
s.description = "Modular Ruby clients interface for REST APIs.\n\nBuild your own API clients for less dependencies, less codes, less memory,\nless conflicts, and run faster. Checkout [rest-core][] for pre-built\nmiddleware and [rest-more][] for pre-built clients.\n\n[rest-core]: https://github.com/godfat/rest-core\n[rest-more]: https://github.com/godfat/rest-more".freeze
|
13
13
|
s.email = ["godfat (XD) godfat.org".freeze]
|
14
14
|
s.files = [
|
@@ -42,8 +42,8 @@ Gem::Specification.new do |s|
|
|
42
42
|
"test/test_httpclient.rb".freeze,
|
43
43
|
"test/test_payload.rb".freeze]
|
44
44
|
s.homepage = "https://github.com/godfat/rest-builder".freeze
|
45
|
-
s.licenses = ["Apache
|
46
|
-
s.rubygems_version = "2.6.
|
45
|
+
s.licenses = ["Apache-2.0".freeze]
|
46
|
+
s.rubygems_version = "2.6.12".freeze
|
47
47
|
s.summary = "Modular Ruby clients interface for REST APIs.".freeze
|
48
48
|
s.test_files = [
|
49
49
|
"test/test_builder.rb".freeze,
|
data/task/README.md
CHANGED
@@ -4,16 +4,16 @@
|
|
4
4
|
|
5
5
|
Provided tasks:
|
6
6
|
|
7
|
-
rake clean #
|
7
|
+
rake clean # Trash ignored files
|
8
8
|
rake gem:build # Build gem
|
9
9
|
rake gem:install # Install gem
|
10
10
|
rake gem:release # Release gem
|
11
11
|
rake gem:spec # Generate gemspec
|
12
|
-
rake test # Run tests
|
12
|
+
rake test # Run tests
|
13
13
|
|
14
14
|
## REQUIREMENTS:
|
15
15
|
|
16
|
-
* Tested with MRI (official CRuby)
|
16
|
+
* Tested with MRI (official CRuby), Rubinius and JRuby.
|
17
17
|
|
18
18
|
## INSTALLATION:
|
19
19
|
|
@@ -23,13 +23,13 @@ And in Rakefile:
|
|
23
23
|
|
24
24
|
``` ruby
|
25
25
|
begin
|
26
|
-
require "#{
|
26
|
+
require "#{__dir__}/task/gemgem"
|
27
27
|
rescue LoadError
|
28
|
-
sh 'git submodule update --init'
|
28
|
+
sh 'git submodule update --init --recursive'
|
29
29
|
exec Gem.ruby, '-S', $PROGRAM_NAME, *ARGV
|
30
30
|
end
|
31
31
|
|
32
|
-
Gemgem.init(
|
32
|
+
Gemgem.init(__dir__, :submodules => %w[your-dep]) do |s|
|
33
33
|
s.name = 'your-gem'
|
34
34
|
s.version = '0.1.0'
|
35
35
|
end
|
@@ -37,9 +37,9 @@ end
|
|
37
37
|
|
38
38
|
## LICENSE:
|
39
39
|
|
40
|
-
Apache License 2.0
|
40
|
+
Apache License 2.0 (Apache-2.0)
|
41
41
|
|
42
|
-
Copyright (c) 2011-
|
42
|
+
Copyright (c) 2011-2017, Lin Jen-Shin (godfat)
|
43
43
|
|
44
44
|
Licensed under the Apache License, Version 2.0 (the "License");
|
45
45
|
you may not use this file except in compliance with the License.
|
data/task/gemgem.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
module Gemgem
|
3
3
|
class << self
|
4
|
-
attr_accessor :dir, :spec, :spec_create
|
4
|
+
attr_accessor :dir, :spec, :submodules, :spec_create
|
5
5
|
end
|
6
6
|
|
7
7
|
module_function
|
@@ -11,12 +11,14 @@ module Gemgem
|
|
11
11
|
def pkg_dir ; "#{dir}/pkg" ; end
|
12
12
|
def escaped_dir; @escaped_dir ||= Regexp.escape(dir); end
|
13
13
|
|
14
|
-
def init dir, &block
|
14
|
+
def init dir, options={}, &block
|
15
15
|
self.dir = dir
|
16
|
-
$LOAD_PATH.unshift("#{dir}/lib")
|
17
16
|
ENV['RUBYLIB'] = "#{dir}/lib:#{ENV['RUBYLIB']}"
|
18
17
|
ENV['PATH'] = "#{dir}/bin:#{ENV['PATH']}"
|
18
|
+
self.submodules = options[:submodules] || []
|
19
19
|
self.spec_create = block
|
20
|
+
|
21
|
+
$LOAD_PATH.unshift("#{dir}/lib", *submodules_libs)
|
20
22
|
end
|
21
23
|
|
22
24
|
def create
|
@@ -26,7 +28,7 @@ module Gemgem
|
|
26
28
|
|
27
29
|
s.description = description.join
|
28
30
|
s.summary = description.first
|
29
|
-
s.license =
|
31
|
+
s.license = license
|
30
32
|
|
31
33
|
s.date = Time.now.strftime('%Y-%m-%d')
|
32
34
|
s.files = gem_files
|
@@ -115,6 +117,7 @@ module Gemgem
|
|
115
117
|
SimpleCov.start do
|
116
118
|
add_filter('test/')
|
117
119
|
add_filter('test.rb')
|
120
|
+
submodules_libs.each(&method(:add_filter))
|
118
121
|
end
|
119
122
|
end
|
120
123
|
|
@@ -159,11 +162,15 @@ module Gemgem
|
|
159
162
|
end
|
160
163
|
|
161
164
|
def strip_home_path path
|
162
|
-
path.sub(ENV['HOME']
|
165
|
+
path.sub(/\A#{Regexp.escape(ENV['HOME'])}\//, '~/')
|
163
166
|
end
|
164
167
|
|
165
168
|
def strip_cwd_path path
|
166
|
-
path.sub(Dir.pwd
|
169
|
+
path.sub(/\A#{Regexp.escape(Dir.pwd)}\//, '')
|
170
|
+
end
|
171
|
+
|
172
|
+
def submodules_libs
|
173
|
+
submodules.map{ |path| "#{dir}/#{path}/lib" }
|
167
174
|
end
|
168
175
|
|
169
176
|
def git *args
|
@@ -201,6 +208,11 @@ module Gemgem
|
|
201
208
|
@description ||= (readme['DESCRIPTION']||'').sub(/.+\n\n/, '').lines.to_a
|
202
209
|
end
|
203
210
|
|
211
|
+
def license
|
212
|
+
readme['LICENSE'].sub(/.+\n\n/, '').lines.first.
|
213
|
+
split(/[()]/).map(&:strip).reject(&:empty?).last
|
214
|
+
end
|
215
|
+
|
204
216
|
def all_files
|
205
217
|
@all_files ||= fold_files(glob).sort
|
206
218
|
end
|
@@ -221,7 +233,8 @@ module Gemgem
|
|
221
233
|
|
222
234
|
def gem_files
|
223
235
|
@gem_files ||= all_files.reject{ |f|
|
224
|
-
f =~
|
236
|
+
f =~ submodules_pattern ||
|
237
|
+
(f =~ ignored_pattern && !git_files.include?(f))
|
225
238
|
}
|
226
239
|
end
|
227
240
|
|
@@ -253,6 +266,15 @@ module Gemgem
|
|
253
266
|
end
|
254
267
|
end
|
255
268
|
|
269
|
+
def submodules_pattern
|
270
|
+
@submodules_pattern ||= if submodules.empty?
|
271
|
+
/^$/
|
272
|
+
else
|
273
|
+
Regexp.new(submodules.map{ |path|
|
274
|
+
"^#{Regexp.escape(path)}/" }.join('|'))
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
256
278
|
def expand_patterns pathes
|
257
279
|
# http://git-scm.com/docs/gitignore
|
258
280
|
pathes.flat_map{ |path|
|
data/test/test_client.rb
CHANGED
@@ -179,34 +179,32 @@ describe RestBuilder::Client do
|
|
179
179
|
error.should.kind_of?(Errno::ECONNREFUSED)
|
180
180
|
end
|
181
181
|
|
182
|
-
path = 'http://example.com/'
|
183
|
-
|
184
182
|
would 'give RESPONSE_BODY' do
|
185
|
-
stub_request(:get,
|
186
|
-
simple.new.get(
|
183
|
+
stub_request(:get, url).to_return(:body => 'OK')
|
184
|
+
simple.new.get(url).should.eq 'OK'
|
187
185
|
end
|
188
186
|
|
189
187
|
would 'give RESPONSE_HEADERS' do
|
190
|
-
stub_request(:head,
|
191
|
-
simple.new.head(
|
188
|
+
stub_request(:head, url).to_return(:headers => {'A' => 'B'})
|
189
|
+
simple.new.head(url).should.eq 'A' => 'B'
|
192
190
|
end
|
193
191
|
|
194
192
|
would 'give RESPONSE_HEADERS' do
|
195
|
-
stub_request(:get,
|
196
|
-
simple.new.get(
|
193
|
+
stub_request(:get, url).to_return(:status => 199)
|
194
|
+
simple.new.get(url, {},
|
197
195
|
RestBuilder::RESPONSE_KEY => RestBuilder::RESPONSE_STATUS).should.eq 199
|
198
196
|
end
|
199
197
|
|
200
198
|
would 'give RESPONSE_SOCKET' do
|
201
|
-
stub_request(:get,
|
202
|
-
simple.new.get(
|
199
|
+
stub_request(:get, url).to_return(:body => 'OK')
|
200
|
+
simple.new.get(url, {}, RestBuilder::HIJACK => true).read.should.eq 'OK'
|
203
201
|
end
|
204
202
|
|
205
203
|
would 'give REQUEST_URI' do
|
206
|
-
stub_request(:get, "#{
|
207
|
-
simple.new.get(
|
204
|
+
stub_request(:get, "#{url}?a=b").to_return(:body => 'OK')
|
205
|
+
simple.new.get(url, {:a => 'b'},
|
208
206
|
RestBuilder::RESPONSE_KEY => RestBuilder::REQUEST_URI).
|
209
|
-
should.eq "#{
|
207
|
+
should.eq "#{url}?a=b"
|
210
208
|
simple.wait
|
211
209
|
end
|
212
210
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
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:
|
11
|
+
date: 2017-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: promise_pool
|
@@ -98,7 +98,7 @@ files:
|
|
98
98
|
- test/test_payload.rb
|
99
99
|
homepage: https://github.com/godfat/rest-builder
|
100
100
|
licenses:
|
101
|
-
- Apache
|
101
|
+
- Apache-2.0
|
102
102
|
metadata: {}
|
103
103
|
post_install_message:
|
104
104
|
rdoc_options: []
|
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
116
|
version: '0'
|
117
117
|
requirements: []
|
118
118
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.6.
|
119
|
+
rubygems_version: 2.6.12
|
120
120
|
signing_key:
|
121
121
|
specification_version: 4
|
122
122
|
summary: Modular Ruby clients interface for REST APIs.
|