tripod 0.8 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,11 +37,11 @@ module Tripod::Resource
37
37
  #
38
38
  # @return [ Resource ] A new +Resource+
39
39
  def initialize(uri, opts={})
40
- if opts.is_a?(String)
41
- graph_uri = opts
42
- else
40
+ if opts.is_a?(Hash)
43
41
  graph_uri = opts.fetch(:graph_uri, nil)
44
42
  ignore_graph = opts.fetch(:ignore_graph, false)
43
+ else
44
+ graph_uri = opts
45
45
  end
46
46
 
47
47
  raise Tripod::Errors::UriNotSet.new('uri missing') unless uri
@@ -16,8 +16,8 @@ module Tripod::SparqlClient
16
16
  # @return [ RestClient::Response ]
17
17
  def self.query(sparql, accept_header, extra_params={}, response_limit_bytes = :default)
18
18
 
19
- params = {:query => sparql}.merge(extra_params)
20
- request_url = Tripod.query_endpoint + '?' + params.to_query
19
+ params = {:query => sparql}.merge(extra_params).to_query
20
+ request_url = Tripod.query_endpoint
21
21
  streaming_opts = {:accept => accept_header, :timeout_seconds => Tripod.timeout_seconds}
22
22
  streaming_opts.merge!(_response_limit_options(response_limit_bytes)) if Tripod.response_limit_bytes
23
23
 
@@ -27,7 +27,7 @@ module Tripod::SparqlClient
27
27
  Tripod.logger.debug "TRIPOD: Streaming fron url: #{request_url}"
28
28
  Tripod.logger.debug "TRIPOD: Streaming opts: #{streaming_opts.inspect}"
29
29
 
30
- Tripod::Streaming.get_data(request_url, streaming_opts)
30
+ Tripod::Streaming.get_data(request_url, params, streaming_opts)
31
31
  }
32
32
 
33
33
  if Tripod.cache_store # if a cache store is configured
@@ -8,7 +8,7 @@ module Tripod
8
8
  #  :accept => "*/*"
9
9
  # :timeout_seconds = 10
10
10
  # :response_limit_bytes = nil
11
- def self.get_data(request_url, opts={})
11
+ def self.get_data(request_url, payload, opts={})
12
12
 
13
13
  accept = opts[:accept] || "*/*"
14
14
  timeout_in_seconds = opts[:timeout_seconds] || 10
@@ -25,7 +25,7 @@ module Tripod
25
25
  request_start_time = Time.now if Tripod.logger.debug?
26
26
 
27
27
  begin
28
- http.request_get(uri.request_uri, 'Accept' => accept) do |res|
28
+ http.request_post(uri.request_uri, payload, 'Accept' => accept) do |res|
29
29
 
30
30
  response_duration = Time.now - request_start_time if Tripod.logger.debug?
31
31
 
@@ -37,6 +37,7 @@ module Tripod
37
37
  res.read_body do |seg|
38
38
  total_bytes += seg.size
39
39
  response_string += seg.to_s
40
+ # raise Tripod::Errors::Timeout.new
40
41
  # if there's a limit, stop when we reach it
41
42
  raise Tripod::Errors::SparqlResponseTooLarge.new if limit_in_bytes && (total_bytes > limit_in_bytes)
42
43
  end
@@ -1,3 +1,3 @@
1
1
  module Tripod
2
- VERSION = "0.8"
2
+ VERSION = "0.9.1"
3
3
  end
@@ -26,7 +26,8 @@ describe Tripod::SparqlClient do
26
26
  Tripod::SparqlClient::Query.query(query, "application/sparql-results+json")
27
27
 
