primedia-endeca 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -0
- data/endeca.gemspec +7 -7
- data/lib/endeca.rb +1 -1
- data/lib/endeca/map.rb +36 -3
- data/spec/endeca/map_spec.rb +21 -0
- metadata +7 -3
data/.gitignore
ADDED
data/endeca.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{endeca}
|
5
|
-
s.version = "0.9.
|
5
|
+
s.version = "0.9.3"
|
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-01-
|
9
|
+
s.date = %q{2009-01-26}
|
10
10
|
s.description = %q{An Endeca client library for Ruby.}
|
11
11
|
s.email = %q{}
|
12
|
-
s.extra_rdoc_files = ["History.txt", "README.rdoc"]
|
13
|
-
s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "endeca.gemspec", "example/benchmark.rb", "example/listing.rb", "lib/class_to_proc.rb", "lib/core_ext.rb", "lib/endeca.rb", "lib/endeca/dimension.rb", "lib/endeca/document.rb", "lib/endeca/document_collection.rb", "lib/endeca/map.rb", "lib/endeca/readers.rb", "lib/endeca/refinement.rb", "lib/endeca/request.rb", "lib/endeca/transformer.rb", "spec/core_ext_spec.rb", "spec/endeca/dimension_spec.rb", "spec/endeca/document_collection_spec.rb", "spec/endeca/document_spec.rb", "spec/endeca/map_spec.rb", "spec/endeca/readers_spec.rb", "spec/endeca/refinement_spec.rb", "spec/endeca/request_spec.rb", "spec/endeca/transformer_spec.rb", "spec/endeca_spec.rb", "spec/rcov.opts", "spec/spec.opts", "spec/spec_helper.rb"]
|
12
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.rdoc", "lib/.endeca.rb.swp"]
|
13
|
+
s.files = [".gitignore", "History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "endeca.gemspec", "example/benchmark.rb", "example/listing.rb", "lib/.endeca.rb.swp", "lib/class_to_proc.rb", "lib/core_ext.rb", "lib/endeca.rb", "lib/endeca/dimension.rb", "lib/endeca/document.rb", "lib/endeca/document_collection.rb", "lib/endeca/map.rb", "lib/endeca/readers.rb", "lib/endeca/refinement.rb", "lib/endeca/request.rb", "lib/endeca/transformer.rb", "spec/core_ext_spec.rb", "spec/endeca/dimension_spec.rb", "spec/endeca/document_collection_spec.rb", "spec/endeca/document_spec.rb", "spec/endeca/map_spec.rb", "spec/endeca/readers_spec.rb", "spec/endeca/refinement_spec.rb", "spec/endeca/request_spec.rb", "spec/endeca/transformer_spec.rb", "spec/endeca_spec.rb", "spec/rcov.opts", "spec/spec.opts", "spec/spec_helper.rb"]
|
14
14
|
s.has_rdoc = true
|
15
15
|
s.homepage = %q{http://github.com/primedia/endeca-ruby}
|
16
16
|
s.rdoc_options = ["--main", "README.rdoc"]
|
@@ -24,11 +24,11 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.specification_version = 2
|
25
25
|
|
26
26
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
-
s.add_development_dependency(%q<bones>, [">= 2.
|
27
|
+
s.add_development_dependency(%q<bones>, [">= 2.3.0"])
|
28
28
|
else
|
29
|
-
s.add_dependency(%q<bones>, [">= 2.
|
29
|
+
s.add_dependency(%q<bones>, [">= 2.3.0"])
|
30
30
|
end
|
31
31
|
else
|
32
|
-
s.add_dependency(%q<bones>, [">= 2.
|
32
|
+
s.add_dependency(%q<bones>, [">= 2.3.0"])
|
33
33
|
end
|
34
34
|
end
|
data/lib/endeca.rb
CHANGED
data/lib/endeca/map.rb
CHANGED
@@ -31,6 +31,8 @@ module Endeca
|
|
31
31
|
self
|
32
32
|
end
|
33
33
|
|
34
|
+
def into?; @into end
|
35
|
+
|
34
36
|
# When mapping multiple key/value pairs to a single parameter value (via
|
35
37
|
# +into+), use this character to join a key with a value.
|
36
38
|
def with(character)
|
@@ -45,12 +47,32 @@ module Endeca
|
|
45
47
|
self
|
46
48
|
end
|
47
49
|
|
50
|
+
def join?; @join end
|
51
|
+
|
48
52
|
# Code block to execute on the original data
|
49
53
|
def transform(&block)
|
50
54
|
add_transformation block
|
51
55
|
self
|
52
56
|
end
|
53
57
|
|
58
|
+
# When mapping multiple values, enclose the values in the string provided
|
59
|
+
# to +enclose+.
|
60
|
+
def enclose(str)
|
61
|
+
@enclose = str
|
62
|
+
self
|
63
|
+
end
|
64
|
+
|
65
|
+
def enclose?; @enclose end
|
66
|
+
|
67
|
+
# When mapping multiple key/value pairs, replace existing keys with the new
|
68
|
+
# keys rather than joining.
|
69
|
+
def replace!
|
70
|
+
@replace = true
|
71
|
+
self
|
72
|
+
end
|
73
|
+
|
74
|
+
def replace?; @replace end
|
75
|
+
|
54
76
|
# Perform the mapping as defined for the current_query
|
55
77
|
def perform(current_query)
|
56
78
|
@current_query = current_query
|
@@ -75,12 +97,18 @@ module Endeca
|
|
75
97
|
@transformations ||= []
|
76
98
|
end
|
77
99
|
|
100
|
+
def transformations?
|
101
|
+
!transformations.empty?
|
102
|
+
end
|
103
|
+
|
78
104
|
def add_transformation(transformation = nil, &block)
|
79
105
|
transformations.push transformation if transformation
|
80
106
|
transformations.push block if block_given?
|
81
107
|
end
|
82
108
|
|
83
109
|
def perform_transformation
|
110
|
+
return unless transformations?
|
111
|
+
|
84
112
|
current_value = @current_query[@old_key]
|
85
113
|
transformations.each do |transformation|
|
86
114
|
current_value = transformation.call(current_value)
|
@@ -93,18 +121,23 @@ module Endeca
|
|
93
121
|
end
|
94
122
|
|
95
123
|
def perform_into
|
96
|
-
return unless
|
124
|
+
return unless into?
|
125
|
+
|
97
126
|
old_key, old_value = Array(@new_query).flatten
|
98
127
|
new_key, new_value = Array(@into).flatten
|
99
128
|
if new_value
|
100
129
|
@new_query = {new_key => old_key, new_value => old_value}
|
101
130
|
else
|
102
|
-
|
131
|
+
new_value = [old_key, old_value].compact.join(@with)
|
132
|
+
new_value = "#{@enclose}(#{new_value})" if enclose?
|
133
|
+
@new_query = {new_key => new_value}
|
103
134
|
end
|
104
135
|
end
|
105
136
|
|
106
137
|
def perform_join
|
107
|
-
return unless
|
138
|
+
return unless join?
|
139
|
+
return if replace?
|
140
|
+
|
108
141
|
@new_query.each do |key, value|
|
109
142
|
@new_query[key] = [@current_query[key], value].compact.join(@join)
|
110
143
|
end
|
data/spec/endeca/map_spec.rb
CHANGED
@@ -4,6 +4,7 @@ describe Endeca::Map do
|
|
4
4
|
before do
|
5
5
|
@query = {:foo => "bazz", :bizz => "somevalue"}
|
6
6
|
@map = Endeca::Map.new :foo, :bizz
|
7
|
+
|
7
8
|
end
|
8
9
|
|
9
10
|
describe ".perform" do
|
@@ -41,6 +42,26 @@ describe Endeca::Map do
|
|
41
42
|
end
|
42
43
|
end
|
43
44
|
|
45
|
+
describe "#perform_into" do
|
46
|
+
describe "with an enclosing string" do
|
47
|
+
map = Endeca::Map.new(:foo, :bar)
|
48
|
+
map.into(:bizz).enclose(:AND)
|
49
|
+
map.perform(:foo => :quux).should == {:bizz => 'AND(bar:quux)'}
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "with replace" do
|
53
|
+
map = Endeca::Map.new(:foo, :bar)
|
54
|
+
map.into(:bizz).replace!
|
55
|
+
map.perform(:foo => :quux, :bizz => :foobar).should == {:bizz => 'bar:quux'}
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "with enclose and replace" do
|
59
|
+
map = Endeca::Map.new(:foo, :bar)
|
60
|
+
map.into(:bizz).enclose(:AND).replace!
|
61
|
+
map.perform(:foo => :quux, :bizz => :foobar).should == {:bizz => 'AND(bar:quux)'}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
44
65
|
describe "#with" do
|
45
66
|
it "should assign the character to join keys to values with" do
|
46
67
|
@map.with('*').instance_variable_get(:@with).should == '*'
|
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.9.
|
4
|
+
version: 0.9.3
|
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-01-
|
13
|
+
date: 2009-01-26 00:00:00 -08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.
|
23
|
+
version: 2.3.0
|
24
24
|
version:
|
25
25
|
description: An Endeca client library for Ruby.
|
26
26
|
email: ""
|
@@ -30,8 +30,11 @@ extensions: []
|
|
30
30
|
|
31
31
|
extra_rdoc_files:
|
32
32
|
- History.txt
|
33
|
+
- Manifest.txt
|
33
34
|
- README.rdoc
|
35
|
+
- lib/.endeca.rb.swp
|
34
36
|
files:
|
37
|
+
- .gitignore
|
35
38
|
- History.txt
|
36
39
|
- Manifest.txt
|
37
40
|
- README.rdoc
|
@@ -39,6 +42,7 @@ files:
|
|
39
42
|
- endeca.gemspec
|
40
43
|
- example/benchmark.rb
|
41
44
|
- example/listing.rb
|
45
|
+
- lib/.endeca.rb.swp
|
42
46
|
- lib/class_to_proc.rb
|
43
47
|
- lib/core_ext.rb
|
44
48
|
- lib/endeca.rb
|