Sha256: 2d299f6052f279b6ab035e9a24d70709930953b392853354172f75df2865b402
Contents?: true
Size: 489 Bytes
Versions: 2
Compression:
Stored size: 489 Bytes
Contents
class EmbeddedHash < Hash include ActiveModel::Validations def initialize(other = {}) other.each do |k,v| self[k] = v end self["_id"] ||= BSON::ObjectId.new.to_s end def self.field(name, opts = {}) define_method(name) do self[name.to_s] ||= opts[:default].kind_of?(Proc) ? opts[:default].call : opts[:default] end define_method("#{name}=") do |v| self[name.to_s] = v end end def id self["_id"] end alias :_id :id end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mongoid_ext-0.6.2 | lib/mongoid_ext/types/embedded_hash.rb |
mongoid_ext-0.6.1 | lib/mongoid_ext/types/embedded_hash.rb |