tripod 0.8 → 0.9.1

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.
@@ -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