primedia-endeca 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []