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
data/README CHANGED
@@ -19,13 +19,9 @@ http://github.com/jkraemer/acts_as_ferret/tree/master .
19
19
 
20
20
  === Set up your Rails > 2.1 project to use the acts_as_ferret gem.
21
21
 
22
- Add this to your project's config/environment.rb (inside the Rails::Initializer.run block):
22
+ Add this to your project's config/environment.rb:
23
23
 
24
- <tt>
25
- config.gem 'acts_as_ferret', :version => '~> 0.4.8'
26
- config.after_initialize { ActsAsFerret::load_config }
27
- config.to_prepare { ActsAsFerret::load_config }
28
- </tt>
24
+ <tt>config.gem 'acts_as_ferret', :version => '~> 0.4.8'</tt>
29
25
 
30
26
  With the gem installed, change into your RAILS_ROOT and run the supplied aaf_install script.
31
27
  This will copy rake tasks, capistrano recipes and the ferret server config and startup script
@@ -1,18 +1,23 @@
1
1
  #!/usr/bin/env ruby
2
+ #
2
3
  # acts_as_ferret gem install script
3
- # Use inside the root of your Rails project
4
+ #
5
+ # Call this from Rails.root to install start/stop script, sample config and
6
+ # Capistrano recipes into your rails project.
7
+
4
8
  require 'fileutils'
5
9
 
6
10
  @basedir = File.join(File.dirname(__FILE__), '..')
7
11
 
8
- def install(src, target_dir, executable=false)
12
+ def install(src, target_dir, executable=false, overwrite=false)
9
13
  puts "Installing: #{src}"
10
14
  src = File.join(@basedir, src)
11
15
  fname = File.basename(src)
12
16
  target = File.join(target_dir, fname)
13
- if File.exists?(target)
17
+ if !overwrite && File.exists?(target)
14
18
  puts "#{target} already exists, skipping"
15
19
  else
20
+ FileUtils.rm_f target
16
21
  FileUtils.mkdir_p target_dir
17
22
  FileUtils.cp src, target
18
23
  FileUtils.chmod 0755, target if executable
@@ -20,10 +25,9 @@ def install(src, target_dir, executable=false)
20
25
  end
21
26
 
22
27
 
23
- install 'script/ferret_server', 'script', true
28
+ install 'script/ferret_server', 'script', true, true
24
29
  install 'config/ferret_server.yml', 'config'
25
- install 'tasks/ferret.rake', 'lib/tasks'
26
- install 'recipes/aaf_recipes.rb', 'lib/recipes'
30
+ install 'recipes/aaf_recipes.rb', 'lib/recipes', false, true
27
31
 
28
32
  puts IO.read(File.join(@basedir, 'README'))
29
33
 
@@ -2,8 +2,8 @@
2
2
  # host: where to reach the DRb server (used by application processes to contact the server)
3
3
  # port: which port the server should listen on
4
4
  # socket: where the DRb server should create the socket (absolute path), this setting overrides host:port configuration
5
- # pid_file: location of the server's pid file (relative to RAILS_ROOT)
6
- # log_file: log file (default: RAILS_ROOT/log/ferret_server.log
5
+ # pid_file: location of the server's pid file (relative to Rails.root)
6
+ # log_file: log file (default: Rails.root/log/ferret_server.log
7
7
  # log_level: log level for the server's logger
8
8
  production:
9
9
  host: localhost
@@ -9,7 +9,7 @@ class Stats < ActiveRecord::Base
9
9
  where kind=? group by time;
10
10
  END
11
11
  result = connection.execute sanitize_sql([sql, start_date, start_date, kind.to_s])
12
- [].tap do |res|
12
+ returning [] do |res|
13
13
  while row = result.fetch_row
14
14
  data = row.last.split(',').map{|t|t.to_i}
15
15
  median = data.size.odd? ? data[data.size/2] : ((data[data.size/2-1]+data[data.size/2]) / 2.0)
@@ -20,33 +20,34 @@
20
20
 
21
21
  require 'active_support'
