acts_as_ferret 0.4.8.2 → 0.5

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.
Files changed (39) hide show
  1. data/README +2 -6
  2. data/bin/aaf_install +10 -6
  3. data/config/ferret_server.yml +2 -2
  4. data/doc/demo/app/models/stats.rb +1 -1
  5. data/lib/acts_as_ferret.rb +39 -37
  6. data/lib/{act_methods.rb → acts_as_ferret/act_methods.rb} +1 -1
  7. data/lib/{blank_slate.rb → acts_as_ferret/blank_slate.rb} +0 -0
  8. data/lib/{bulk_indexer.rb → acts_as_ferret/bulk_indexer.rb} +0 -0
  9. data/lib/{class_methods.rb → acts_as_ferret/class_methods.rb} +0 -0
  10. data/lib/{ferret_extensions.rb → acts_as_ferret/ferret_extensions.rb} +12 -16
  11. data/lib/{ferret_find_methods.rb → acts_as_ferret/ferret_find_methods.rb} +0 -0
  12. data/lib/{ferret_result.rb → acts_as_ferret/ferret_result.rb} +0 -0
  13. data/lib/{index.rb → acts_as_ferret/index.rb} +0 -0
  14. data/lib/{instance_methods.rb → acts_as_ferret/instance_methods.rb} +1 -1
  15. data/lib/{local_index.rb → acts_as_ferret/local_index.rb} +7 -4
  16. data/lib/{more_like_this.rb → acts_as_ferret/more_like_this.rb} +0 -0
  17. data/lib/{multi_index.rb → acts_as_ferret/multi_index.rb} +0 -0
  18. data/lib/acts_as_ferret/railtie.rb +16 -0
  19. data/lib/{rdig_adapter.rb → acts_as_ferret/rdig_adapter.rb} +0 -1
  20. data/lib/{remote_functions.rb → acts_as_ferret/remote_functions.rb} +0 -0
  21. data/lib/{remote_index.rb → acts_as_ferret/remote_index.rb} +0 -0
  22. data/lib/{remote_multi_index.rb → acts_as_ferret/remote_multi_index.rb} +0 -0
  23. data/lib/{search_results.rb → acts_as_ferret/search_results.rb} +0 -0
  24. data/lib/acts_as_ferret/server/config.rb +50 -0
  25. data/lib/{ferret_server.rb → acts_as_ferret/server/server.rb} +11 -56
  26. data/lib/{unix_daemon.rb → acts_as_ferret/server/unix_daemon.rb} +2 -4
  27. data/lib/acts_as_ferret/version.rb +3 -0
  28. data/lib/{without_ar.rb → acts_as_ferret/without_ar.rb} +0 -0
  29. data/recipes/aaf_recipes.rb +2 -4
  30. data/script/ferret_server +72 -6
  31. data/tasks/ferret.rake +13 -9
  32. metadata +68 -39
  33. data/acts_as_ferret.gemspec +0 -59
  34. data/init.rb +0 -24
  35. data/install.rb +0 -18
  36. data/lib/ar_mysql_auto_reconnect_patch.rb +0 -41
  37. data/lib/server_manager.rb +0 -71
  38. data/script/ferret_daemon +0 -94
  39. data/script/ferret_service +0 -178
