NAME
shared.rb
DESCRIPTION
shared.rb provides a super easy way to share code between classes or modules
in a simple way. shared code can be at the class and/or instance level and
users deferred evaluation so this is more powerful that the normal ruby
module inclusion facilities on which it is based.
SYNOPSIS
require 'shared'
Shared 'methods' do
class << self
attr :classname
end
@classname = name.downcase
def objectname
self.class.classname + "(#{ object_id })"
end
end
class C
include Shared('methods')
end
class B
include Shared('methods')
end
p C.classname #=> 'c'
p C.new.objectname #=> 'c(1234)'
p B.classname #=> 'b'
p B.new.objectname #=> 'b(4567)'