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 CHANGED
@@ -44,5 +44,7 @@ PROJ.url = 'http://github.com/primedia/endeca-ruby'
44
44
  PROJ.version = Endeca::VERSION
45
45
  PROJ.rubyforge.name = 'endeca'
46
46
  PROJ.readme_file = "README.rdoc"
47
+ PROJ.exclude << '.swp'
48
+ PROJ.exclude << '.gitignore'
47
49
 
48
50
  # EOF
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.21"
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-09}
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", "Manifest.txt", "README.rdoc"]
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"]
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.2.0}
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 current_version >= 3 then
25
- s.add_development_dependency(%q<bones>, [">= 2.3.1"])
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.3.1"])
29
+ s.add_dependency(%q<bones>, [">= 2.2.0"])
28
30
  end
29
31
  else
30
- s.add_dependency(%q<bones>, [">= 2.3.1"])
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(:#{accessor})
39
+ superclass.send(:get_#{accessor})
20
40
  end
21
41
  RUBY
22
42
 
@@ -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.logger.debug "ENDECA REQUEST: uri=#{uri}" if Endeca.debug
35
- http.request(request)
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.21'
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
@@ -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.21
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-09 00:00:00 -08:00
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.3.1
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
@@ -1,7 +0,0 @@
1
- *.swp
2
- .swn
3
- .swp
4
- .DS_Store
5
- coverage/
6
- pkg/
7
- doc/
@@ -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
@@ -1,13 +0,0 @@
1
- module Endeca
2
- module Breadcrumbs
3
- class TypeError < StandardError; end
4
-
5
- def self.include?(klass)
6
- self.const_defined?(klass)
7
- end
8
-
9
- def self.[](klass)
10
- self.const_get(klass)
11
- end
12
- end
13
- end
@@ -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