@@ -1,71 +0,0 @@
1
- ################################################################################
2
- require 'optparse'
3
-
4
- ################################################################################
5
- $ferret_server_options = {
6
- 'environment' => nil,
7
- 'debug' => nil,
8
- 'root' => nil
9
- }
10
-
11
- ################################################################################
12
- OptionParser.new do |optparser|
13
- optparser.banner = "Usage: #{File.basename($0)} [options] {start|stop|run}"
14
-
15
- optparser.on('-h', '--help', "This message") do
16
- puts optparser
17
- exit
18
- end
19
-
20
- optparser.on('-R', '--root=PATH', 'Set RAILS_ROOT to the given string') do |r|
21
- $ferret_server_options['root'] = r
22
- end
23
-
24
- optparser.on('-e', '--environment=NAME', 'Set RAILS_ENV to the given string') do |e|
25
- $ferret_server_options['environment'] = e
26
- end
27
-
28
- optparser.on('--debug', 'Include full stack traces on exceptions') do
29
- $ferret_server_options['debug'] = true
30
- end
31
-
32
- $ferret_server_action = optparser.permute!(ARGV)
33
- (puts optparser; exit(1)) unless $ferret_server_action.size == 1
34
-
35
- $ferret_server_action = $ferret_server_action.first
36
- (puts optparser; exit(1)) unless %w(start stop run).include?($ferret_server_action)
37
- end
38
-
39
- ################################################################################
40
-
41
- def determine_rails_root
42
- possible_rails_roots = [
43
- $ferret_server_options['root'],
44
- (defined?(FERRET_SERVER) ? File.join(File.dirname(FERRET_SERVER), '..') : nil),
45
- File.join(File.dirname(__FILE__), *(['..']*4)),
46
- '.'
47
- ].compact
48
- # take the first dir where environment.rb can be found
49
- possible_rails_roots.find{ |dir| File.readable?(File.join(dir, 'config', 'environment.rb')) }
50
- end
51
-
52
- begin
53
- ENV['FERRET_USE_LOCAL_INDEX'] = 'true'
54
- ENV['RAILS_ENV'] = $ferret_server_options['environment']
55
- # determine RAILS_ROOT unless already set
56
- RAILS_ROOT = determine_rails_root unless defined?(RAILS_ROOT)
57
-
58
- begin
59
- require File.join(RAILS_ROOT, 'config', 'environment')
60
- rescue LoadError
61
- puts "Unable to find Rails environment.rb in any of these locations:\n#{possible_rails_roots.join("\n")}\nPlease use the --root option of ferret_server to point it to your RAILS_ROOT."
62
- raise $!
63
- end
64
-
65
- # require 'acts_as_ferret'
66
- ActsAsFerret::Remote::Server.new.send($ferret_server_action)
67
- rescue Exception => e
68
- $stderr.puts(e.message)
69
- $stderr.puts(e.backtrace.join("\n")) if $ferret_server_options['debug']
70
- exit(1)
71
- end
@@ -1,94 +0,0 @@
1
- # Ferret Win32 Service Daemon, called by Win 32 service,
2
- # created by Herryanto Siatono <herryanto@pluitsolutions.com>
3
- #
4
- # see doc/README.win32 for usage instructions
5
- #
6
- require 'optparse'
7
- require 'win32/service'
8
- include Win32
9
-
10
- # Read options
11
- options = {}
12
- ARGV.options do |opts|
13
- opts.banner = 'Usage: ferret_daemon [options]'
14
- opts.on("-l", "--log FILE", "Daemon log file") {|file| options[:log] = file }
15
- opts.on("-c","--console","Run Ferret server on console.") {options[:console] = true}
16
- opts.on_tail("-h","--help", "Show this help message") {puts opts; exit}
17
- opts.on("-e", "--environment ENV ", "Rails environment") {|env|
18
- options[:environment] = env
19
- ENV['RAILS_ENV'] = env
20
- }
21
- opts.parse!
22
- end
23
-
24
- require File.dirname(__FILE__) + '/../config/environment'
25
-
26
- # Ferret Win32 Service Daemon, called by Win 32 service,
27
- # to run on the console, use -c or --console option.
28
- module Ferret
29
- class FerretDaemon < Daemon
30
- # Standard logger to redirect STDOUT and STDERR to a log file
31
- class FerretStandardLogger
32
- def initialize(logger)
33
- @logger = logger
34
- end
35
-
36
- def write(s)
37
- @logger.info s
38
- end
39
- end
40
-
41
- def initialize(options={})
42
- @options = options
43
-
44
- # initialize logger
45
- if options[:log]
46
- @logger = Logger.new @options[:log]
47
- else
48
- @logger = Logger.new RAILS_ROOT + "/log/ferret_service_#{RAILS_ENV}.log"
49
- end
50
-
51
- # redirect stout and stderr to Ferret logger if running as windows service
52
- $stdout = $stderr = FerretStandardLogger.new(@logger) unless @options[:console]
53
-
54
- log "Initializing FerretDaemon..."
55
- if @options[:console]
56
- self.service_init
57
- self.service_main
58
- end
59
- end
60
-
61
- def service_main
62
- log "Service main enterred..."
63
-
64
- while running?
65
- log "Listening..."
66
- sleep
67
- end
68
-
69
- log "Service main exit..."
70
- end
71
-
72
- def service_init
73
- log "Starting Ferret DRb server..."
74
- ActsAsFerret::Remote::Server.start
75
- log "FerretDaemon started."
76
- end
77
-
78
- def service_stop
79
- log "Stopping service..."
80
- DRb.stop_service
81
- log "FerretDaemon stopped."
82
- end
83
-
84
- def log(msg)
85
- @logger.info msg
86
- puts msg if @options[:console]
87
- end
88
- end
89
- end
90
-
91
- if __FILE__ == $0
92
- d = Ferret::FerretDaemon.new(options)
93
- d.mainloop
94
- end
@@ -1,178 +0,0 @@
1
- # Ferret Win32 Service Daemon install script
2
- # created by Herryanto Siatono <herryanto@pluitsolutions.com>
3
- #
4
- # see doc/README.win32 for usage instructions
5
- #
6
- require 'optparse'
7
- require 'win32/service'
8
- include Win32
9
-
10
- module Ferret
11
- # Parse and validate service command and options
12
- class FerretServiceCommand
13
- COMMANDS = ['install', 'remove', 'start', 'stop', 'help']
14
- BANNER = "Usage: ruby script/ferret_service <command> [options]"
15
-
16
- attr_reader :options, :command
17
-
18
- def initialize
19
- @options = {}
20
- end
21
-
22
- def valid_command?
23
- COMMANDS.include?@command
24
- end
25
-
26
- def valid_options?
27
- @options[:name] and !@options[:name].empty?
28
- end
29
-
30
- def print_command_list
31
- puts BANNER
32
- puts "\nAvailable commands:\n"
33
- puts COMMANDS.map {|cmd| " - #{cmd}\n"}
34
- puts "\nUse option -h for each command to help."
35
- exit
36
- end
37
-
38
- def validate_options
39
- errors = []
40
- errors << "Service name is required." unless @options[:name]
41
-
42
- if (errors.size > 0)
43
- errors << "Error found. Use: 'ruby script/ferret_service #{@command} -h' for to get help."
44
- puts errors.join("\n")
45
- exit
46
- end
47
- end
48
-
49
- def run(args)
50
- @command = args.shift
51
- @command = @command.dup.downcase if @command
52
-
53
- # validate command and options
54
- print_command_list unless valid_command? or @command == 'help'
55
-
56
- opts_parser = create_options_parser
57
- begin
58
- opts_parser.parse!(args)
59
- rescue OptionParser::ParseError => e
60
- puts e
61
- puts opts_parser
62
- end
63
-
64
- # validate required options
65
- validate_options
66
- end
67
-
68
- def create_options_parser
69
- opts_parser = OptionParser.new
70
- opts_parser.banner = BANNER
71
- opts_parser.on("-n", "--name=NAME", "Service name") {|name| @options[:name] = name }
72
- opts_parser.on_tail("-t", "--trace", "Display stack trace when exception thrown") { @options[:trace] = true }
73
- opts_parser.on_tail("-h", "--help", "Show this help message") { puts opts_parser; exit }
74
-
75
- if ['install'].include?@command
76
- opts_parser.on("-d", "--display=NAME", "Service display name") {|name| @options[:display] = name }
77
-
78
- opts_parser.on("-l", "--log FILE", "Service log file") {|file| @options[:log] = file }
79
- opts_parser.on("-e", "--environment ENV ", "Rails environment") { |env|
80
- @options[:environment] = env
81
- ENV['RAILS_ENV'] = env
82
- }
83
- end
84
- opts_parser
85
- end
86
- end
87
-
88
- # Install, Remove, Start and Stop Ferret DRb server Win32 service
89
- class FerretService
90
- FERRET_DAEMON = 'ferret_daemon'
91
-
92
- def initialize
93
- end
94
-
95
- def install
96
- svc = Service.new
97
-
98
- begin
99
- if Service.exists?(@options[:name])
100
- puts "Service name '#{@options[:name]}' already exists."
101
- return
102
- end
103
-
104
- svc.create_service do |s|
105
- s.service_name = @options[:name]
106
- s.display_name = @options[:display]
107
- s.binary_path_name = binary_path_name
108
- s.dependencies = []
109
- end
110
-
111
- svc.close
112
- puts "'#{@options[:name]}' service installed."
113
- rescue => e
114
- handle_error(e)
115
- end
116
- end
117
-
118
- def remove
119
- begin
120
- Service.stop(@options[:name])
121
- rescue
122
- end
123
-
124
- begin
125
- Service.delete(@options[:name])
126
- puts "'#{@options[:name]}' service removed."
127
- rescue => e
128
- handle_error(e)
129
- end
130
- end
131
-
132
- def start
133
- begin
134
- Service.start(@options[:name])
135
- puts "'#{@options[:name]}' successfully started."
136
- rescue => e
137
- handle_error(e)
138
- end
139
- end
140
-
141
- def stop
142
- begin
143
- Service.stop(@options[:name])
144
- puts "'#{@options[:name]}' successfully stopped.\n"
145
- rescue => e
146
- handle_error(e)
147
- end
148
- end
149
-
150
- def run(args)
151
- svc_cmd = FerretServiceCommand.new
152
- svc_cmd.run(args)
153
- @options = svc_cmd.options
154
- self.send(svc_cmd.command.to_sym)
155
- end
156
-
157
- protected
158
- def handle_error(e)
159
- if @options[:trace]
160
- raise e
161
- else
162
- puts e
163
- end
164
- end
165
-
166
- def binary_path_name
167
- path = ""
168
- path << "#{ENV['RUBY_HOME']}/bin/" if ENV['RUBY_HOME']
169
- path << "ruby.exe "
170
- path << File.expand_path("script/" + FERRET_DAEMON)
171
- path << " -e #{@options[:environment]} " if @options[:environment]
172
- path << " -l #{@options[:log]} " if @options[:log]
173
- path
174
- end
175
- end
176
- end
177
-
178
- Ferret::FerretService.new.run(ARGV)