28
28
  expect(Tripod::Streaming).to have_received(:get_data).with(
29
- Tripod.query_endpoint + "?query=#{CGI.escape(query)}",
29
+ Tripod.query_endpoint,
30
+ "query=#{CGI.escape(query)}",
30
31
  {
31
32
  accept: "application/sparql-results+json",
32
33
  timeout_seconds: Tripod.timeout_seconds,
@@ -42,7 +43,7 @@ describe Tripod::SparqlClient do
42
43
  )
43
44
 
44
45
  expect(Tripod::Streaming).to have_received(:get_data).with(
45
- kind_of(String), hash_including(response_limit_bytes: 1024)
46
+ kind_of(String), kind_of(String), hash_including(response_limit_bytes: 1024)
46
47
  )
47
48
  end
48
49
  end
@@ -54,7 +55,7 @@ describe Tripod::SparqlClient do
54
55
  )
55
56
 
56
57
  expect(Tripod::Streaming).to have_received(:get_data).with(
57
- kind_of(String), hash_including(:response_limit_bytes)
58
+ kind_of(String), kind_of(String), hash_including(:response_limit_bytes)
58
59
  )
59
60
  end
60
61
  end
@@ -66,7 +67,7 @@ describe Tripod::SparqlClient do
66
67
  )
67
68
 
68
69
  expect(Tripod::Streaming).to have_received(:get_data).with(
69
- kind_of(String), hash_not_including(:response_limit_bytes)
70
+ kind_of(String), kind_of(String), hash_not_including(:response_limit_bytes)
70
71
  )
71
72
  end
72
73
  end
@@ -3,60 +3,54 @@ require "spec_helper"
3
3
  describe Tripod::Streaming do
4
4
 
5
5
  let(:url) { 'http://example.com' }
6
+ let(:query) { 'select * where {?s ?p ?o}' }
6
7
  let(:response_length) { 64.kilobytes }
7
8
 
8
9
  before do
9
10
  WebMock.enable!
10
- stub_http_request(:get, url).with(:headers => {'Accept' => "*/*"}).to_return(:body => ("0" * response_length))
11
+ stub_http_request(:post, url).with(:body => query, :headers => {'Accept' => "*/*"}).to_return(:body => ("0" * response_length))
11
12
  end
12
13
 
13
14
  describe ".get_data" do
14
15
  it "should make a request to the url passed in" do
15
- Tripod::Streaming.get_data(url)
16
+ Tripod::Streaming.get_data(url, query)
16
17
  end
17
18
 
18
19
  context "with timeout option" do
19
20
  it "should set the read_timeout to that value" do
20
21
  Net::HTTP.any_instance.should_receive(:read_timeout=).with(28)
21
- Tripod::Streaming.get_data(url, :timeout_seconds => 28)
22
+ Tripod::Streaming.get_data(url, query, :timeout_seconds => 28)
22
23
  end
23
24
  end
24
25
 
25
26
  context "with no timeout option" do
26
27
  it "should set the read_timeout to the default (10s)" do
27
28
  Net::HTTP.any_instance.should_receive(:read_timeout=).with(10)
28
- Tripod::Streaming.get_data(url)
29
+ Tripod::Streaming.get_data(url, query)
29
30
  end
30
31
  end
31
32
 
32
33
  context "with an accept header option" do
33
34
  it "should use that header for the request " do
34
- stub_http_request(:get, url).with(:headers => {'Accept' => "application/json"})
35
- Tripod::Streaming.get_data(url, :accept => 'application/json')
35
+ stub_http_request(:post, url).with(:body => query, :headers => {'Accept' => "application/json"})
36
+ Tripod::Streaming.get_data(url, query, :accept => 'application/json')
36
37
  end
37
38
  end
38
39
 
39
40
  # these tests actually download remote resources (from jQuery's CDN) to test the streaming bits
40
41
  # TODO: move this out so it doesn't run with the normal rake task??
41
42
  context "streaming" do
42
- before { WebMock.disable! }
43
-
44
43
  context "with no limit" do
45
-
46
44
  it "should return the full body" do
47
- full_response_length = RestClient.get('http://code.jquery.com/jquery-1.9.1.js').body.length
48
- response = Tripod::Streaming.get_data('http://code.jquery.com/jquery-1.9.1.js')
49
- response.length.should == full_response_length
45
+ response = Tripod::Streaming.get_data(url, query, :no_response_limit => true)
46
+ response.length.should == response_length
50
47
  end
