Module: MongoidExt

Defined in:
lib/mongoid_ext/paranoia.rb,
lib/mongoid_ext.rb,
lib/mongoid_ext/file.rb,
lib/mongoid_ext/tags.rb,
lib/mongoid_ext/filter.rb,
lib/mongoid_ext/random.rb,
lib/mongoid_ext/update.rb,
lib/mongoid_ext/storage.rb,
lib/mongoid_ext/slugizer.rb,
lib/mongoid_ext/voteable.rb,
lib/mongoid_ext/encryptor.rb,
lib/mongoid_ext/file_list.rb,
lib/mongoid_ext/modifiers.rb,
lib/mongoid_ext/versioning.rb,
lib/mongoid_ext/file_server.rb,
lib/mongoid_ext/criteria_ext.rb,
lib/mongoid_ext/document_ext.rb,
lib/mongoid_ext/mongo_mapper.rb,
lib/mongoid_ext/filter/parser.rb,
lib/mongoid_ext/filter/result_set.rb,
lib/mongoid_ext/types/open_struct.rb

Overview

Author:

  • David Cuadrado

Defined Under Namespace

Modules: CriteriaExt, DocumentExt, Encryptor, Filter, Modifiers, MongoMapper, Paranoia, Random, Slugizer, Storage, Tags, Update, Versioning, Voteable Classes: File, FileList, FileServer, OpenStruct

Class Method Summary collapse

Class Method Details

.initObject



61
62
63
64
65
# File 'lib/mongoid_ext.rb', line 61

def self.init
  Mongoid::GridFS.file_model.field :_id, :type => String # to keep backwards compat
  Mongoid.allow_dynamic_fields = true
  load_jsfiles(::File.dirname(__FILE__)+"/mongoid_ext/js")
end

.load_jsfiles(path) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/mongoid_ext.rb', line 67

def self.load_jsfiles(path)
  Dir.glob(::File.join(path, "*.js")) do |js_path|
    code = ::File.read(js_path)
    name = ::File.basename(js_path, ".js")

    # HACK: looks like ruby driver doesn't support this
    Mongoid.sessions.each do |session_name, _|
      Mongoid.session(session_name).command(:eval => "db.system.js.save({_id: '#{name}', value: #{code}})")
    end
  end
end