Module: Sodium::Delegate

Included in:
Auth, Box, Hash, OneTimeAuth, SecretBox, Sign
Defined in:
lib/sodium/delegate.rb

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

#primitiveObject



49
50
51
# File 'lib/sodium/delegate.rb', line 49

def primitive
  self.class.primitive
end