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