acts_as_ferret 0.3.1 → 0.4.0
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/README +29 -6
- data/config/ferret_server.yml +12 -0
- data/install.rb +19 -0
- data/lib/act_methods.rb +194 -0
- data/lib/acts_as_ferret.rb +74 -52
- data/lib/class_methods.rb +222 -482
- data/lib/ferret_result.rb +36 -0
- data/lib/ferret_server.rb +89 -0
- data/lib/index.rb +31 -0
- data/lib/instance_methods.rb +112 -143
- data/lib/local_index.rb +257 -0
- data/lib/more_like_this.rb +47 -41
- data/lib/multi_index.rb +8 -11
- data/lib/remote_index.rb +50 -0
- data/lib/shared_index.rb +14 -0
- data/lib/shared_index_class_methods.rb +90 -0
- data/rakefile +88 -147
- data/script/ferret_server +18 -0
- data/script/ferret_start +67 -0
- data/script/ferret_stop +22 -0
- metadata +23 -11
- data/.init.rb.swp +0 -0
- data/.rakefile.swp +0 -0
- data/lib/.acts_as_ferret.rb.swp +0 -0
- data/lib/.class_methods.rb.swo +0 -0
- data/lib/.class_methods.rb.swp +0 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Ferret DRb server launcher script
|
4
|
+
#
|
5
|
+
# Place doc/ferret_server.yml into RAILS_ROOT/config and fit to taste.
|
6
|
+
#
|
7
|
+
# Start this script with script/runner and RAILS_ENV set.
|
8
|
+
#
|
9
|
+
# to run the unit tests against the drb server, start it with
|
10
|
+
# RAILS_ENV=test script/runner script/ferret_server
|
11
|
+
# and run your tests with the AAF_REMOTE environment variable set to a
|
12
|
+
# non-empty value
|
13
|
+
|
14
|
+
|
15
|
+
ActsAsFerret::Remote::Server.start
|
16
|
+
DRb.thread.join
|
17
|
+
|
18
|
+
|
data/script/ferret_start
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
#!/usr/bin/env script/runner
|
2
|
+
|
3
|
+
# Ferret DRb server launcher script
|
4
|
+
#
|
5
|
+
# Place doc/ferret_server.yml into RAILS_ROOT/config and fit to taste. Start
|
6
|
+
# it with RAILS_ENV set to the desired environment.
|
7
|
+
#
|
8
|
+
#
|
9
|
+
# To run the demo project's unit tests against the drb server, start it with
|
10
|
+
#
|
11
|
+
# RAILS_ENV=test script/ferret_start
|
12
|
+
#
|
13
|
+
# and run your tests with the AAF_REMOTE environment variable set to a
|
14
|
+
# non-empty value:
|
15
|
+
#
|
16
|
+
# AAF_REMOTE=true rake
|
17
|
+
#
|
18
|
+
# The server writes a log file in log/ferret_server.log, it's
|
19
|
+
# STDOUT gets redirected to log/ferret_server.out
|
20
|
+
|
21
|
+
|
22
|
+
config = ActsAsFerret::Remote::Config.load
|
23
|
+
@pid_file = config['pid_file']
|
24
|
+
|
25
|
+
def write_pid_file
|
26
|
+
open(@pid_file,"w") {|f| f.write(Process.pid) }
|
27
|
+
end
|
28
|
+
|
29
|
+
def safefork
|
30
|
+
tryagain = true
|
31
|
+
|
32
|
+
while tryagain
|
33
|
+
tryagain = false
|
34
|
+
begin
|
35
|
+
if pid = fork
|
36
|
+
return pid
|
37
|
+
end
|
38
|
+
rescue Errno::EWOULDBLOCK
|
39
|
+
sleep 5
|
40
|
+
tryagain = true
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
safefork and exit
|
46
|
+
at_exit do
|
47
|
+
File.unlink(@pid_file) if @pid_file && File.exists?(@pid_file) && File.read(@pid_file).to_i == Process.pid
|
48
|
+
end
|
49
|
+
print "Starting ferret DRb server..."
|
50
|
+
trap("TERM") { exit(0) }
|
51
|
+
sess_id = Process.setsid
|
52
|
+
|
53
|
+
|
54
|
+
begin
|
55
|
+
ActsAsFerret::Remote::Server.start
|
56
|
+
write_pid_file
|
57
|
+
puts "Done."
|
58
|
+
STDIN.reopen "/dev/null" # Free file descriptors and
|
59
|
+
STDOUT.reopen "#{RAILS_ROOT}/log/ferret_server.out", "a" # point them somewhere sensible
|
60
|
+
STDERR.reopen STDOUT # STDOUT/STDERR should go to a logfile
|
61
|
+
rescue
|
62
|
+
puts "Error starting ferret DRb server: #{$!}"
|
63
|
+
exit(1)
|
64
|
+
end
|
65
|
+
DRb.thread.join
|
66
|
+
|
67
|
+
# vim:set filetype=ruby:
|
data/script/ferret_stop
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env script/runner
|
2
|
+
|
3
|
+
config = ActsAsFerret::Remote::Config.load
|
4
|
+
|
5
|
+
def send_signal(signal, pid_file)
|
6
|
+
pid = open(pid_file).read.to_i
|
7
|
+
print "Sending #{signal} to ferret_server with PID #{pid}..."
|
8
|
+
begin
|
9
|
+
Process.kill(signal, pid)
|
10
|
+
rescue Errno::ESRCH
|
11
|
+
puts "Process does not exist. Not running. Removing stale pid file anyway."
|
12
|
+
File.unlink(pid_file)
|
13
|
+
end
|
14
|
+
|
15
|
+
puts "Done."
|
16
|
+
end
|
17
|
+
|
18
|
+
pid_file = config['pid_file']
|
19
|
+
puts "Stopping ferret_server..."
|
20
|
+
send_signal("TERM", pid_file)
|
21
|
+
|
22
|
+
# vim:set filetype=ruby:
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.
|
2
|
+
rubygems_version: 0.9.2
|
3
3
|
specification_version: 1
|
4
4
|
name: acts_as_ferret
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.4.0
|
7
|
+
date: 2007-03-24 00:00:00 +01:00
|
8
8
|
summary: acts_as_ferret - Ferret based full text search for any ActiveRecord model
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -25,24 +25,36 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
25
25
|
platform: ruby
|
26
26
|
signing_key:
|
27
27
|
cert_chain:
|
28
|
+
post_install_message:
|
28
29
|
authors:
|
29
30
|
- Jens Kraemer
|
30
31
|
files:
|
32
|
+
- lib
|
31
33
|
- LICENSE
|
32
34
|
- rakefile
|
33
35
|
- init.rb
|
34
|
-
- lib
|
35
36
|
- README
|
36
|
-
-
|
37
|
-
-
|
38
|
-
-
|
37
|
+
- script
|
38
|
+
- doc
|
39
|
+
- config
|
40
|
+
- install.rb
|
39
41
|
- lib/acts_as_ferret.rb
|
42
|
+
- lib/multi_index.rb
|
43
|
+
- lib/more_like_this.rb
|
40
44
|
- lib/instance_methods.rb
|
41
45
|
- lib/class_methods.rb
|
42
|
-
- lib/
|
43
|
-
- lib
|
44
|
-
- lib
|
45
|
-
- lib
|
46
|
+
- lib/ferret_server.rb
|
47
|
+
- lib/shared_index.rb
|
48
|
+
- lib/local_index.rb
|
49
|
+
- lib/remote_index.rb
|
50
|
+
- lib/index.rb
|
51
|
+
- lib/act_methods.rb
|
52
|
+
- lib/shared_index_class_methods.rb
|
53
|
+
- lib/ferret_result.rb
|
54
|
+
- script/ferret_server
|
55
|
+
- script/ferret_start
|
56
|
+
- script/ferret_stop
|
57
|
+
- config/ferret_server.yml
|
46
58
|
test_files: []
|
47
59
|
|
48
60
|
rdoc_options: []
|
data/.init.rb.swp
DELETED
Binary file
|
data/.rakefile.swp
DELETED
Binary file
|
data/lib/.acts_as_ferret.rb.swp
DELETED
Binary file
|
data/lib/.class_methods.rb.swo
DELETED
Binary file
|
data/lib/.class_methods.rb.swp
DELETED
Binary file
|