Sha256: 30449293e8c8ffca8f1cf51516af7636c0cdd9bd55045a281684e0651c6d97cf

Contents?: true

Size: 518 Bytes

Versions: 5

Compression:

Stored size: 518 Bytes

Contents

module Mongoid
  module I18n
    class LocalizedCriteria < Mongoid::Criteria
      def where(selector = nil)
        super
        expand_localized_fields_in_selector if selector.is_a?(Hash)
        self
      end
      
      protected
      
      def expand_localized_fields_in_selector
        @klass.fields.select { |k,f| @selector.keys.include?(k.to_sym) && f.type == LocalizedField }.each do |k,v|
          @selector["#{k}.#{::I18n.locale}"] = @selector.delete(k.to_sym)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mongoid_i18n-0.1.8 lib/mongoid/i18n/localized_criteria.rb
mongoid_i18n-0.1.7 lib/mongoid/i18n/localized_criteria.rb
mongoid_i18n-0.1.6 lib/mongoid/i18n/localized_criteria.rb
mongoid_i18n-0.1.5 lib/mongoid/i18n/localized_criteria.rb
mongoid_i18n-0.1.4 lib/mongoid/i18n/localized_criteria.rb