Module: Sodium::Delegate
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.class_methods(base) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/sodium/delegate.rb', line 40 def self.class_methods(base) Module.new do define_method :new do |*args, &block| return super(*args, &block) unless self == base return self.implementation.new(*args, &block) end end end |
.included(base) ⇒ Object
4 5 6 7 |
# File 'lib/sodium/delegate.rb', line 4 def self.included(base) base.send :extend, ClassMethods base.send :extend, self.class_methods(base) end |
Instance Method Details
#primitive ⇒ Object
49 50 51 |
# File 'lib/sodium/delegate.rb', line 49 def primitive self.class.primitive end |