Sha256: 2cc276308c996789753bb5f057cbca3a704363a91e4fd3fac0d6f0538545c40f
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
module Mongoo module GridFs module DescribeDsl def grid_fs_file(name, opts={}) define_grid_fs_file_method(name, opts) end def grid_fs_files(name, opts={}) define_grid_fs_files_method(name, opts) end def define_grid_fs_file_method(name, opts) attrib_name = "gridfs_#{name}" attribute(attrib_name, :type => :hash) blk = Proc.new { if file = instance_variable_get("@#{name}") file else db_lambda = opts[:db] || lambda { self.db } container = get_or_set(attrib_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_file_methods def define_grid_fs_files_method(name, opts) attrib_name = "gridfs_#{name}" attribute(attrib_name, :type => :hash) blk = Proc.new { if files = instance_variable_get("@#{name}") files else db_lambda = opts[:db] || lambda { self.db } container = get_or_set(attrib_name, {}) files = Mongoo::GridFs::Files.new(container, db_lambda) instance_variable_set("@#{name}", files) end } @klass.send(:define_method, name, &blk) end end # DescribeDsl end # GridFs end # Mongoo class Mongoo::DescribeDsl include Mongoo::GridFs::DescribeDsl end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mongoo-0.5.2 | lib/mongoo/grid_fs/describe_dsl.rb |
mongoo-0.5.1 | lib/mongoo/grid_fs/describe_dsl.rb |
mongoo-0.5.0 | lib/mongoo/grid_fs/describe_dsl.rb |