22
22
  require 'active_record'
23
+
23
24
  require 'set'
24
25
  require 'enumerator'
25
26
  require 'ferret'
26
27
 
27
- require 'ferret_find_methods'
28
- require 'remote_functions'
29
- require 'blank_slate'
30
- require 'bulk_indexer'
31
- require 'ferret_extensions'
32
- require 'act_methods'
33
- require 'search_results'
34
- require 'class_methods'
35
- require 'ferret_result'
36
- require 'instance_methods'
37
- require 'without_ar'
28
+ require 'acts_as_ferret/ferret_find_methods'
29
+ require 'acts_as_ferret/remote_functions'
30
+ require 'acts_as_ferret/blank_slate'
31
+ require 'acts_as_ferret/bulk_indexer'
32
+ require 'acts_as_ferret/ferret_extensions'
33
+ require 'acts_as_ferret/act_methods'
34
+ require 'acts_as_ferret/search_results'
35
+ require 'acts_as_ferret/class_methods'
36
+ require 'acts_as_ferret/ferret_result'
37
+ require 'acts_as_ferret/instance_methods'
38
+ require 'acts_as_ferret/without_ar'
38
39
 
39
- require 'multi_index'
40
- require 'remote_multi_index'
41
- require 'more_like_this'
40
+ require 'acts_as_ferret/multi_index'
41
+ require 'acts_as_ferret/remote_multi_index'
42
+ require 'acts_as_ferret/more_like_this'
42
43
 
43
- require 'index'
44
- require 'local_index'
45
- require 'remote_index'
44
+ require 'acts_as_ferret/index'
45
+ require 'acts_as_ferret/local_index'
46
+ require 'acts_as_ferret/remote_index'
46
47
 
47
- require 'ferret_server'
48
+ require 'acts_as_ferret/server/server'
48
49
 
49
- require 'rdig_adapter'
50
+ require 'acts_as_ferret/rdig_adapter'
50
51
 
51
52
  # The Rails ActiveRecord Ferret Mixin.
52
53
  #
@@ -82,12 +83,14 @@ require 'rdig_adapter'
82
83
  # whatever reason.
83
84
  #
84
85
  # remote:: Set this to false to force acts_as_ferret into local (non-DRb) mode even if
85
- # config/ferret_server.yml contains a section for the current RAILS_ENV
86
+ # config/ferret_server.yml contains a section for the current Rails.env
86
87
  # Usually you won't need to touch this option - just configure DRb for
87
88
  # production mode in ferret_server.yml.
88
89
  #
89
90
  module ActsAsFerret
90
91
 
92
+ require 'acts_as_ferret/railtie' if defined?(Rails)
93
+
91
94
  class ActsAsFerretError < StandardError; end
92
95
  class IndexNotDefined < ActsAsFerretError; end
93
96
  class IndexAlreadyDefined < ActsAsFerretError; end
@@ -107,7 +110,7 @@ module ActsAsFerret
107
110
  @@index_using_classes = {}
108
111
  def self.index_using_classes; @@index_using_classes end
109
112
 
110
- @@logger = Logger.new "#{RAILS_ROOT}/log/acts_as_ferret.log"
113
+ @@logger = Logger.new "#{Rails.root || '.'}/log/acts_as_ferret.log"
111
114
  @@logger.level = ActiveRecord::Base.logger.level rescue Logger::DEBUG
112
115
  mattr_accessor :logger
113
116
 
@@ -129,10 +132,10 @@ module ActsAsFerret
129
132
  mattr_accessor :remote
130
133
  def self.remote?
131
134
  if @@remote.nil?
132
- if ENV["FERRET_USE_LOCAL_INDEX"] || ActsAsFerret::Remote::Server.running
135
+ if ENV["FERRET_USE_LOCAL_INDEX"] || ActsAsFerret::Server::Server.running
133
136
  @@remote = false
134
137
  else
135
- @@remote = ActsAsFerret::Remote::Config.new.uri rescue false
138
+ @@remote = ActsAsFerret::Server::Config.new.uri rescue false
136
139
  end
