Sha256: eb102c1e5513cff6c6a76e3bd6fe7bedf0791c3a128d1e69e50ab8bc18a3863b
Contents?: true
Size: 990 Bytes
Versions: 6
Compression:
Stored size: 990 Bytes
Contents
module Arel class Session class << self attr_accessor :instance alias_method :manufacture, :new def start if defined?(@started) && @started yield else begin @started = true @instance = manufacture metaclass.class_eval do undef :new alias_method :new, :instance end yield ensure metaclass.class_eval do undef :new alias_method :new, :manufacture end @started = false end end end end module CRUD def create(insert) insert.call end def read(select) (@read ||= Hash.new do |hash, select| hash[select] = select.call end)[select] end def update(update) update.call end def delete(delete) delete.call end end include CRUD end end
Version data entries
6 entries across 6 versions & 1 rubygems