manticore 0.3.5-java → 0.3.6-java
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
- 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
|