137
140
  if @@remote
138
141
  logger.info "Will use remote index server which should be available at #{@@remote}"
@@ -255,7 +258,7 @@ module ActsAsFerret
255
258
 
256
259
  def self.load_config
257
260
  # using require_dependency to make the reloading in dev mode work.
258
- require_dependency "#{RAILS_ROOT}/config/aaf.rb"
261
+ require_dependency "#{Rails.root}/config/aaf.rb"
259
262
  ActsAsFerret::logger.info "loaded configuration file aaf.rb"
260
263
  rescue LoadError
261
264
  ensure
@@ -456,8 +459,6 @@ module ActsAsFerret
456
459
  # get objects for each model
457
460
  id_arrays.each do |model, id_array|
458
461
  next if id_array.empty?
459
- # logger.debug "id array from index: #{id_array.inspect}"
460
-
461
462
  model_class = model.constantize
462
463
 
463
464
  # merge conditions
@@ -486,21 +487,20 @@ module ActsAsFerret
486
487
 
487
488
  # order results as they were found by ferret, unless an AR :order
488
489
  # option was given
489
- # logger.debug "unsorted result: #{result.map{|a| "#{a.id} / #{a.title} / #{a.ferret_rank}"}.inspect}"
490
490
  result.sort! { |a, b| a.ferret_rank <=> b.ferret_rank } unless find_options[:order]
491
- # logger.debug "sorted result: #{result.map{|a| "#{a.id} / #{a.ferret_rank}"}.inspect}"
492
491
  return result
493
492
  end
494
493
 
495
494
  # combine our conditions with those given by user, if any
496
495
  def self.combine_conditions(conditions, additional_conditions = [])
497
- if additional_conditions && additional_conditions.any?
498
- cust_opts = (Array === additional_conditions) ? additional_conditions.dup : [ additional_conditions ]
499
- logger.debug "cust_opts: #{cust_opts.inspect}"
500
- conditions.first << " and " << cust_opts.shift
501
- conditions.concat(cust_opts)
496
+ returning conditions do
497
+ if additional_conditions && additional_conditions.any?
498
+ cust_opts = (Array === additional_conditions) ? additional_conditions.dup : [ additional_conditions ]
499
+ logger.debug "cust_opts: #{cust_opts.inspect}"
500
+ conditions.first << " and " << cust_opts.shift
501
+ conditions.concat(cust_opts)
502
+ end
502
503
  end
503
- return conditions
504
504
  end
505
505
 
506
506
  def self.build_field_config(fields)
@@ -521,10 +521,10 @@ module ActsAsFerret
521
521
 
522
522
 
523
523
  # make sure the default index base dir exists. by default, all indexes are created
524
- # under RAILS_ROOT/index/RAILS_ENV
524
+ # under Rails.root/index/Rails.env
525
525
  def self.init_index_basedir
526
- index_base = "#{RAILS_ROOT}/index"
527
- @@index_dir = "#{index_base}/#{RAILS_ENV}"
526
+ index_base = "#{Rails.root || '.'}/index"
527
+ @@index_dir = "#{index_base}/#{Rails.env}"
528
528
  end
529
529
 
530
530
  mattr_accessor :index_dir
@@ -591,3 +591,5 @@ end
591
591
  # include acts_as_ferret method into ActiveRecord::Base
592
592
  ActiveRecord::Base.extend ActsAsFerret::ActMethods
593
593
 
594
+
595
+
@@ -26,7 +26,7 @@ module ActsAsFerret #:nodoc:
26
26
  # to determine if it should be indexed or not.
27
27
  #
28
28
  # index_dir:: declares the directory where to put the index for this class.
29
- # The default is RAILS_ROOT/index/RAILS_ENV/CLASSNAME.
29
+ # The default is Rails.root/index/Rails.env/CLASSNAME.
30
30
  # The index directory will be created if it doesn't exist.
31
31
  #
