Sha256: f1f717a41b311b55337a111fcde68fc74223d772deff3edd9d42d178f85aac44
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
require File.expand_path("#{File.dirname(__FILE__)}/../require") Require.lib! module Mover module Base def self.included(base) unless base.included_modules.include?(Included) base.extend ClassMethods base.send :include, Included end end module ClassMethods def is_movable(*types) @movable_types = types self.class_eval do attr_accessor :movable_id class <<self attr_reader :movable_types end end types.each do |type| eval <<-RUBY class ::#{self.name}#{type.to_s.classify} < ActiveRecord::Base include Mover::Base::Record::InstanceMethods self.table_name = "#{self.table_name}_#{type}" def self.movable_type #{type.inspect} end def moved_from_class #{self.name} end end RUBY end extend Table extend Record::ClassMethods include Record::InstanceMethods end end end module Migration def self.included(base) unless base.included_modules.include?(Included) base.extend Migrator base.send :include, Included base.class_eval do class <<self alias_method :method_missing_without_mover, :method_missing alias_method :method_missing, :method_missing_with_mover end end end end end module Included end end ActiveRecord::Base.send(:include, Mover::Base) ActiveRecord::Migration.send(:include, Mover::Migration)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mover-0.1.1 | lib/mover.rb |