Sha256: a24cd11cc16f54e9cbaee431eaa978ff14608ba9bca8b1bae7717e068ba2a372
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module DataMapper module Persevere def self.enhance(object) Persevere::Proxy[object] end class Proxy instance_methods.each do |m| undef_method(m) if m.to_s !~ /(?:^__|^nil\?$|^send$|^object_id$|^extend$)/ end def raise(*args) ::Object.send(:raise, *args) end def self.[](target) proxy = self.new(target) case target when DataMapper::Resource proxy.extend(JSONSupport::Core) proxy.extend(JSONSupport::Resource) when DataMapper::Model proxy.extend(JSONSupport::Core) proxy.extend(JSONSupport::Model) proxy.extend(JSONSupport::Model::Properties) when DataMapper::Property proxy.extend(JSONSupport::Core) proxy.extend(JSONSupport::Property) when DataMapper::Query proxy.extend(Persevere::Query) else return target end return proxy end def initialize(target) @target = target end def method_missing(method, *args, &block) @target.send(method, *args, &block) end end # Proxy end # Persevere end # DataMapper
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dm-persevere-adapter-0.72.0 | lib/persevere_adapter/enhance.rb |