32
32
  # reindex_batch_size:: reindexing is done in batches of this size, default is 1000
@@ -94,20 +94,6 @@ module Ferret
94
94
  flush()
95
95
  end
96
96
  end
97
-
98
- # search for the first document with +arg+ in the +id+ field and return it's internal document number.
99
- # The +id+ field is either :id or whatever you set
100
- # :id_field parameter to when you create the Index object.
101
- def doc_number(id)
102
- @dir.synchronize do
103
- ensure_reader_open()
104
- term_doc_enum = @reader.term_docs_for(@id_field, id.to_s)
105
- return term_doc_enum.next? ? term_doc_enum.doc : nil
106
- end
107
- end
108
-
109
- private
110
-
111
97
 
112
98
  # If +docs+ is a Hash or an Array then a batch delete will be performed.
113
99
  # If +docs+ is an Array then it will be considered an array of +id+'s. If
@@ -148,7 +134,17 @@ module Ferret
148
134
  end
149
135
  return self
150
136
  end
151
-
137
+
138
+ # search for the first document with +arg+ in the +id+ field and return it's internal document number.
139
+ # The +id+ field is either :id or whatever you set
140
+ # :id_field parameter to when you create the Index object.
141
+ def doc_number(id)
142
+ @dir.synchronize do
143
+ ensure_reader_open()
144
+ term_doc_enum = @reader.term_docs_for(@id_field, id.to_s)
145
+ return term_doc_enum.next? ? term_doc_enum.doc : nil
146
+ end
147
+ end
152
148
  end
153
149
 
154
150
  # add marshalling support to SortFields
@@ -179,7 +175,7 @@ module Ferret
179
175
  # we exclude the last <DOC> sorting as it is appended by new anyway
180
176
  if string =~ /^Sort\[(.*?)(<DOC>(!)?)?\]$/
181
177
  sort_fields = $1.split(',').map do |value|
182
- value.strip!
178
+ value.strip!
183
179
  Ferret::Search::SortField._load value unless value.blank?
184
180
  end
185
181
  new sort_fields.compact
@@ -125,7 +125,7 @@ module ActsAsFerret #:nodoc:
125
125
  # fieldname => value pairs)
126
126
  def to_doc
127
127
  logger.debug "creating doc for class: #{self.ferret_key}"
128
- Ferret::Document.new.tap do |doc|
128
+ returning Ferret::Document.new do |doc|
129
129
  # store the id and class name of each item, and the unique key used for identifying the record
130
130
  # even in multi-class indexes.
131
131
  doc[:key] = self.ferret_key
@@ -16,9 +16,9 @@ module ActsAsFerret
16
16
  # The 'real' Ferret Index instance
17
17
  def ferret_index
18
18
  ensure_index_exists
19
- (@ferret_index ||= Ferret::Index::Index.new(index_definition[:ferret])).tap do |idx|
20
- idx.batch_size = index_definition[:reindex_batch_size]
21
- idx.logger = logger
19
+ returning @ferret_index ||= Ferret::Index::Index.new(index_definition[:ferret]) do
20
+ @ferret_index.batch_size = index_definition[:reindex_batch_size]
21
+ @ferret_index.logger = logger
22
22
  end
23
23
  end
24
24
 
@@ -73,6 +73,9 @@ module ActsAsFerret
73
73
  reader.tokenized_fields unless options[:tokenized_fields]
74
74
  return qp.parse query
75
75
  else
76
+ # work around ferret bug in #process_query (doesn't ensure the
77
+ # reader is open)
78
+ ferret_index.send(:ensure_reader_open)
76
79
  return ferret_index.process_query(query)
77
80
  end
78
81
  end
@@ -148,7 +151,7 @@ module ActsAsFerret
148
151
  return Ferret::Search::TermQuery.new(:key, key.to_s)
149
152
  # if shared?
150
153
  # raise InvalidArgumentError.new("shared index needs class_name argument") if class_name.nil?
