primedia-endeca 0.9.7 → 0.9.8
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 +3 -3
- data/lib/endeca/breadcrumb.rb +33 -0
- data/lib/endeca/document_collection.rb +5 -0
- data/lib/endeca.rb +2 -1
- data/spec/endeca/breadcrumb_spec.rb +58 -0
- data/spec/endeca/document_collection_spec.rb +12 -1
- metadata +4 -2
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.8"
|
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-
|
9
|
+
s.date = %q{2009-02-02}
|
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"]
|
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",
|
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/breadcrumb.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/breadcrumb_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"]
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Endeca
|
2
|
+
class Breadcrumb
|
3
|
+
extend ClassToProc
|
4
|
+
extend Readers
|
5
|
+
|
6
|
+
reader \
|
7
|
+
'DimensionName' => :name,
|
8
|
+
'Type' => :type,
|
9
|
+
'DimensionRemovalLink' => :to_params
|
10
|
+
|
11
|
+
reader('DimensionValues' => :dimension_values) do |values|
|
12
|
+
values.map(&Dimension) if values
|
13
|
+
end
|
14
|
+
|
15
|
+
attr_reader :raw
|
16
|
+
def initialize(raw={})
|
17
|
+
@raw = raw
|
18
|
+
end
|
19
|
+
|
20
|
+
def ==(other)
|
21
|
+
name == other.name
|
22
|
+
end
|
23
|
+
|
24
|
+
def inspect
|
25
|
+
"#<#{self.class}=0x#{self.object_id.to_s(16)} name=#{name.inspect}>"
|
26
|
+
end
|
27
|
+
|
28
|
+
def attributes
|
29
|
+
(@raw['Dimensions'] || []).first || {}
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
@@ -67,6 +67,11 @@ module Endeca
|
|
67
67
|
@refinements ||= (@raw['Refinements'] || []).map(&Refinement)
|
68
68
|
end
|
69
69
|
|
70
|
+
# The collection of Breadcrumb objects for the collection.
|
71
|
+
def breadcrumbs
|
72
|
+
@breadcrumbs ||= (@raw['Breadcrumbs'] || []).map(&Breadcrumb)
|
73
|
+
end
|
74
|
+
|
70
75
|
# Return the refinement by name
|
71
76
|
def refinement_by_name(name)
|
72
77
|
refinements.find{|ref| ref.name.downcase == name.downcase}
|
data/lib/endeca.rb
CHANGED
@@ -11,6 +11,7 @@ require 'endeca/map'
|
|
11
11
|
require 'endeca/transformer'
|
12
12
|
require 'endeca/dimension'
|
13
13
|
require 'endeca/refinement'
|
14
|
+
require 'endeca/breadcrumb'
|
14
15
|
require 'endeca/request'
|
15
16
|
require 'endeca/document_collection'
|
16
17
|
require 'endeca/document'
|
@@ -18,7 +19,7 @@ require 'endeca/document'
|
|
18
19
|
module Endeca
|
19
20
|
|
20
21
|
# :stopdoc:
|
21
|
-
VERSION = '0.9.
|
22
|
+
VERSION = '0.9.8'
|
22
23
|
# :startdoc:
|
23
24
|
|
24
25
|
# Returns the version string for the library.
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
2
|
+
|
3
|
+
describe Endeca::Breadcrumb do
|
4
|
+
before do
|
5
|
+
@dimension_value = {
|
6
|
+
"DimValueID" => "4343565665",
|
7
|
+
"RemovalLink" => "N=",
|
8
|
+
"DimValueName" => "Apartment"
|
9
|
+
}
|
10
|
+
|
11
|
+
dimensions = { "Dimensions" => [
|
12
|
+
{
|
13
|
+
"Type" => "Navigation",
|
14
|
+
"DimensionName" => "property type",
|
15
|
+
"DimensionRemovalLink" => "N=",
|
16
|
+
"DimensionValues" => [@dimension_value]
|
17
|
+
}
|
18
|
+
]
|
19
|
+
}
|
20
|
+
@Breadcrumb = Endeca::Breadcrumb.new( dimensions )
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#==' do
|
24
|
+
it "should compare Breadcrumbs by name" do
|
25
|
+
doc_1, doc_2 = Endeca::Breadcrumb.new, Endeca::Breadcrumb.new
|
26
|
+
doc_1.stub!(:name).and_return('property type')
|
27
|
+
doc_2.stub!(:name).and_return('property type')
|
28
|
+
(doc_1 == doc_2).should be_true
|
29
|
+
|
30
|
+
doc_2.stub!(:name).and_return('something else')
|
31
|
+
(doc_1 == doc_2).should be_false
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#inspect' do
|
36
|
+
it "includes the class name" do
|
37
|
+
@Breadcrumb.inspect.should include(Endeca::Breadcrumb.name)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "includes the hex string of the object id" do
|
41
|
+
@Breadcrumb.inspect.should include("0x#{@Breadcrumb.object_id.to_s(16)}")
|
42
|
+
end
|
43
|
+
|
44
|
+
it "includes the inspected name" do
|
45
|
+
@Breadcrumb.stub!(:name).and_return('A Name')
|
46
|
+
@Breadcrumb.inspect.should include('name="A Name"')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should return to_params on the dimension removal link " do
|
51
|
+
@Breadcrumb.to_params.should == "N="
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should return an array of dimensions for dimension_values" do
|
55
|
+
my_dimension = Endeca::Dimension.new(@dimension_value)
|
56
|
+
@Breadcrumb.dimension_values.should == [my_dimension]
|
57
|
+
end
|
58
|
+
end
|
@@ -8,11 +8,16 @@ describe Endeca::DocumentCollection do
|
|
8
8
|
"ExpansionLink" => "N=&Ne=7",
|
9
9
|
"DimensionName" => "city",
|
10
10
|
"DimensionID" => "7" } ] }
|
11
|
+
@breadcrumb = { "Dimensions" => [ {
|
12
|
+
"DimensionName" => "property type",
|
13
|
+
"DimensionRemovalLink" => "N=",
|
14
|
+
"Type" => "Navigation" } ] }
|
11
15
|
|
12
16
|
@raw = {
|
13
17
|
'Records' => [@document],
|
14
18
|
'MetaInfo' => @metainfo,
|
15
|
-
'Refinements' => [@refinement]
|
19
|
+
'Refinements' => [@refinement],
|
20
|
+
'Breadcrumbs' => [@breadcrumb]
|
16
21
|
}
|
17
22
|
@document_collection = Endeca::DocumentCollection.new(@raw)
|
18
23
|
end
|
@@ -101,6 +106,12 @@ describe Endeca::DocumentCollection do
|
|
101
106
|
end
|
102
107
|
end
|
103
108
|
|
109
|
+
describe '#breadcrumbs' do
|
110
|
+
it 'should return a collection of Breadcrumb objects' do
|
111
|
+
@document_collection.breadcrumbs.should == [Endeca::Breadcrumb.new(@breadcrumb)]
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
104
115
|
describe "#each" do
|
105
116
|
it "should yield to the documents" do
|
106
117
|
block = lambda{1}
|
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.8
|
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-
|
13
|
+
date: 2009-02-02 00:00:00 -08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -43,6 +43,7 @@ files:
|
|
43
43
|
- lib/class_to_proc.rb
|
44
44
|
- lib/core_ext.rb
|
45
45
|
- lib/endeca.rb
|
46
|
+
- lib/endeca/breadcrumb.rb
|
46
47
|
- lib/endeca/dimension.rb
|
47
48
|
- lib/endeca/document.rb
|
48
49
|
- lib/endeca/document_collection.rb
|
@@ -52,6 +53,7 @@ files:
|
|
52
53
|
- lib/endeca/request.rb
|
53
54
|
- lib/endeca/transformer.rb
|
54
55
|
- spec/core_ext_spec.rb
|
56
|
+
- spec/endeca/breadcrumb_spec.rb
|
55
57
|
- spec/endeca/dimension_spec.rb
|
56
58
|
- spec/endeca/document_collection_spec.rb
|
57
59
|
- spec/endeca/document_spec.rb
|