51
48
  end
52
49
 
53
50
  context "with a limit" do
54
51
  it "should raise an exception if it's bigger than the limit" do
55
- unlimited_response = Tripod::Streaming.get_data('http://code.jquery.com/jquery-1.9.1.js')
56
- unlimited_response.length.should > 48.kilobytes
57
-
58
52
  lambda {
59
- Tripod::Streaming.get_data('http://code.jquery.com/jquery-1.9.1.js', :response_limit_bytes => 32.kilobytes)
53
+ Tripod::Streaming.get_data(url, query, :response_limit_bytes => 32.kilobytes)
60
54
  }.should raise_error(Tripod::Errors::SparqlResponseTooLarge)
61
55
  end
62
56
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tripod
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.8'
4
+ version: 0.9.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-11-08 00:00:00.000000000 Z
14
+ date: 2013-12-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
18
- requirement: &70287154647860 !ruby/object:Gem::Requirement
18
+ requirement: &70143888872280 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '0'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70287154647860
26
+ version_requirements: *70143888872280
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
- requirement: &70287154647280 !ruby/object:Gem::Requirement
29
+ requirement: &70143888884780 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '3.2'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70287154647280
37
+ version_requirements: *70143888884780
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: equivalent-xml
40
- requirement: &70287154646820 !ruby/object:Gem::Requirement
40
+ requirement: &70143888894220 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '0'
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70287154646820
48
+ version_requirements: *70143888894220
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rdf
51
- requirement: &70287154646240 !ruby/object:Gem::Requirement
51
+ requirement: &70143888891840 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ~>
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: '1.0'
57
57
  type: :runtime
58
58
  prerelease: false
59
- version_requirements: *70287154646240
59
+ version_requirements: *70143888891840
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rdf-rdfxml
62
- requirement: &70287154645760 !ruby/object:Gem::Requirement
62
+ requirement: &70143888888600 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: '0'
68
68
  type: :runtime
69
69
  prerelease: false
70
- version_requirements: *70287154645760
70
+ version_requirements: *70143888888600
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rdf-turtle
73
- requirement: &70287154645080 !ruby/object:Gem::Requirement
73
+ requirement: &70143888912920 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: '0'
79
79
  type: :runtime
80
80
  prerelease: false
81
- version_requirements: *70287154645080
81
+ version_requirements: *70143888912920
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: rdf-json
84
- requirement: &70287154644500 !ruby/object:Gem::Requirement
84
+ requirement: &70143888909880 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ! '>='
@@ -89,10 +89,10 @@ dependencies:
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
- version_requirements: *70287154644500
92
+ version_requirements: *70143888909880
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: json-ld
95
- requirement: &70287154643580 !ruby/object:Gem::Requirement
95
+ requirement: &70143888923020 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ~>
@@ -100,10 +100,10 @@ dependencies:
100
100
  version: 0.9.1
101
101
  type: :runtime
102
102
  prerelease: false
103
- version_requirements: *70287154643580
103
+ version_requirements: *70143888923020
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: guid
106
- requirement: &70287154643100 !ruby/object:Gem::Requirement
106
+ requirement: &70143888919800 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ! '>='
@@ -111,10 +111,10 @@ dependencies:
111
111
  version: '0'
112
112
  type: :runtime
113
113
  prerelease: false
114
- version_requirements: *70287154643100
114
+ version_requirements: *70143888919800
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: dalli
117
- requirement: &70287154642500 !ruby/object:Gem::Requirement
117
+ requirement: &70143888937040 !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
120
120
  - - ~>
@@ -122,7 +122,7 @@ dependencies:
122
122
  version: '2.6'
123
123
  type: :runtime
124
124
  prerelease: false
125
- version_requirements: *70287154642500
125
+ version_requirements: *70143888937040
126
126
  description: RDF ruby ORM
127
127
  email:
128
128
  - ric@swirrl.com