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 CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{endeca}
5
- s.version = "1.0.0"
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-21}
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
- @new_query = {new_key => old_key, new_value => old_value}
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
@@ -28,7 +28,7 @@ module Endeca
28
28
  extend Logging
29
29
 
30
30
  # :stopdoc:
31
- VERSION = '1.0.0'
31
+ VERSION = '1.1.0'
32
32
  # :startdoc:
33
33
 
34
34
  # Returns the version string for the library.
@@ -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.0.0
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-21 00:00:00 -07:00
13
+ date: 2009-04-22 00:00:00 -07:00
14
14
  default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
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: []