primedia-endeca 1.0.0 → 1.1.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 +2 -15
- data/lib/endeca/map.rb +31 -1
- data/lib/endeca.rb +1 -1
- data/spec/endeca/document_spec.rb +9 -0
- metadata +4 -13
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 = "1.
|
5
|
+
s.version = "1.1.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-
|
9
|
+
s.date = %q{2009-04-22}
|
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"]
|
@@ -18,17 +18,4 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.rubyforge_project = %q{endeca}
|
19
19
|
s.rubygems_version = %q{1.3.1}
|
20
20
|
s.summary = %q{An Endeca client library for Ruby}
|
21
|
-
|
22
|
-
if s.respond_to? :specification_version then
|
23
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
-
s.specification_version = 2
|
25
|
-
|
26
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
-
s.add_development_dependency(%q<bones>, [">= 2.4.0"])
|
28
|
-
else
|
29
|
-
s.add_dependency(%q<bones>, [">= 2.4.0"])
|
30
|
-
end
|
31
|
-
else
|
32
|
-
s.add_dependency(%q<bones>, [">= 2.4.0"])
|
33
|
-
end
|
34
21
|
end
|
data/lib/endeca/map.rb
CHANGED
@@ -39,6 +39,19 @@ module Endeca
|
|
39
39
|
|
40
40
|
def into?; @into end
|
41
41
|
|
42
|
+
# Mapping actually resides in another key, value pair. Uses Endeca default
|
43
|
+
# join characters (can be overridden by specifying +with+ and/or +join+).
|
44
|
+
#
|
45
|
+
# Example:
|
46
|
+
# map(:city => :propertycity).split_into(:ntk => :ntt)
|
47
|
+
#
|
48
|
+
# Document.all(:city => 'Atlanta, New York, Los Angeles') =>
|
49
|
+
# ?ntk=propercity|propertycity|propertycity&ntt=>Atlanta|New York|Los Angeles
|
50
|
+
def split_into(hash, split_value = ',')
|
51
|
+
into(hash)
|
52
|
+
@split_value = split_value
|
53
|
+
end
|
54
|
+
|
42
55
|
# When mapping multiple key/value pairs to a single parameter value (via
|
43
56
|
# +into+), use this character to join a key with a value.
|
44
57
|
def with(character)
|
@@ -131,8 +144,14 @@ module Endeca
|
|
131
144
|
|
132
145
|
old_key, old_value = Array(@new_query).flatten
|
133
146
|
new_key, new_value = Array(@into).flatten
|
147
|
+
|
148
|
+
#puts "===> old_key: #{old_key} \n old_value: #{old_value} \n new_key: #{new_key} \n new_value: #{new_value}"
|
134
149
|
if new_value
|
135
|
-
@
|
150
|
+
if @split_value
|
151
|
+
@new_query = perform_split(old_key, old_value, new_key, new_value)
|
152
|
+
else
|
153
|
+
@new_query = {new_key => old_key, new_value => old_value}
|
154
|
+
end
|
136
155
|
else
|
137
156
|
new_value = [old_key, old_value].compact.join(@with)
|
138
157
|
new_value = "#{@enclose}(#{new_value})" if enclose?
|
@@ -151,6 +170,17 @@ module Endeca
|
|
151
170
|
|
152
171
|
protected
|
153
172
|
|
173
|
+
def perform_split(old_key, old_value, new_key, new_value)
|
174
|
+
key = []
|
175
|
+
value = []
|
176
|
+
old_value.split(@split_value).each do |val|
|
177
|
+
key << old_key
|
178
|
+
value << val
|
179
|
+
end
|
180
|
+
|
181
|
+
{new_key => key.join(@join), new_value => value.join(@join)}
|
182
|
+
end
|
183
|
+
|
154
184
|
def equality_elements # :nodoc:
|
155
185
|
[@old_key, @new_key, @join, @with, @join]
|
156
186
|
end
|
data/lib/endeca.rb
CHANGED
@@ -40,6 +40,15 @@ describe Endeca::Document do
|
|
40
40
|
should include(Endeca::Document.transform_query_options(:limit => 10, :expand_refinements => 1))
|
41
41
|
end
|
42
42
|
end
|
43
|
+
|
44
|
+
describe "with splitting values" do
|
45
|
+
it "should duplicate the key for each value passed" do
|
46
|
+
Endeca::Document.map(:features => :feature_cat).split_into(:ntk => :ntt)
|
47
|
+
[
|
48
|
+
{:ntk=>"feature_cat|feature_cat", :ntt=>"Driveway|Alarm"}
|
49
|
+
].should include(Endeca::Document.transform_query_options(:features => 'Driveway,Alarm'))
|
50
|
+
end
|
51
|
+
end
|
43
52
|
end
|
44
53
|
|
45
54
|
describe '.find' do
|
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: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rein Henrichs
|
@@ -10,19 +10,10 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2009-04-
|
13
|
+
date: 2009-04-22 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
|
-
dependencies:
|
16
|
-
|
17
|
-
name: bones
|
18
|
-
type: :development
|
19
|
-
version_requirement:
|
20
|
-
version_requirements: !ruby/object:Gem::Requirement
|
21
|
-
requirements:
|
22
|
-
- - ">="
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 2.4.0
|
25
|
-
version:
|
15
|
+
dependencies: []
|
16
|
+
|
26
17
|
description: An Endeca client library for Ruby.
|
27
18
|
email: ""
|
28
19
|
executables: []
|