xapian-rack 1.2.3.1 → 1.2.3.3

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.
@@ -27,7 +27,7 @@ module Xapian
27
27
  def initialize(app, options = {})
28
28
  @app = app
29
29
 
30
- @logger = options[:logger] || Logger.new($stdout)
30
+ @logger = options[:logger] || Logger.new($stderr)
31
31
  end
32
32
 
33
33
  def call(name, &block)
@@ -75,17 +75,22 @@ module Xapian
75
75
  @database_path = options[:database]
76
76
  @database = nil
77
77
 
78
+ unless options[:logger]
79
+ options[:logger] = Logger.new($stderr)
80
+ options[:logger].level = Logger::DEBUG
81
+ end
82
+
78
83
  # Setup the controller
79
- @controller = Xapian::Indexer::Controller.new
84
+ @controller = Xapian::Indexer::Controller.new(options)
80
85
 
81
86
  @controller.loaders << RelativeLoader.new(@app)
82
- @controller.loaders << Xapian::Indexer::Loaders::HTTP.new
83
- @controller.extractors['text/html'] = Xapian::Indexer::Extractors::HTML.new
87
+ @controller.loaders << Xapian::Indexer::Loaders::HTTP.new(options)
88
+ @controller.extractors['text/html'] = Xapian::Indexer::Extractors::HTML.new(options)
84
89
 
85
90
  # Setup the generator
86
91
  @generator = Xapian::TermGenerator.new()
87
92
 
88
- @logger = options[:logger] || Logger.new($stderr)
93
+ @logger = options[:logger]
89
94
 
90
95
  unless options[:indexer] == :disabled
91
96
  @indexer = Thread.new do
@@ -93,11 +98,10 @@ module Xapian
93
98
  begin
94
99
  @logger.info "Updating index in background..."
95
100
  index(options[:roots], options)
101
+ @logger.info "Index update finished successfully."
96
102
  rescue
97
- @logger.error "Error while updating index: #{$!}"
103
+ @logger.error "Index update failed: #{$!}"
98
104
  $!.backtrace.each{|line| @logger.error(line)}
99
- ensure
100
- @logger.info "Index update finished."
101
105
  end
102
106
 
103
107
  sleep options[:refresh] || 3600
@@ -133,6 +137,7 @@ module Xapian
133
137
 
134
138
  def index(roots, options = {})
135
139
  writable_database = Xapian::WritableDatabase.new(@database_path, Xapian::DB_CREATE_OR_OPEN)
140
+ @logger.debug "Opening xapian database for writing: #{@database_path}"
136
141
 
137
142
  begin
138
143
  spider = Xapian::Indexer::Spider.new(writable_database, @generator, @controller)
@@ -153,6 +158,7 @@ module Xapian
153
158
 
154
159
  spider.remove_old!
155
160
  ensure
161
+ @logger.debug "Closing xapian database: #{@database_path}"
156
162
  writable_database.close
157
163
  end
158
164
  end
@@ -19,7 +19,7 @@ module Xapian
19
19
  MAJOR = 1
20
20
  MINOR = 2
21
21
  TINY = 3
22
- REV = 1
22
+ REV = 3
23
23
 
24
24
  STRING = [MAJOR, MINOR, TINY, REV].join('.')
25
25
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xapian-rack
3
3
  version: !ruby/object:Gem::Version
4
- hash: 65
5
4
  prerelease: false
6
5
  segments:
7
6
  - 1
8
7
  - 2
9
8
  - 3
10
- - 1
11
- version: 1.2.3.1
9
+ - 3
10
+ version: 1.2.3.3
12
11
  platform: ruby
13
12
  authors:
14
13
  - Samuel Williams
@@ -16,7 +15,7 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2010-12-19 00:00:00 +13:00
18
+ date: 2011-09-08 00:00:00 +12:00
20
19
  default_executable:
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
@@ -27,7 +26,6 @@ dependencies:
27
26
  requirements:
28
27
  - - ">="
29
28
  - !ruby/object:Gem::Version
30
- hash: 3
31
29
  segments:
32
30
  - 0
33
31
  version: "0"
@@ -41,7 +39,6 @@ dependencies:
41
39
  requirements:
42
40
  - - ">="
43
41
  - !ruby/object:Gem::Version
44
- hash: 3
45
42
  segments:
46
43
  - 0
47
44
  version: "0"
@@ -72,7 +69,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
69
  requirements:
73
70
  - - ">="
74
71
  - !ruby/object:Gem::Version
75
- hash: 3
76
72
  segments:
77
73
  - 0
78
74
  version: "0"
@@ -81,7 +77,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
77
  requirements:
82
78
  - - ">="
83
79
  - !ruby/object:Gem::Version
84
- hash: 3
85
80
  segments:
86
81
  - 0
87
82
  version: "0"
@@ -91,6 +86,6 @@ rubyforge_project:
91
86
  rubygems_version: 1.3.7
92
87
  signing_key:
93
88
  specification_version: 3
94
- summary: Xapian-rack provides indexing and searching integration with Rack.
89
+ summary: Xapian::Rack provides indexing and searching integration with Rack.
95
90
  test_files: []
96
91