primedia-endeca 0.9.21 → 0.9.22
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/Rakefile +2 -0
- data/endeca.gemspec +11 -9
- data/lib/core_ext.rb +21 -1
- data/lib/endeca/request.rb +7 -2
- data/lib/endeca.rb +9 -3
- data/spec/endeca/document_spec.rb +0 -8
- data/spec/endeca/map_spec.rb +3 -3
- metadata +3 -8
- data/.gitignore +0 -7
- data/lib/endeca/breadcrumb.rb +0 -42
- data/lib/endeca/breadcrumbs.rb +0 -13
- data/spec/endeca/breadcrumb_spec.rb +0 -90
data/Rakefile
CHANGED
data/endeca.gemspec
CHANGED
@@ -1,32 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
1
3
|
Gem::Specification.new do |s|
|
2
4
|
s.name = %q{endeca}
|
3
|
-
s.version = "0.9.
|
5
|
+
s.version = "0.9.22"
|
4
6
|
|
5
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
8
|
s.authors = ["Rein Henrichs", "Andy Stone"]
|
7
|
-
s.date = %q{2009-02-
|
9
|
+
s.date = %q{2009-02-10}
|
8
10
|
s.description = %q{An Endeca client library for Ruby.}
|
9
11
|
s.email = %q{}
|
10
|
-
s.extra_rdoc_files = ["History.txt", "
|
11
|
-
s.files = ["
|
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"]
|
12
14
|
s.has_rdoc = true
|
13
15
|
s.homepage = %q{http://github.com/primedia/endeca-ruby}
|
14
16
|
s.rdoc_options = ["--main", "README.rdoc"]
|
15
17
|
s.require_paths = ["lib"]
|
16
18
|
s.rubyforge_project = %q{endeca}
|
17
|
-
s.rubygems_version = %q{1.
|
19
|
+
s.rubygems_version = %q{1.3.1}
|
18
20
|
s.summary = %q{An Endeca client library for Ruby}
|
19
21
|
|
20
22
|
if s.respond_to? :specification_version then
|
21
23
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
22
24
|
s.specification_version = 2
|
23
25
|
|
24
|
-
if
|
25
|
-
s.add_development_dependency(%q<bones>, [">= 2.
|
26
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
+
s.add_development_dependency(%q<bones>, [">= 2.2.0"])
|
26
28
|
else
|
27
|
-
s.add_dependency(%q<bones>, [">= 2.
|
29
|
+
s.add_dependency(%q<bones>, [">= 2.2.0"])
|
28
30
|
end
|
29
31
|
else
|
30
|
-
s.add_dependency(%q<bones>, [">= 2.
|
32
|
+
s.add_dependency(%q<bones>, [">= 2.2.0"])
|
31
33
|
end
|
32
34
|
end
|
data/lib/core_ext.rb
CHANGED
@@ -4,6 +4,26 @@ class Array
|
|
4
4
|
end
|
5
5
|
end
|
6
6
|
|
7
|
+
require 'benchmark'
|
8
|
+
class << Benchmark
|
9
|
+
# Earlier Ruby had a slower implementation.
|
10
|
+
if RUBY_VERSION < '1.8.7'
|
11
|
+
remove_method :realtime
|
12
|
+
|
13
|
+
def realtime
|
14
|
+
r0 = Time.now
|
15
|
+
yield
|
16
|
+
r1 = Time.now
|
17
|
+
r1.to_f - r0.to_f
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def ms
|
22
|
+
1000 * realtime { yield }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
7
27
|
class Class
|
8
28
|
def inherited_property(accessor, default = nil)
|
9
29
|
instance_eval <<-RUBY, __FILE__, __LINE__ + 1
|
@@ -16,7 +36,7 @@ class Class
|
|
16
36
|
|
17
37
|
def get_#{accessor}
|
18
38
|
return @#{accessor} if instance_variable_defined?(:@#{accessor})
|
19
|
-
superclass.send(
|
39
|
+
superclass.send(:get_#{accessor})
|
20
40
|
end
|
21
41
|
RUBY
|
22
42
|
|
data/lib/endeca/request.rb
CHANGED
@@ -30,9 +30,14 @@ module Endeca
|
|
30
30
|
def get_response #:nodoc:
|
31
31
|
http = Net::HTTP.new(uri.host, uri.port)
|
32
32
|
request = Net::HTTP::Get.new(uri.request_uri)
|
33
|
+
response = nil
|
33
34
|
|
34
|
-
Endeca.
|
35
|
-
|
35
|
+
Endeca.log "ENDECA ADAPTER REQUEST"
|
36
|
+
Endeca.log " parameters => " + @query.inspect
|
37
|
+
Endeca.log " uri => " + uri.to_s
|
38
|
+
Endeca.bm " request time => " do response = http.request(request) end
|
39
|
+
|
40
|
+
return response
|
36
41
|
end
|
37
42
|
|
38
43
|
# Raises exception Net::XXX (http error code) if an http error occured
|
data/lib/endeca.rb
CHANGED
@@ -7,6 +7,8 @@ require 'activesupport'
|
|
7
7
|
$:.unshift(File.dirname(__FILE__))
|
8
8
|
require 'core_ext'
|
9
9
|
require 'class_to_proc'
|
10
|
+
require 'endeca/logging'
|
11
|
+
require 'endeca/benchmarking'
|
10
12
|
require 'endeca/readers'
|
11
13
|
require 'endeca/map'
|
12
14
|
require 'endeca/transformer'
|
@@ -19,9 +21,11 @@ require 'endeca/document_collection'
|
|
19
21
|
require 'endeca/document'
|
20
22
|
|
21
23
|
module Endeca
|
24
|
+
extend Benchmarking
|
25
|
+
extend Logging
|
22
26
|
|
23
27
|
# :stopdoc:
|
24
|
-
VERSION = '0.9.
|
28
|
+
VERSION = '0.9.22'
|
25
29
|
# :startdoc:
|
26
30
|
|
27
31
|
# Returns the version string for the library.
|
@@ -32,12 +36,14 @@ module Endeca
|
|
32
36
|
|
33
37
|
# Set Endeca.debug = true to turn on query logging
|
34
38
|
class << self
|
35
|
-
attr_accessor :debug
|
36
39
|
attr_accessor :logger
|
40
|
+
attr_accessor :debug
|
41
|
+
attr_accessor :benchmark
|
37
42
|
end
|
38
43
|
|
39
|
-
self.debug = false
|
40
44
|
self.logger = Logger.new(STDOUT)
|
45
|
+
self.debug = false
|
46
|
+
self.benchmark = false
|
41
47
|
|
42
48
|
# Endeca URIs require colons to be escaped
|
43
49
|
def self.escape(str)
|
@@ -303,14 +303,6 @@ describe Endeca::Document do
|
|
303
303
|
|
304
304
|
@current_query_options = {:name => 'bar', :new_name => 'foo'}
|
305
305
|
end
|
306
|
-
|
307
|
-
it "should transform the new value with the current value" do
|
308
|
-
pending("Not sure of the use case.") do
|
309
|
-
expected_name = "foo|bar"
|
310
|
-
Endeca::Document.transform_query_options(@current_query_options).
|
311
|
-
should == {:new_name => expected_name}
|
312
|
-
end
|
313
|
-
end
|
314
306
|
end
|
315
307
|
end
|
316
308
|
end
|
data/spec/endeca/map_spec.rb
CHANGED
@@ -101,10 +101,10 @@ describe Endeca::Map do
|
|
101
101
|
end
|
102
102
|
|
103
103
|
describe "#transform" do
|
104
|
-
it "should execute the transformation block on the query"
|
105
|
-
map = Endeca::Map.new(:field_list)
|
106
|
-
map.into(:F).transform do |fields_array|
|
104
|
+
it "should execute the transformation block on the query" do
|
105
|
+
map = Endeca::Map.new(:field_list, :F).transform do |fields_array|
|
107
106
|
fields_array.collect{|field| "#{field.to_s}:1"}.join('|')
|
107
|
+
end
|
108
108
|
map.perform(:field_list => [:first_name, :last_name, :email]).
|
109
109
|
should == {:F => "first_name:1|last_name:1|email:1"}
|
110
110
|
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.22
|
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-10 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.2.0
|
24
24
|
version:
|
25
25
|
description: An Endeca client library for Ruby.
|
26
26
|
email: ""
|
@@ -30,10 +30,8 @@ extensions: []
|
|
30
30
|
|
31
31
|
extra_rdoc_files:
|
32
32
|
- History.txt
|
33
|
-
- Manifest.txt
|
34
33
|
- README.rdoc
|
35
34
|
files:
|
36
|
-
- .gitignore
|
37
35
|
- History.txt
|
38
36
|
- Manifest.txt
|
39
37
|
- README.rdoc
|
@@ -44,8 +42,6 @@ files:
|
|
44
42
|
- lib/class_to_proc.rb
|
45
43
|
- lib/core_ext.rb
|
46
44
|
- lib/endeca.rb
|
47
|
-
- lib/endeca/breadcrumb.rb
|
48
|
-
- lib/endeca/breadcrumbs.rb
|
49
45
|
- lib/endeca/dimension.rb
|
50
46
|
- lib/endeca/document.rb
|
51
47
|
- lib/endeca/document_collection.rb
|
@@ -55,7 +51,6 @@ files:
|
|
55
51
|
- lib/endeca/request.rb
|
56
52
|
- lib/endeca/transformer.rb
|
57
53
|
- spec/core_ext_spec.rb
|
58
|
-
- spec/endeca/breadcrumb_spec.rb
|
59
54
|
- spec/endeca/dimension_spec.rb
|
60
55
|
- spec/endeca/document_collection_spec.rb
|
61
56
|
- spec/endeca/document_spec.rb
|
data/.gitignore
DELETED
data/lib/endeca/breadcrumb.rb
DELETED
@@ -1,42 +0,0 @@
|
|
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/breadcrumbs.rb
DELETED
@@ -1,90 +0,0 @@
|
|
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
|