# encoding: utf-8 require 'mongoid' module Mongoid#:nodoc: module Document #:nodoc: def as_json(options = {}) attrs = super(options) attrs["id"] = attrs["_id"] attrs end end # module Relations #:nodoc: # module AutoSave # module ClassMethods #:nodoc: # def autosave(metadata) # if metadata.autosave? # set_callback :save, :after do |document| # relation = document.send(metadata.name) # # return true if document.try(:"autosave_for_#{metadata.name}?") == false # FIXME (Didier L.) add more control on the document side # # if relation # (relation.do_or_do_not(:in_memory) || Array.wrap(relation)).each do |doc| # doc.save # end # end # end # end # end # end # end # end module Fields #:nodoc: module Internal #:nodoc: class RawArray < Mongoid::Fields::Internal::Array def resizable?; false; end end end class RawArray < ::Array; end end class Criteria def to_liquid Locomotive::Liquid::Drops::ProxyCollection.new(self) end end # without callback feature module Callbacks #:nodoc: module ClassMethods #:nodoc: def without_callback(*args, &block) skip_callback(*args) yield set_callback(*args) end end end # make the validators work with localized field module Validations #:nodoc: def read_attribute_for_validation_with_localization(attr) if fields[attr.to_s] && fields[attr.to_s].localized? send(attr.to_sym) else read_attribute_for_validation_without_localization(attr) end end alias_method_chain :read_attribute_for_validation, :localization class PresenceValidator < ActiveModel::EachValidator def validate_each(document, attribute, value) document.errors.add(attribute, :blank, options) if value.blank? end end end end