Sha256: 25a1f8e69fe3945cb6b96010e4863af1584b918d71267314e3b8b6794439be24
Contents?: true
Size: 855 Bytes
Versions: 3
Compression:
Stored size: 855 Bytes
Contents
module AgilideeCommons module PolymorphicId module ClassMethods def polymorphic_id_for(relation_name) module_src = File.read(__FILE__).split("__END__").last module_src = module_src.gsub("relation", relation_name.to_s) send :include, eval(module_src) end end def self.included(model) model.send(:extend, AgilideeCommons::PolymorphicId::ClassMethods) end def guid return nil if new_record? "#{self.class}-#{self.id}" end end end # __END__ Module.new do def relation_guid return nil if relation_type.blank? || relation_id.blank? "#{relation_type}-#{relation_id}" end def relation_guid=(guid) return self.relation = nil if guid.blank? type, id = guid.split("-") self.relation = type.constantize.find(id) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
agilidee_commons-1.0.5 | lib/agilidee_commons/polymorphic_id.rb |
agilidee_commons-1.0.4 | lib/agilidee_commons/polymorphic_id.rb |
agilidee_commons-1.0.3 | lib/agilidee_commons/polymorphic_id.rb |