manticore 0.3.5-java → 0.3.6-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +15 -10
- data/Rakefile +2 -1
- data/ext/manticore/org/manticore/HttpGetWithEntity.java +21 -0
- data/ext/manticore/org/manticore/Manticore.java +1 -1
- data/lib/jar/manticore-ext.jar +0 -0
- data/lib/manticore/client.rb +4 -3
- data/lib/manticore/stubbed_response.rb +7 -0
- data/lib/manticore/version.rb +1 -1
- data/spec/manticore/client_spec.rb +23 -5
- metadata +13 -13
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6318aab0fbc27d86f181429c393c9d4e984738e
|
4
|
+
data.tar.gz: f4f55510384f05eab14ca8ba3f701264fc89ddef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5168f1c0805a6b982756b6c136d019582a0c23adee517472fd6b9ab84d2657071e5eadfcaf08e5ad85e50c825e2e3083926b417d7c83ef0d63d2e2f8ea5836d2
|
7
|
+
data.tar.gz: 4693c3b2df44572cbfa0bb5a986400dc3e021717cd19d71b87795ef8da46ec2721f13d4ab82e9ed3c6b55ad2136b6f2908dde17e01ca4e110ac960ebb4698b1e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
## v0.3
|
2
|
-
|
2
|
+
|
3
|
+
## v0.3.7 (pending)
|
4
|
+
|
5
|
+
### v0.3.6
|
6
|
+
|
7
|
+
* GET requests may now accept bodies much like POST requests. Fixes interactions with Elasticsearch.
|
3
8
|
|
4
9
|
### v0.3.5
|
5
10
|
|
@@ -22,15 +27,15 @@
|
|
22
27
|
### v0.3.2
|
23
28
|
* :ignore_ssl_validation is now deprecated. It has been replaced with :ssl, which takes a hash of options. These include:
|
24
29
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
:verify - :strict (default), :browser, :none -- Specify hostname verification behaviors.
|
31
|
+
:protocols - An array of protocols to accept
|
32
|
+
:cipher_suites - An array of cipher suites to accept
|
33
|
+
:truststore - Path to a keytool trust store, for specifying custom trusted certificate signers
|
34
|
+
:truststore_password - Password for the file specified in `:truststore`
|
35
|
+
:truststore_type - Specify the trust store type (JKS, PKCS12)
|
36
|
+
:keystore - Path to a keytool trust store, for specifying client authentication certificates
|
37
|
+
:keystore_password - Password for the file specified in `:keystore`
|
38
|
+
:keystore_type - Specify the key store type (JKS, PKCS12)
|
34
39
|
|
35
40
|
(thanks @torrancew)
|
36
41
|
|
data/Rakefile
CHANGED
@@ -12,7 +12,8 @@ require 'rake/javaextensiontask'
|
|
12
12
|
# Dependency jars for the Kerrigan ext build
|
13
13
|
jars = [
|
14
14
|
"#{ENV['MY_RUBY_HOME']}/lib/jruby.jar",
|
15
|
-
"lib/jar/httpcore-4.3.
|
15
|
+
"lib/jar/httpcore-4.3.3.jar",
|
16
|
+
"lib/jar/httpclient-4.3.6.jar"
|
16
17
|
]
|
17
18
|
Rake::JavaExtensionTask.new do |ext|
|
18
19
|
ext.name = "manticore-ext"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
package org.manticore;
|
2
|
+
|
3
|
+
import java.net.URI;
|
4
|
+
import org.apache.http.client.methods.HttpPost;
|
5
|
+
|
6
|
+
public class HttpGetWithEntity extends HttpPost {
|
7
|
+
public final static String METHOD_NAME = "GET";
|
8
|
+
|
9
|
+
public HttpGetWithEntity(URI url) {
|
10
|
+
super(url);
|
11
|
+
}
|
12
|
+
|
13
|
+
public HttpGetWithEntity(String url) {
|
14
|
+
super(url);
|
15
|
+
}
|
16
|
+
|
17
|
+
@Override
|
18
|
+
public String getMethod() {
|
19
|
+
return METHOD_NAME;
|
20
|
+
}
|
21
|
+
}
|
@@ -21,7 +21,7 @@ import org.jcodings.Encoding;
|
|
21
21
|
|
22
22
|
public class Manticore implements Library {
|
23
23
|
|
24
|
-
public void load(final Ruby ruby, boolean
|
24
|
+
public void load(final Ruby ruby, boolean _dummy) {
|
25
25
|
RubyModule manticore = ruby.defineModule("Manticore");
|
26
26
|
RubyClass converter = ruby.defineClassUnder("EntityConverter", ruby.getObject(), new ObjectAllocator() {
|
27
27
|
public IRubyObject allocate(Ruby ruby, RubyClass rc) {
|
data/lib/jar/manticore-ext.jar
CHANGED
Binary file
|
data/lib/manticore/client.rb
CHANGED
@@ -75,6 +75,7 @@ module Manticore
|
|
75
75
|
java_import "org.apache.http.HttpHost"
|
76
76
|
java_import "javax.net.ssl.SSLContext"
|
77
77
|
java_import "java.security.KeyStore"
|
78
|
+
java_import "org.manticore.HttpGetWithEntity"
|
78
79
|
|
79
80
|
include ProxiesInterface
|
80
81
|
|
@@ -217,7 +218,7 @@ module Manticore
|
|
217
218
|
# Perform a HTTP GET request
|
218
219
|
# @macro http_method_shared_sync
|
219
220
|
def get(url, options = {}, &block)
|
220
|
-
request
|
221
|
+
request HttpGetWithEntity, url, options, &block
|
221
222
|
end
|
222
223
|
|
223
224
|
# Perform a HTTP PUT request
|
@@ -289,7 +290,7 @@ module Manticore
|
|
289
290
|
|
290
291
|
def url_as_regex(url)
|
291
292
|
if url.is_a?(String)
|
292
|
-
%r{^#{url}$}
|
293
|
+
%r{^#{Regexp.escape url}$}
|
293
294
|
else
|
294
295
|
url
|
295
296
|
end
|
@@ -423,7 +424,7 @@ module Manticore
|
|
423
424
|
req = klass.new uri_from_url_and_options(url, options).to_s
|
424
425
|
|
425
426
|
if ( options[:params] || options[:body] || options[:entity]) &&
|
426
|
-
( req.instance_of?(HttpPost) || req.instance_of?(HttpPatch) || req.instance_of?(HttpPut) )
|
427
|
+
( req.instance_of?(HttpPost) || req.instance_of?(HttpPatch) || req.instance_of?(HttpPut) || req.instance_of?(HttpGetWithEntity))
|
427
428
|
if options[:params]
|
428
429
|
req.set_entity hash_to_entity(options[:params])
|
429
430
|
elsif options[:body]
|
@@ -56,11 +56,13 @@ module Manticore
|
|
56
56
|
#
|
57
57
|
# @return [String] The final URL
|
58
58
|
def final_url
|
59
|
+
call_once
|
59
60
|
@headers["location"]
|
60
61
|
end
|
61
62
|
|
62
63
|
# Returns the stubbed body of this response.
|
63
64
|
def body
|
65
|
+
call_once
|
64
66
|
@body
|
65
67
|
end
|
66
68
|
alias_method :read_body, :body
|
@@ -68,6 +70,7 @@ module Manticore
|
|
68
70
|
# Returns the stubbed cookies of this response. This is the union of cookies from the `:cookies`
|
69
71
|
# option key and any `set-cookie` headers passed.
|
70
72
|
def cookies
|
73
|
+
call_once
|
71
74
|
@cookies
|
72
75
|
end
|
73
76
|
|
@@ -87,5 +90,9 @@ module Manticore
|
|
87
90
|
@handlers[:success].call(self)
|
88
91
|
self
|
89
92
|
end
|
93
|
+
|
94
|
+
def call_once
|
95
|
+
call unless @called
|
96
|
+
end
|
90
97
|
end
|
91
98
|
end
|
data/lib/manticore/version.rb
CHANGED
@@ -316,11 +316,14 @@ describe Manticore::Client do
|
|
316
316
|
JSON.load(response.body)["method"].should == "GET"
|
317
317
|
end
|
318
318
|
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
319
|
+
it "send a query" do
|
320
|
+
response = client.get local_server, query: {foo: "bar"}
|
321
|
+
CGI.parse(JSON.load(response.body)["uri"]["query"])["foo"].should == ["bar"]
|
322
|
+
end
|
323
|
+
|
324
|
+
it "should send a body" do
|
325
|
+
response = client.get(local_server, body: "This is a post body")
|
326
|
+
JSON.load(response.body)["body"].should == "This is a post body"
|
324
327
|
end
|
325
328
|
end
|
326
329
|
|
@@ -485,6 +488,21 @@ describe Manticore::Client do
|
|
485
488
|
client.async.get(local_server("/other")).on_success {|r| r.should_not be_a Manticore::StubbedResponse }
|
486
489
|
client.execute!
|
487
490
|
end
|
491
|
+
|
492
|
+
it "matches stubs with query strings" do
|
493
|
+
url = "http://google.com?k=v"
|
494
|
+
client.stub(url, body: "response body", code: 200)
|
495
|
+
client.get(url) do |response|
|
496
|
+
expect(response.body).to eq("response body")
|
497
|
+
end
|
498
|
+
end
|
499
|
+
|
500
|
+
it "persists the stub for non-block calls" do
|
501
|
+
url = "http://google.com"
|
502
|
+
client.stub(url, body: "response body", code: 200)
|
503
|
+
response = client.get(url)
|
504
|
+
expect(response.body).to eq("response body")
|
505
|
+
end
|
488
506
|
end
|
489
507
|
end
|
490
508
|
|
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: manticore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Chris Heald
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
@@ -30,45 +30,45 @@ cert_chain:
|
|
30
30
|
cnyabLOcGIKZNxvnSfwOuCBnjgoSOyJi/n48n1s+OPB/OmPJoWmhKu2DO4sUb4+K
|
31
31
|
/3Mhp5UWSl9SmDR1
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2015-03-
|
33
|
+
date: 2015-03-14 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name: addressable
|
37
36
|
requirement: !ruby/object:Gem::Requirement
|
38
37
|
requirements:
|
39
38
|
- - ~>
|
40
39
|
- !ruby/object:Gem::Version
|
41
40
|
version: '2.3'
|
42
|
-
|
41
|
+
name: addressable
|
43
42
|
prerelease: false
|
43
|
+
type: :runtime
|
44
44
|
version_requirements: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - ~>
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '2.3'
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
name: bundler
|
51
50
|
requirement: !ruby/object:Gem::Requirement
|
52
51
|
requirements:
|
53
52
|
- - ~>
|
54
53
|
- !ruby/object:Gem::Version
|
55
54
|
version: '1.3'
|
56
|
-
|
55
|
+
name: bundler
|
57
56
|
prerelease: false
|
57
|
+
type: :development
|
58
58
|
version_requirements: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - ~>
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '1.3'
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
name: rake
|
65
64
|
requirement: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
66
|
- - '>='
|
68
67
|
- !ruby/object:Gem::Version
|
69
68
|
version: '0'
|
70
|
-
|
69
|
+
name: rake
|
71
70
|
prerelease: false
|
71
|
+
type: :development
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - '>='
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- LICENSE.txt
|
90
90
|
- README.md
|
91
91
|
- Rakefile
|
92
|
+
- ext/manticore/org/manticore/HttpGetWithEntity.java
|
92
93
|
- ext/manticore/org/manticore/Manticore.java
|
93
94
|
- gem-public_cert.pem
|
94
95
|
- lib/jar/commons-codec-1.6.jar
|
@@ -124,7 +125,7 @@ homepage: https://github.com/cheald/manticore
|
|
124
125
|
licenses:
|
125
126
|
- MIT
|
126
127
|
metadata: {}
|
127
|
-
post_install_message:
|
128
|
+
post_install_message:
|
128
129
|
rdoc_options: []
|
129
130
|
require_paths:
|
130
131
|
- lib
|
@@ -139,9 +140,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
140
|
- !ruby/object:Gem::Version
|
140
141
|
version: '0'
|
141
142
|
requirements: []
|
142
|
-
rubyforge_project:
|
143
|
+
rubyforge_project:
|
143
144
|
rubygems_version: 2.4.5
|
144
|
-
signing_key:
|
145
|
+
signing_key:
|
145
146
|
specification_version: 4
|
146
147
|
summary: Manticore is an HTTP client built on the Apache HttpCore components
|
147
148
|
test_files:
|
@@ -159,4 +160,3 @@ test_files:
|
|
159
160
|
- spec/ssl/localhost.pem
|
160
161
|
- spec/ssl/readme.md
|
161
162
|
- spec/ssl/test_truststore
|
162
|
-
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|