xapian-rack 1.2.3.1 → 1.2.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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