primedia-endeca 0.9.6 → 0.9.7

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 = "0.9.6"
5
+ s.version = "0.9.7"
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-29}
9
+ s.date = %q{2009-01-30}
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"]
@@ -4,17 +4,20 @@ module Endeca
4
4
  extend ClassToProc
5
5
  extend Readers
6
6
 
7
+ reader \
8
+ "DimValueName" => :name,
9
+ "SelectionLink" => :to_params
10
+
11
+ integer_reader \
12
+ "DimValueID" => :id,
13
+ "NumberofRecords" => :record_count
14
+
7
15
  attr_reader :raw
8
16
  def initialize(raw={})
9
17
  @raw=raw
10
18
  end
11
19
  alias_method :attributes, :raw
12
20
 
13
- reader "DimValueName" => :name
14
- reader "PivotLink" => :to_params
15
-
16
- integer_reader "DimValueID" => :id
17
-
18
21
  def inspect
19
22
  "#<#{self.class}=0x#{self.object_id.to_s(16)} id=#{id} name=#{name.inspect}>"
20
23
  end
@@ -67,10 +67,9 @@ module Endeca
67
67
  @refinements ||= (@raw['Refinements'] || []).map(&Refinement)
68
68
  end
69
69
 
70
- # Return the uri for the refinement by name
71
- def refinement_uri_by_name(name)
72
- refinement = refinements.find{|ref| ref.name.downcase == name.downcase}
73
- refinement.to_params if refinement
70
+ # Return the refinement by name
71
+ def refinement_by_name(name)
72
+ refinements.find{|ref| ref.name.downcase == name.downcase}
74
73
  end
75
74
 
76
75
  # List of array methods (that are not in +Object+) that need to be
@@ -3,6 +3,16 @@ module Endeca
3
3
  extend ClassToProc
4
4
  extend Readers
5
5
 
6
+ reader 'DimensionName' => :name,
7
+ 'ExpansionLink' => :expansion_link,
8
+ 'ContractionLink' => :contraction_link
9
+
10
+ integer_reader 'DimensionID' => :id
11
+
12
+ reader('DimensionValues' => :dimension_values) do |values|
13
+ values.map(&Dimension) if values
14
+ end
15
+
6
16
  attr_reader :raw
7
17
  def initialize(raw={})
8
18
  @raw = raw
@@ -20,10 +30,9 @@ module Endeca
20
30
  (@raw['Dimensions'] || []).first || {}
21
31
  end
22
32
 
23
- reader \
24
- 'DimensionName' => :name,
25
- 'ExpansionLink' => :to_params
33
+ def to_params
34
+ expansion_link || contraction_link
35
+ end
26
36
 
27
- integer_reader 'DimensionID' => :id
28
37
  end
29
38
  end
data/lib/endeca.rb CHANGED
@@ -18,7 +18,7 @@ require 'endeca/document'
18
18
  module Endeca
19
19
 
20
20
  # :stopdoc:
21
- VERSION = '0.9.6'
21
+ VERSION = '0.9.7'
22
22
  # :startdoc:
23
23
 
24
24
  # Returns the version string for the library.
@@ -95,8 +95,9 @@ describe Endeca::DocumentCollection do
95
95
  @document_collection.refinements.should == [Endeca::Refinement.new(@refinement)]
96
96
  end
97
97
 
98
- it "should return refinement uri by name" do
99
- @document_collection.refinement_uri_by_name('city').should == "N=&Ne=7"
98
+ it "should return refinement by name" do
99
+ @document_collection.refinement_by_name('city').
100
+ should == Endeca::Refinement.new(@refinement)
100
101
  end
101
102
  end
102
103
 
@@ -2,8 +2,25 @@ require File.join(File.dirname(__FILE__), %w[.. spec_helper])
2
2
 
3
3
  describe Endeca::Refinement do
4
4
  before do
5
- @refinement = Endeca::Refinement.new
5
+ @dimension_value = {
6
+ "DimValueID" => "4294965335",
7
+ "SelectionLink" => "N=4294965335&Ne=3",
8
+ "DimValueName" => "Winter Park",
9
+ "NumberofRecords" => "44"
10
+ }
11
+
12
+ dimensions = { "Dimensions" => [
13
+ {
14
+ "DimensionID" => "3",
15
+ "DimensionName" => "state",
16
+ "ContractionLink" => "N=",
17
+ "DimensionValues" => [@dimension_value]
18
+ }
19
+ ]
20
+ }
21
+ @refinement = Endeca::Refinement.new( dimensions )
6
22
  end
23
+
7
24
  describe '#==' do
8
25
  it "should compare refinements by id" do
9
26
  doc_1, doc_2 = Endeca::Refinement.new, Endeca::Refinement.new
@@ -35,4 +52,13 @@ describe Endeca::Refinement do
35
52
  @refinement.inspect.should include('name="A Name"')
36
53
  end
37
54
  end
55
+
56
+ it "should return to_params on the contraction link " do
57
+ @refinement.to_params.should == "N="
58
+ end
59
+
60
+ it "should return an array of dimensions for dimension_values" do
61
+ my_dimension = Endeca::Dimension.new(@dimension_value)
62
+ @refinement.dimension_values.should == [my_dimension]
63
+ end
38
64
  end
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.6
4
+ version: 0.9.7
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-29 00:00:00 -08:00
13
+ date: 2009-01-30 00:00:00 -08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency