primedia-endeca 0.9.22 → 0.9.23
Sign up to get free protection for your applications and to get access to all the features.
- data/endeca.gemspec +1 -1
- data/lib/core_ext.rb +8 -8
- data/lib/endeca/dimension.rb +1 -1
- data/lib/endeca/refinement.rb +1 -1
- data/lib/endeca/request.rb +1 -1
- data/lib/endeca.rb +3 -3
- data/spec/core_ext_spec.rb +33 -13
- data/spec/endeca/dimension_spec.rb +3 -3
- data/spec/endeca/refinement_spec.rb +2 -2
- data/spec/endeca/request_spec.rb +2 -2
- metadata +1 -1
data/endeca.gemspec
CHANGED
data/lib/core_ext.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class Array
|
2
|
-
def
|
3
|
-
join('&').
|
2
|
+
def to_endeca_params
|
3
|
+
join('&').to_endeca_params
|
4
4
|
end
|
5
5
|
end
|
6
6
|
|
@@ -67,7 +67,7 @@ class Class
|
|
67
67
|
end
|
68
68
|
|
69
69
|
class Hash
|
70
|
-
def
|
70
|
+
def to_endeca_params
|
71
71
|
map { |k, v|
|
72
72
|
if v.instance_of?(Hash)
|
73
73
|
v.map { |sk, sv|
|
@@ -76,26 +76,26 @@ class Hash
|
|
76
76
|
else
|
77
77
|
"#{k}=#{v}"
|
78
78
|
end
|
79
|
-
}.join('&').
|
79
|
+
}.join('&').to_endeca_params
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
def symbolize_keys
|
83
83
|
inject({}) do |options, (key, value)|
|
84
84
|
options[(key.to_sym rescue key) || key] = value
|
85
85
|
options
|
86
86
|
end
|
87
87
|
end
|
88
|
-
|
88
|
+
|
89
89
|
end
|
90
90
|
|
91
91
|
class NilClass
|
92
|
-
def
|
92
|
+
def to_endeca_params
|
93
93
|
''
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
97
|
class String
|
98
|
-
def
|
98
|
+
def to_endeca_params
|
99
99
|
Endeca.escape(self)
|
100
100
|
end
|
101
101
|
end
|
data/lib/endeca/dimension.rb
CHANGED
data/lib/endeca/refinement.rb
CHANGED
data/lib/endeca/request.rb
CHANGED
@@ -54,7 +54,7 @@ module Endeca
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def query_string
|
57
|
-
query_string_parts = [@uri.query, @query.
|
57
|
+
query_string_parts = [@uri.query, @query.to_endeca_params]
|
58
58
|
query_string_parts.reject!{ |s| s.nil? || s.empty? }
|
59
59
|
|
60
60
|
query_string_parts.empty? ? nil : query_string_parts.join('&')
|
data/lib/endeca.rb
CHANGED
@@ -25,16 +25,16 @@ module Endeca
|
|
25
25
|
extend Logging
|
26
26
|
|
27
27
|
# :stopdoc:
|
28
|
-
VERSION = '0.9.
|
28
|
+
VERSION = '0.9.23'
|
29
29
|
# :startdoc:
|
30
30
|
|
31
31
|
# Returns the version string for the library.
|
32
|
-
#
|
33
32
|
def self.version
|
34
33
|
VERSION
|
35
34
|
end
|
36
35
|
|
37
36
|
# Set Endeca.debug = true to turn on query logging
|
37
|
+
# Set Endeca.benchmark = true to turn on query benchmarking
|
38
38
|
class << self
|
39
39
|
attr_accessor :logger
|
40
40
|
attr_accessor :debug
|
@@ -44,7 +44,7 @@ module Endeca
|
|
44
44
|
self.logger = Logger.new(STDOUT)
|
45
45
|
self.debug = false
|
46
46
|
self.benchmark = false
|
47
|
-
|
47
|
+
|
48
48
|
# Endeca URIs require colons to be escaped
|
49
49
|
def self.escape(str)
|
50
50
|
URI.escape(str, /[^-_.!~*'()a-zA-Z\d;\/?@&=+$,\[\]]/n)
|
data/spec/core_ext_spec.rb
CHANGED
@@ -1,54 +1,74 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
2
2
|
|
3
3
|
describe Array do
|
4
|
-
describe "#
|
4
|
+
describe "#to_endeca_params" do
|
5
5
|
it "should join the elements with ampersand" do
|
6
|
-
["foo=1","bar=3"].
|
6
|
+
["foo=1","bar=3"].to_endeca_params.should == "foo=1&bar=3"
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should escape all elements" do
|
10
|
-
['|=|','||=||'].
|
10
|
+
['|=|','||=||'].to_endeca_params.should == '%7C=%7C&%7C%7C=%7C%7C'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe Benchmark do
|
16
|
+
describe ".realtime" do
|
17
|
+
it "should check the time twice" do
|
18
|
+
Time.should_receive(:now).exactly(2).times
|
19
|
+
Benchmark.realtime(){}
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return the time difference as a float" do
|
23
|
+
Benchmark.realtime(){}.should be_a_kind_of(Float)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe ".ms" do
|
28
|
+
it "should be 1000 times the realtime value" do
|
29
|
+
Benchmark.stub!(:realtime).and_return(1)
|
30
|
+
Benchmark.ms.should == 1000
|
11
31
|
end
|
12
32
|
end
|
13
33
|
end
|
14
34
|
|
15
35
|
describe Hash do
|
16
|
-
describe "#
|
36
|
+
describe "#to_endeca_params" do
|
17
37
|
it "should join a key-value pair with equals" do
|
18
|
-
{:foo => :bar}.
|
38
|
+
{:foo => :bar}.to_endeca_params.should == 'foo=bar'
|
19
39
|
end
|
20
40
|
|
21
41
|
it "should join two key-value pairs with ampersand" do
|
22
|
-
result = {:foo => :bar, :bizz => :bazz}.
|
42
|
+
result = {:foo => :bar, :bizz => :bazz}.to_endeca_params
|
23
43
|
(result == 'foo=bar&bizz=bazz' || result == 'bizz=bazz&foo=bar').should be_true
|
24
44
|
end
|
25
45
|
|
26
46
|
it "should use brackets to indicate a nested hash" do
|
27
|
-
{:foo => {:foo => :bar}}.
|
47
|
+
{:foo => {:foo => :bar}}.to_endeca_params.should == 'foo[foo]=bar'
|
28
48
|
end
|
29
49
|
|
30
50
|
it "should escape all elements" do
|
31
|
-
{'|' => '||'}.
|
51
|
+
{'|' => '||'}.to_endeca_params.should == '%7C=%7C%7C'
|
32
52
|
end
|
33
53
|
end
|
34
54
|
end
|
35
55
|
|
36
56
|
describe NilClass do
|
37
|
-
describe "
|
57
|
+
describe "to_endeca_params" do
|
38
58
|
it "should return the empty string" do
|
39
|
-
nil.
|
59
|
+
nil.to_endeca_params.should == ''
|
40
60
|
end
|
41
61
|
end
|
42
62
|
end
|
43
63
|
|
44
64
|
describe String do
|
45
|
-
describe "#
|
65
|
+
describe "#to_endeca_params" do
|
46
66
|
it "should URI escape the contents" do
|
47
|
-
'|'.
|
67
|
+
'|'.to_endeca_params.should == '%7C'
|
48
68
|
end
|
49
69
|
|
50
70
|
it "should URI escape a colon" do
|
51
|
-
':'.
|
71
|
+
':'.to_endeca_params.should == "%3A"
|
52
72
|
end
|
53
73
|
end
|
54
74
|
end
|
@@ -9,7 +9,7 @@ describe Endeca::Dimension do
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
describe "#
|
12
|
+
describe "#to_endeca_params" do
|
13
13
|
before do
|
14
14
|
@dimension = Endeca::Dimension.new
|
15
15
|
@selection = mock('selection link')
|
@@ -21,7 +21,7 @@ describe Endeca::Dimension do
|
|
21
21
|
@dimension.stub!(:selection_link => @selection_link)
|
22
22
|
@dimension.stub!(:removal_link => nil)
|
23
23
|
|
24
|
-
@dimension.
|
24
|
+
@dimension.to_endeca_params.should == @selection_link
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -30,7 +30,7 @@ describe Endeca::Dimension do
|
|
30
30
|
@dimension.stub!(:selection_link => nil)
|
31
31
|
@dimension.stub!(:removal_link => @removal_link)
|
32
32
|
|
33
|
-
@dimension.
|
33
|
+
@dimension.to_endeca_params.should == @removal_link
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -53,8 +53,8 @@ describe Endeca::Refinement do
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
it "should return
|
57
|
-
@refinement.
|
56
|
+
it "should return to_endeca_params on the contraction link " do
|
57
|
+
@refinement.to_endeca_params.should == "N="
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should return an array of dimensions for dimension_values" do
|
data/spec/endeca/request_spec.rb
CHANGED
@@ -52,14 +52,14 @@ describe Endeca::Request do
|
|
52
52
|
describe "with a hash of query options" do
|
53
53
|
it "should append the query options onto the url" do
|
54
54
|
query = {:foo => :bar}
|
55
|
-
Endeca::Request.new(@path, query).uri.query.should == query.
|
55
|
+
Endeca::Request.new(@path, query).uri.query.should == query.to_endeca_params
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
describe "with a string of query options" do
|
60
60
|
it "should append the query options string onto the url" do
|
61
61
|
query = 'N=56'
|
62
|
-
Endeca::Request.new(@path, query).uri.query.should == query.
|
62
|
+
Endeca::Request.new(@path, query).uri.query.should == query.to_endeca_params
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|