primedia-endeca 0.9.23 → 0.9.24
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/Manifest.txt +6 -0
- data/endeca.gemspec +2 -2
- data/lib/endeca/benchmarking.rb +18 -0
- data/lib/endeca/breadcrumb.rb +42 -0
- data/lib/endeca/breadcrumbs.rb +13 -0
- data/lib/endeca/logging.rb +9 -0
- data/lib/endeca.rb +1 -1
- data/spec/endeca/benchmarking_spec.rb +22 -0
- data/spec/endeca/breadcrumb_spec.rb +90 -0
- metadata +7 -1
data/Manifest.txt
CHANGED
@@ -8,15 +8,21 @@ example/listing.rb
|
|
8
8
|
lib/class_to_proc.rb
|
9
9
|
lib/core_ext.rb
|
10
10
|
lib/endeca.rb
|
11
|
+
lib/endeca/benchmarking.rb
|
12
|
+
lib/endeca/breadcrumb.rb
|
13
|
+
lib/endeca/breadcrumbs.rb
|
11
14
|
lib/endeca/dimension.rb
|
12
15
|
lib/endeca/document.rb
|
13
16
|
lib/endeca/document_collection.rb
|
17
|
+
lib/endeca/logging.rb
|
14
18
|
lib/endeca/map.rb
|
15
19
|
lib/endeca/readers.rb
|
16
20
|
lib/endeca/refinement.rb
|
17
21
|
lib/endeca/request.rb
|
18
22
|
lib/endeca/transformer.rb
|
19
23
|
spec/core_ext_spec.rb
|
24
|
+
spec/endeca/benchmarking_spec.rb
|
25
|
+
spec/endeca/breadcrumb_spec.rb
|
20
26
|
spec/endeca/dimension_spec.rb
|
21
27
|
spec/endeca/document_collection_spec.rb
|
22
28
|
spec/endeca/document_spec.rb
|
data/endeca.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
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.24"
|
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"]
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.description = %q{An Endeca client library for Ruby.}
|
11
11
|
s.email = %q{}
|
12
12
|
s.extra_rdoc_files = ["History.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/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/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"]
|
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/benchmarking.rb", "lib/endeca/breadcrumb.rb", "lib/endeca/breadcrumbs.rb", "lib/endeca/dimension.rb", "lib/endeca/document.rb", "lib/endeca/document_collection.rb", "lib/endeca/logging.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/benchmarking_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,18 @@
|
|
1
|
+
require 'benchmark'
|
2
|
+
|
3
|
+
module Endeca
|
4
|
+
module Benchmarking
|
5
|
+
# Log and benchmark the workings of a single block. Will only be called if
|
6
|
+
# Endeca.debug and Endeca.benchmark are true.
|
7
|
+
def bm(title)
|
8
|
+
if Endeca.debug && Endeca.logger && Endeca.benchmark
|
9
|
+
result = nil
|
10
|
+
ms = ::Benchmark.ms { result = yield }
|
11
|
+
Endeca.logger.debug("#{title}#{'%.1f' % ms}ms")
|
12
|
+
result
|
13
|
+
else
|
14
|
+
yield
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Endeca
|
2
|
+
|
3
|
+
class Breadcrumb
|
4
|
+
extend Readers
|
5
|
+
|
6
|
+
def self.create(raw)
|
7
|
+
name = raw['Type']
|
8
|
+
breadcrumb_class = self
|
9
|
+
|
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))
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_reader :raw
|
25
|
+
def initialize(raw={})
|
26
|
+
@raw = raw
|
27
|
+
end
|
28
|
+
alias_method :attributes, :raw
|
29
|
+
|
30
|
+
reader 'Type' => :type
|
31
|
+
def name; '' end
|
32
|
+
|
33
|
+
def ==(other)
|
34
|
+
name == other.name
|
35
|
+
end
|
36
|
+
|
37
|
+
def inspect
|
38
|
+
"#<#{self.class}=0x#{self.object_id.to_s(16)} name=#{name.inspect}>"
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
data/lib/endeca.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
2
|
+
|
3
|
+
describe Endeca::Benchmarking do
|
4
|
+
class Helper
|
5
|
+
extend Endeca::Benchmarking
|
6
|
+
end
|
7
|
+
describe "#benchmark" do
|
8
|
+
before do
|
9
|
+
@logger = mock('Logger')
|
10
|
+
|
11
|
+
Endeca.stub!(:logger).and_return(@logger)
|
12
|
+
Endeca.stub!(:debug => true, :benchmark => true)
|
13
|
+
|
14
|
+
Benchmark.stub!(:ms => 1)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should log the title and the time to the Endeca logger" do
|
18
|
+
@logger.should_receive(:debug).with("title => 1.0ms")
|
19
|
+
Endeca.bm("title => "){ 1 }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
2
|
+
|
3
|
+
module Endeca
|
4
|
+
module Breadcrumbs
|
5
|
+
class Navigation < Endeca::Breadcrumb
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe Endeca::Breadcrumb do
|
11
|
+
before do
|
12
|
+
@dimension_value = {
|
13
|
+
"DimValueID" => "4343565665",
|
14
|
+
"RemovalLink" => "N=",
|
15
|
+
"DimValueName" => "Apartment"
|
16
|
+
}
|
17
|
+
|
18
|
+
@navigation_hash = {
|
19
|
+
"Type" => "Navigation",
|
20
|
+
"DimensionName" => "property type",
|
21
|
+
"DimensionRemovalLink" => "N=",
|
22
|
+
"DimensionValues" => [@dimension_value]
|
23
|
+
}
|
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
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '#==' do
|
55
|
+
it "should compare Breadcrumbs by name" do
|
56
|
+
doc_1, doc_2 = Endeca::Breadcrumb.new, Endeca::Breadcrumb.new
|
57
|
+
doc_1.stub!(:name).and_return('property type')
|
58
|
+
doc_2.stub!(:name).and_return('property type')
|
59
|
+
(doc_1 == doc_2).should be_true
|
60
|
+
|
61
|
+
doc_2.stub!(:name).and_return('something else')
|
62
|
+
(doc_1 == doc_2).should be_false
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe '#inspect' do
|
67
|
+
it "includes the class name" do
|
68
|
+
@breadcrumb.inspect.should include(Endeca::Breadcrumb.name)
|
69
|
+
end
|
70
|
+
|
71
|
+
it "includes the hex string of the object id" do
|
72
|
+
@breadcrumb.inspect.should include("0x#{@breadcrumb.object_id.to_s(16)}")
|
73
|
+
end
|
74
|
+
|
75
|
+
it "includes the inspected name" do
|
76
|
+
@breadcrumb.stub!(:name).and_return('A Name')
|
77
|
+
@breadcrumb.inspect.should include('name="A Name"')
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "#type" do
|
82
|
+
it "returns the Type value" do
|
83
|
+
Endeca::Breadcrumb.new('Type' => 'AType').type.should == 'AType'
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "#name" do
|
88
|
+
it {Endeca::Breadcrumb.new.name.should == ''}
|
89
|
+
end
|
90
|
+
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.
|
4
|
+
version: 0.9.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rein Henrichs
|
@@ -42,15 +42,21 @@ files:
|
|
42
42
|
- lib/class_to_proc.rb
|
43
43
|
- lib/core_ext.rb
|
44
44
|
- lib/endeca.rb
|
45
|
+
- lib/endeca/benchmarking.rb
|
46
|
+
- lib/endeca/breadcrumb.rb
|
47
|
+
- lib/endeca/breadcrumbs.rb
|
45
48
|
- lib/endeca/dimension.rb
|
46
49
|
- lib/endeca/document.rb
|
47
50
|
- lib/endeca/document_collection.rb
|
51
|
+
- lib/endeca/logging.rb
|
48
52
|
- lib/endeca/map.rb
|
49
53
|
- lib/endeca/readers.rb
|
50
54
|
- lib/endeca/refinement.rb
|
51
55
|
- lib/endeca/request.rb
|
52
56
|
- lib/endeca/transformer.rb
|
53
57
|
- spec/core_ext_spec.rb
|
58
|
+
- spec/endeca/benchmarking_spec.rb
|
59
|
+
- spec/endeca/breadcrumb_spec.rb
|
54
60
|
- spec/endeca/dimension_spec.rb
|
55
61
|
- spec/endeca/document_collection_spec.rb
|
56
62
|
- spec/endeca/document_spec.rb
|