primedia-endeca 0.9.23 → 0.9.24
Sign up to get free protection for your applications and to get access to all the features.
- 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
|