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.
- data/lib/xapian/rack/search.rb +14 -8
- data/lib/xapian/rack/version.rb +1 -1
- metadata +4 -9
data/lib/xapian/rack/search.rb
CHANGED
@@ -27,7 +27,7 @@ module Xapian
|
|
27
27
|
def initialize(app, options = {})
|
28
28
|
@app = app
|
29
29
|
|
30
|
-
@logger = options[:logger] || Logger.new($
|
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]
|
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 "
|
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
|
data/lib/xapian/rack/version.rb
CHANGED
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
|
-
-
|
11
|
-
version: 1.2.3.
|
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:
|
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
|
89
|
+
summary: Xapian::Rack provides indexing and searching integration with Rack.
|
95
90
|
test_files: []
|
96
91
|
|