primedia-endeca 0.9.15 → 0.9.16
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/.gitignore +7 -0
- data/endeca.gemspec +8 -10
- data/lib/endeca/breadcrumb.rb +20 -11
- data/lib/endeca/breadcrumbs.rb +13 -0
- data/lib/endeca/dimension.rb +6 -1
- data/lib/endeca.rb +2 -1
- data/spec/endeca/breadcrumb_spec.rb +55 -23
- data/spec/endeca/dimension_spec.rb +26 -0
- metadata +5 -3
data/.gitignore
ADDED
data/endeca.gemspec
CHANGED
@@ -1,34 +1,32 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
1
|
Gem::Specification.new do |s|
|
4
2
|
s.name = %q{endeca}
|
5
|
-
s.version = "0.9.
|
3
|
+
s.version = "0.9.16"
|
6
4
|
|
7
5
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
6
|
s.authors = ["Rein Henrichs", "Andy Stone"]
|
9
|
-
s.date = %q{2009-02-
|
7
|
+
s.date = %q{2009-02-05}
|
10
8
|
s.description = %q{An Endeca client library for Ruby.}
|
11
9
|
s.email = %q{}
|
12
10
|
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", "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"]
|
11
|
+
s.files = [".gitignore", "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/breadcrumbs.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
12
|
s.has_rdoc = true
|
15
13
|
s.homepage = %q{http://github.com/primedia/endeca-ruby}
|
16
14
|
s.rdoc_options = ["--main", "README.rdoc"]
|
17
15
|
s.require_paths = ["lib"]
|
18
16
|
s.rubyforge_project = %q{endeca-ruby}
|
19
|
-
s.rubygems_version = %q{1.
|
17
|
+
s.rubygems_version = %q{1.2.0}
|
20
18
|
s.summary = %q{An Endeca client library for Ruby}
|
21
19
|
|
22
20
|
if s.respond_to? :specification_version then
|
23
21
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
22
|
s.specification_version = 2
|
25
23
|
|
26
|
-
if
|
27
|
-
s.add_development_dependency(%q<bones>, [">= 2.
|
24
|
+
if current_version >= 3 then
|
25
|
+
s.add_development_dependency(%q<bones>, [">= 2.3.1"])
|
28
26
|
else
|
29
|
-
s.add_dependency(%q<bones>, [">= 2.
|
27
|
+
s.add_dependency(%q<bones>, [">= 2.3.1"])
|
30
28
|
end
|
31
29
|
else
|
32
|
-
s.add_dependency(%q<bones>, [">= 2.
|
30
|
+
s.add_dependency(%q<bones>, [">= 2.3.1"])
|
33
31
|
end
|
34
32
|
end
|
data/lib/endeca/breadcrumb.rb
CHANGED
@@ -1,21 +1,34 @@
|
|
1
1
|
module Endeca
|
2
|
+
|
2
3
|
class Breadcrumb
|
3
|
-
extend ClassToProc
|
4
4
|
extend Readers
|
5
5
|
|
6
|
-
|
7
|
-
'
|
8
|
-
|
9
|
-
'DimensionRemovalLink' => :to_params
|
6
|
+
def self.create(raw)
|
7
|
+
name = raw['Type']
|
8
|
+
breadcrumb_class = self
|
10
9
|
|
11
|
-
|
12
|
-
|
10
|
+
if name
|
11
|
+
unless Breadcrumbs.include?(name)
|
12
|
+
raise Breadcrumbs::TypeError, "Unknown breadcrumb type: #{name.inspect}"
|
13
|
+
end
|
14
|
+
breadcrumb_class = Breadcrumbs[name]
|
15
|
+
end
|
16
|
+
|
17
|
+
breadcrumb_class.new(raw)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.to_proc
|
21
|
+
proc(&method(:create))
|
13
22
|
end
|
14
23
|
|
15
24
|
attr_reader :raw
|
16
25
|
def initialize(raw={})
|
17
26
|
@raw = raw
|
18
27
|
end
|
28
|
+
alias_method :attributes, :raw
|
29
|
+
|
30
|
+
reader 'Type' => :type
|
31
|
+
def name; '' end
|
19
32
|
|
20
33
|
def ==(other)
|
21
34
|
name == other.name
|
@@ -25,9 +38,5 @@ module Endeca
|
|
25
38
|
"#<#{self.class}=0x#{self.object_id.to_s(16)} name=#{name.inspect}>"
|
26
39
|
end
|
27
40
|
|
28
|
-
def attributes
|
29
|
-
(@raw['Dimensions'] || []).first || {}
|
30
|
-
end
|
31
|
-
|
32
41
|
end
|
33
42
|
end
|
data/lib/endeca/dimension.rb
CHANGED
@@ -6,7 +6,8 @@ module Endeca
|
|
6
6
|
|
7
7
|
reader \
|
8
8
|
"DimValueName" => :name,
|
9
|
-
"SelectionLink" => :
|
9
|
+
"SelectionLink" => :selection_link,
|
10
|
+
"RemovalLink" => :removal_link
|
10
11
|
|
11
12
|
integer_reader \
|
12
13
|
"DimValueID" => :id,
|
@@ -17,6 +18,10 @@ module Endeca
|
|
17
18
|
@raw=raw
|
18
19
|
end
|
19
20
|
alias_method :attributes, :raw
|
21
|
+
|
22
|
+
def to_params
|
23
|
+
selection_link || removal_link
|
24
|
+
end
|
20
25
|
|
21
26
|
def inspect
|
22
27
|
"#<#{self.class}=0x#{self.object_id.to_s(16)} id=#{id} name=#{name.inspect}>"
|
data/lib/endeca.rb
CHANGED
@@ -12,6 +12,7 @@ require 'endeca/map'
|
|
12
12
|
require 'endeca/transformer'
|
13
13
|
require 'endeca/dimension'
|
14
14
|
require 'endeca/refinement'
|
15
|
+
require 'endeca/breadcrumbs'
|
15
16
|
require 'endeca/breadcrumb'
|
16
17
|
require 'endeca/request'
|
17
18
|
require 'endeca/document_collection'
|
@@ -20,7 +21,7 @@ require 'endeca/document'
|
|
20
21
|
module Endeca
|
21
22
|
|
22
23
|
# :stopdoc:
|
23
|
-
VERSION = '0.9.
|
24
|
+
VERSION = '0.9.16'
|
24
25
|
# :startdoc:
|
25
26
|
|
26
27
|
# Returns the version string for the library.
|
@@ -1,23 +1,54 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
2
2
|
|
3
|
+
module Endeca
|
4
|
+
module Breadcrumbs
|
5
|
+
class Navigation < Endeca::Breadcrumb
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
3
10
|
describe Endeca::Breadcrumb do
|
4
11
|
before do
|
5
12
|
@dimension_value = {
|
6
|
-
"DimValueID"
|
7
|
-
"RemovalLink"
|
13
|
+
"DimValueID" => "4343565665",
|
14
|
+
"RemovalLink" => "N=",
|
8
15
|
"DimValueName" => "Apartment"
|
9
16
|
}
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
"DimensionValues" => [@dimension_value]
|
17
|
-
}
|
18
|
-
]
|
17
|
+
|
18
|
+
@navigation_hash = {
|
19
|
+
"Type" => "Navigation",
|
20
|
+
"DimensionName" => "property type",
|
21
|
+
"DimensionRemovalLink" => "N=",
|
22
|
+
"DimensionValues" => [@dimension_value]
|
19
23
|
}
|
20
|
-
|
24
|
+
|
25
|
+
@dimensions = { "Dimensions" => [@navigation_hash] }
|
26
|
+
@breadcrumb = Endeca::Breadcrumb.new( @dimensions )
|
27
|
+
end
|
28
|
+
|
29
|
+
describe ".create" do
|
30
|
+
before do
|
31
|
+
@navigation = Endeca::Breadcrumb.create(@navigation_hash)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should create a breadcrumb of the appropriate type" do
|
35
|
+
Endeca::Breadcrumb.create(@navigation_hash).
|
36
|
+
should be_a_kind_of(Endeca::Breadcrumbs::Navigation)
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "with an invalid type" do
|
40
|
+
it do
|
41
|
+
creating_invalid_breadcrumb = lambda{Endeca::Breadcrumb.create({'Type' => 'Invalid'})}
|
42
|
+
creating_invalid_breadcrumb.should raise_error(Endeca::Breadcrumbs::TypeError)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe ".to_proc" do
|
48
|
+
it "should call create" do
|
49
|
+
Endeca::Breadcrumb.should_receive(:create).with(:obj)
|
50
|
+
[:obj].map(&Endeca::Breadcrumb)
|
51
|
+
end
|
21
52
|
end
|
22
53
|
|
23
54
|
describe '#==' do
|
@@ -34,25 +65,26 @@ describe Endeca::Breadcrumb do
|
|
34
65
|
|
35
66
|
describe '#inspect' do
|
36
67
|
it "includes the class name" do
|
37
|
-
@
|
68
|
+
@breadcrumb.inspect.should include(Endeca::Breadcrumb.name)
|
38
69
|
end
|
39
70
|
|
40
71
|
it "includes the hex string of the object id" do
|
41
|
-
@
|
72
|
+
@breadcrumb.inspect.should include("0x#{@breadcrumb.object_id.to_s(16)}")
|
42
73
|
end
|
43
74
|
|
44
75
|
it "includes the inspected name" do
|
45
|
-
@
|
46
|
-
@
|
76
|
+
@breadcrumb.stub!(:name).and_return('A Name')
|
77
|
+
@breadcrumb.inspect.should include('name="A Name"')
|
47
78
|
end
|
48
79
|
end
|
49
|
-
|
50
|
-
|
51
|
-
|
80
|
+
|
81
|
+
describe "#type" do
|
82
|
+
it "returns the Type value" do
|
83
|
+
Endeca::Breadcrumb.new('Type' => 'AType').type.should == 'AType'
|
84
|
+
end
|
52
85
|
end
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
@Breadcrumb.dimension_values.should == [my_dimension]
|
86
|
+
|
87
|
+
describe "#name" do
|
88
|
+
it {Endeca::Breadcrumb.new.name.should == ''}
|
57
89
|
end
|
58
90
|
end
|
@@ -8,6 +8,32 @@ describe Endeca::Dimension do
|
|
8
8
|
dimension.raw.should == :raw
|
9
9
|
end
|
10
10
|
end
|
11
|
+
|
12
|
+
describe "#to_params" do
|
13
|
+
before do
|
14
|
+
@dimension = Endeca::Dimension.new
|
15
|
+
@selection = mock('selection link')
|
16
|
+
@removal = mock('removal link')
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "with a selection link" do
|
20
|
+
it "should return the selection link" do
|
21
|
+
@dimension.stub!(:selection_link => @selection_link)
|
22
|
+
@dimension.stub!(:removal_link => nil)
|
23
|
+
|
24
|
+
@dimension.to_params.should == @selection_link
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "with a removal link" do
|
29
|
+
it "should return the selection link" do
|
30
|
+
@dimension.stub!(:selection_link => nil)
|
31
|
+
@dimension.stub!(:removal_link => @removal_link)
|
32
|
+
|
33
|
+
@dimension.to_params.should == @removal_link
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
11
37
|
|
12
38
|
describe "#inspect" do
|
13
39
|
before 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: 0.9.
|
4
|
+
version: 0.9.16
|
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-02-
|
13
|
+
date: 2009-02-05 00:00:00 -08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.
|
23
|
+
version: 2.3.1
|
24
24
|
version:
|
25
25
|
description: An Endeca client library for Ruby.
|
26
26
|
email: ""
|
@@ -33,6 +33,7 @@ extra_rdoc_files:
|
|
33
33
|
- Manifest.txt
|
34
34
|
- README.rdoc
|
35
35
|
files:
|
36
|
+
- .gitignore
|
36
37
|
- History.txt
|
37
38
|
- Manifest.txt
|
38
39
|
- README.rdoc
|
@@ -44,6 +45,7 @@ files:
|
|
44
45
|
- lib/core_ext.rb
|
45
46
|
- lib/endeca.rb
|
46
47
|
- lib/endeca/breadcrumb.rb
|
48
|
+
- lib/endeca/breadcrumbs.rb
|
47
49
|
- lib/endeca/dimension.rb
|
48
50
|
- lib/endeca/document.rb
|
49
51
|
- lib/endeca/document_collection.rb
|