module Mongoo::GridFs::DescribeDsl

Public Instance Methods

define_grid_fs_file_method(name, opts) click to toggle source
# File lib/mongoo/grid_fs/describe_dsl.rb, line 12
def define_grid_fs_file_method(name, opts)
  attribute(name, :type => :hash, :define_methods => false)

  blk = Proc.new {
    if file = instance_variable_get("@#{name}")
      file
    else
      db_lambda = opts[:db] || lambda { self.db }
      container = get_or_set(name, {})
      file = Mongoo::GridFs::File.new(container, db_lambda)
      instance_variable_set("@#{name}", file)
    end
  }
  @klass.send(:define_method, name, &blk)
end
define_grid_fs_files_method(name, opts) click to toggle source
# File lib/mongoo/grid_fs/describe_dsl.rb, line 28
def define_grid_fs_files_method(name, opts)
  attribute(name, :type => :hash, :define_methods => false)

  blk = Proc.new {
    if files = instance_variable_get("@#{name}")
      files
    else
      db_lambda = opts[:db] || lambda { self.db }
      container = get_or_set(name, {})
      files = Mongoo::GridFs::Files.new(container, db_lambda)
      instance_variable_set("@#{name}", files)
    end
  }
  @klass.send(:define_method, name, &blk)
end
grid_fs_file(name, opts={}) click to toggle source
# File lib/mongoo/grid_fs/describe_dsl.rb, line 4
def grid_fs_file(name, opts={})
  define_grid_fs_file_method(name, opts)
end
grid_fs_files(name, opts={}) click to toggle source
# File lib/mongoo/grid_fs/describe_dsl.rb, line 8
def grid_fs_files(name, opts={})
  define_grid_fs_files_method(name, opts)
end