151
- # Ferret::Search::BooleanQuery.new.tap do |bq|
154
+ # returning bq = Ferret::Search::BooleanQuery.new do
152
155
  # bq.add_query(Ferret::Search::TermQuery.new(:id, id.to_s), :must)
153
156
  # bq.add_query(Ferret::Search::TermQuery.new(:class_name, class_name), :must)
154
157
  # end
@@ -0,0 +1,16 @@
1
+ require 'acts_as_ferret'
2
+ require 'rails'
3
+
4
+ module ActsAsFerret
5
+
6
+ class Railtie < Rails::Railtie
7
+
8
+ rake_tasks do
9
+ load File.join(File.dirname(__FILE__), '../../tasks/ferret.rake')
10
+ end
11
+
12
+ config.to_prepare { ActsAsFerret::load_config }
13
+
14
+ end
15
+
16
+ end
@@ -1,7 +1,6 @@
1
1
  begin
2
2
  require 'rdig'
3
3
  rescue LoadError
4
- puts "RDig gem not found, searching and indexing static pages won't work."
5
4
  end
6
5
  require 'digest/md5'
7
6
 
@@ -0,0 +1,50 @@
1
+ require 'yaml'
2
+ require 'erb'
3
+
4
+ module ActsAsFerret
5
+ module Server
6
+
7
+ class Config
8
+
9
+ ################################################################################
10
+ DEFAULTS = {
11
+ 'host' => 'localhost',
12
+ 'port' => '9009',
13
+ 'cf' => "config/ferret_server.yml",
14
+ 'pid_file' => "log/ferret_server.pid",
15
+ 'log_file' => "log/ferret_server.log",
16
+ 'log_level' => 'debug',
17
+ 'socket' => nil,
18
+ 'script' => nil
19
+ }
20
+
21
+ ################################################################################
22
+ # load the configuration file and apply default settings
23
+ def initialize(file = DEFAULTS['cf'])
24
+ @everything = YAML.load(ERB.new(IO.read(abs_config_file_path(file))).result)
25
+ raise "malformed ferret server config" unless @everything.is_a?(Hash)
26
+ @config = DEFAULTS.merge(@everything[Rails.env] || {})
27
+ if @everything[Rails.env]
28
+ @config['uri'] = socket.nil? ? "druby://#{host}:#{port}" : "drbunix:#{socket}"
29
+ end
30
+ end
31
+
32
+ def abs_config_file_path(path)
33
+ if path =~ /^\//
34
+ path
35
+ else
36
+ Rails.root.join(path).to_s
37
+ end
38
+ end
39
+
40
+ ################################################################################
41
+ # treat the keys of the config data as methods
42
+ def method_missing (name, *args)
43
+ @config.has_key?(name.to_s) ? @config[name.to_s] : super
44
+ end
45
+
46
+ end
47
+
48
+
49
+ end
50
+ end
@@ -1,52 +1,18 @@
1
1
  require 'drb'
2
2
  require 'thread'
3
- require 'yaml'
4
- require 'erb'
5
3
 
6
- ################################################################################
7
- module ActsAsFerret
8
- module Remote
9
-
10
- ################################################################################
11
- class Config
12
-
13
- ################################################################################
14
- DEFAULTS = {
15
- 'host' => 'localhost',
16
- 'port' => '9009',
17
- 'cf' => "#{RAILS_ROOT}/config/ferret_server.yml",
18
- 'pid_file' => "#{RAILS_ROOT}/log/ferret_server.pid",
19
- 'log_file' => "#{RAILS_ROOT}/log/ferret_server.log",
20
- 'log_level' => 'debug',
21
- 'socket' => nil,
22
- 'script' => nil
23
- }
24
-
25
- ################################################################################
26
- # load the configuration file and apply default settings
27
- def initialize (file=DEFAULTS['cf'])
28
- @everything = YAML.load(ERB.new(IO.read(file)).result)
29
- raise "malformed ferret server config" unless @everything.is_a?(Hash)
30
- @config = DEFAULTS.merge(@everything[RAILS_ENV] || {})
31
- if @everything[RAILS_ENV]
32
- @config['uri'] = socket.nil? ? "druby://#{host}:#{port}" : "drbunix:#{socket}"
33
- end
34
- end
4
+ require 'acts_as_ferret/server/unix_daemon'
5
+ require 'acts_as_ferret/server/config'
35
6
 
