primedia-endeca 0.9.2 → 0.9.3
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/.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
|