module Mongo::WriteConcern
Constants
- DEFAULT_WRITE_CONCERN
- VALID_KEYS
Attributes
legacy_write_concern[R]
Public Class Methods
gle?(write_concern)
click to toggle source
# File lib/mongo/functional/write_concern.rb, line 56 def self.gle?(write_concern) (write_concern[:w].is_a? Symbol) || (write_concern[:w].is_a? String) || write_concern[:w] > 0 || write_concern[:j] || write_concern[:fsync] || write_concern[:wtimeout] end
Public Instance Methods
get_write_concern(opts, parent=nil)
click to toggle source
todo: throw exception for conflicting write concern options
# File lib/mongo/functional/write_concern.rb, line 47 def get_write_concern(opts, parent=nil) write_concern_from_legacy(opts) if opts.key?(:safe) || legacy_write_concern write_concern = DEFAULT_WRITE_CONCERN.dup write_concern.merge!(parent.write_concern) if parent write_concern.merge!(opts.reject {|k,v| !VALID_KEYS.include?(k)}) write_concern[:w] = write_concern[:w].to_s if write_concern[:w].is_a?(Symbol) write_concern end
write_concern_from_legacy(opts)
click to toggle source
# File lib/mongo/functional/write_concern.rb, line 23 def write_concern_from_legacy(opts) # Warn if 'safe' parameter is being used, if opts.key?(:safe) && !@@safe_warn && !ENV['TEST_MODE'] warn "[DEPRECATED] The 'safe' write concern option has been deprecated in favor of 'w'." @@safe_warn = true end # nil: set :w => 0 # false: set :w => 0 # true: set :w => 1 # hash: set :w => 0 and merge with opts unless opts.has_key?(:w) opts[:w] = 0 # legacy default, unacknowledged safe = opts.delete(:safe) if(safe && safe.is_a?(Hash)) opts.merge!(safe) elsif(safe == true) opts[:w] = 1 end end end