36
- ################################################################################
37
- # treat the keys of the config data as methods
38
- def method_missing (name, *args)
39
- @config.has_key?(name.to_s) ? @config[name.to_s] : super
40
- end
7
+ module ActsAsFerret
8
+ module Server
41
9
 
42
- end
43
10
 
44
- #################################################################################
45
11
  # This class acts as a drb server listening for indexing and
46
12
  # search requests from models declared to 'acts_as_ferret :remote => true'
47
13
  #
48
14
  # Usage:
49
- # - modify RAILS_ROOT/config/ferret_server.yml to suit your needs.
15
+ # - modify Rails.root/config/ferret_server.yml to suit your needs.
50
16
  # - environments for which no section in the config file exists will use
51
17
  # the index locally (good for unit tests/development mode)
52
18
  # - run script/ferret_server to start the server:
@@ -55,41 +21,31 @@ module ActsAsFerret
55
21
  # script/ferret_server -e production stop
56
22
  #
57
23
  class Server
58
-
59
- #################################################################################
60
- # FIXME include detection of OS and include the correct file
61
- require 'unix_daemon'
62
- include(ActsAsFerret::Remote::UnixDaemon)
24
+ include UnixDaemon
63
25
 
64
26
 
65
- ################################################################################
66
27
  cattr_accessor :running
67
28
 
68
- ################################################################################
69
29
  def initialize
70
- ActiveRecord::Base.allow_concurrency = true
71
- require 'ar_mysql_auto_reconnect_patch'
72
- @cfg = ActsAsFerret::Remote::Config.new
30
+ @cfg = Config.new
73
31
  ActiveRecord::Base.logger = @logger = Logger.new(@cfg.log_file)
74
32
  ActiveRecord::Base.logger.level = Logger.const_get(@cfg.log_level.upcase) rescue Logger::DEBUG
75
33
  if @cfg.script
76
- path = File.join(RAILS_ROOT, @cfg.script)
34
+ path = File.join(Rails.root, @cfg.script)
77
35
  load path
78
36
  @logger.info "loaded custom startup script from #{path}"
79
37
  end
80
38
  end
81
39
 
82
- ################################################################################
83
40
  # start the server as a daemon process
84
41
  def start
85
- raise "ferret_server not configured for #{RAILS_ENV}" unless (@cfg.uri rescue nil)
42
+ raise "ferret_server not configured for #{Rails.env}" unless (@cfg.uri rescue nil)
86
43
  platform_daemon { run_drb_service }
87
44
  end
88
45
 
89
- ################################################################################
90
46
  # run the server and block until it exits
91
47
  def run
92
- raise "ferret_server not configured for #{RAILS_ENV}" unless (@cfg.uri rescue nil)
48
+ raise "ferret_server not configured for #{Rails.env}" unless (@cfg.uri rescue nil)
93
49
  run_drb_service
94
50
  end
95
51
 
@@ -103,7 +59,6 @@ module ActsAsFerret
103
59
  raise
104
60
  end
105
61
 
106
- #################################################################################
107
62
  # handles all incoming method calls, and sends them on to the correct local index
108
63
  # instance.
109
64
  #
@@ -227,7 +182,7 @@ module ActsAsFerret
227
182
  :create => true,
228
183
  :field_infos => ActsAsFerret::field_infos(index_definition),
229
184
  :path => File.join(index_definition[:index_base_dir], 'rebuild')
230
- Ferret::Index::Index.new(ferret_cfg).tap do |i|
185
+ returning Ferret::Index::Index.new(ferret_cfg) do |i|
231
186
  i.batch_size = index_definition[:reindex_batch_size]
232
187
  i.logger = @logger
233
188
  end