primedia-endeca 0.11.0 → 0.12.0

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.
data/endeca.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{endeca}
5
- s.version = "0.11.0"
5
+ s.version = "0.12.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Rein Henrichs", "Andy Stone"]
9
- s.date = %q{2009-04-03}
9
+ s.date = %q{2009-04-06}
10
10
  s.description = %q{An Endeca client library for Ruby.}
11
11
  s.email = %q{}
12
12
  s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.rdoc"]
data/example/listing.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'lib/endeca'
2
2
  class Listing < Endeca::Document
3
- path 'http://192.168.3.218:8888/bridge/JSONControllerServlet.do'
3
+ path "http://10.130.83.75:9888/bridge/JSONControllerServlet.do"
4
4
 
5
5
  reader \
6
6
  :address,
@@ -15,7 +15,9 @@ module Endeca
15
15
  end
16
16
 
17
17
  def perform
18
- handle_response(get_response)
18
+ response = handle_response(get_response)
19
+ raise RequestError, endeca_error(response)[:message] if endeca_error?(response)
20
+ return response
19
21
  end
20
22
 
21
23
  def uri
@@ -27,6 +29,21 @@ module Endeca
27
29
  end
28
30
 
29
31
  private
32
+
33
+ def endeca_error(response)
34
+ method_response = response["methodResponse"]
35
+ fault = method_response && response["methodResponse"]["fault"]
36
+ values = fault && response["methodResponse"]["fault"]["value"]
37
+ return nil unless values
38
+ {
39
+ :code => values["faultCode"].to_i,
40
+ :message => values["faultString"]
41
+ }
42
+ end
43
+
44
+ def endeca_error?(response)
45
+ !endeca_error(response).nil?
46
+ end
30
47
 
31
48
  def get_response #:nodoc:
32
49
  Endeca.log "ENDECA ADAPTER REQUEST"
data/lib/endeca.rb CHANGED
@@ -26,7 +26,7 @@ module Endeca
26
26
  extend Logging
27
27
 
28
28
  # :stopdoc:
29
- VERSION = '0.11.0'
29
+ VERSION = '0.12.0'
30
30
  # :startdoc:
31
31
 
32
32
  # Returns the version string for the library.
@@ -34,6 +34,10 @@ describe Endeca::Request do
34
34
  it "should return the parsed JSON of the response body" do
35
35
  @request.perform.should == @response_hash
36
36
  end
37
+
38
+ it "should not raise an error" do
39
+ lambda { @request.perform }.should_not raise_error
40
+ end
37
41
  end
38
42
 
39
43
  describe "when unsuccessful" do
@@ -46,20 +50,39 @@ describe Endeca::Request do
46
50
  end
47
51
 
48
52
  end
53
+
54
+ describe "when the response contains an error hash" do
55
+ before do
56
+ @error_message = "com.endeca.soleng.urlformatter.QueryBuildException: com.endeca.navigation.UrlENEQueryParseException: java.lang.NumberFormatException: For input string: \"asdjkhfgasdfjkhg\""
57
+ @error_response = {
58
+ "methodResponse"=>
59
+ {"fault"=>
60
+ {"value"=>
61
+ {"faultCode"=>"-1",
62
+ "faultString"=> @error_message}}}}
63
+ @error_request = Endeca::Request.new(@path)
64
+ @error_request.stub!(:handle_response).and_return(@error_response)
65
+ end
66
+
67
+ it "should raise an Endeca::RequestError" do
68
+ lambda { @error_request.perform }.should raise_error(Endeca::RequestError, @error_message)
69
+ end
70
+ end
71
+
49
72
  end
50
73
 
51
74
  describe '#uri'
52
- describe "with a hash of query options" do
53
- it "should append the query options onto the url" do
54
- query = {:foo => :bar}
55
- Endeca::Request.new(@path, query).uri.query.should == query.to_endeca_params
56
- end
75
+ describe "with a hash of query options" do
76
+ it "should append the query options onto the url" do
77
+ query = {:foo => :bar}
78
+ Endeca::Request.new(@path, query).uri.query.should == query.to_endeca_params
57
79
  end
80
+ end
58
81
 
59
- describe "with a string of query options" do
60
- it "should append the query options string onto the url" do
61
- query = 'N=56'
62
- Endeca::Request.new(@path, query).uri.query.should == query.to_endeca_params
63
- end
82
+ describe "with a string of query options" do
83
+ it "should append the query options string onto the url" do
84
+ query = 'N=56'
85
+ Endeca::Request.new(@path, query).uri.query.should == query.to_endeca_params
64
86
  end
87
+ end
65
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: primedia-endeca
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rein Henrichs
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-04-03 00:00:00 -07:00
13
+ date: 2009-04-06 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency