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 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