module Realm::Mixins::Decorator

Public Class Methods

[](decorated) click to toggle source
# File lib/realm/mixins/decorator.rb, line 6
def self.[](decorated) # rubocop:disable Metrics/MethodLength
  Module.new do
    def method_missing(...)
      _decorated.send(...)
    end

    def respond_to_missing?(...)
      _decorated.respond_to?(...)
    end

    if decorated.to_s[0] == '@'
      define_method :initialize do |value|
        instance_variable_set(decorated, value)
      end

      define_method :_decorated do
        instance_variable_get(decorated)
      end
    else
      define_method :_decorated do
        send(decorated)
      end
    end
  end
end

Public Instance Methods

method_missing(...) click to toggle source
# File lib/realm/mixins/decorator.rb, line 8
def method_missing(...)
  _decorated.send(...)
end
respond_to_missing?(...) click to toggle source
# File lib/realm/mixins/decorator.rb, line 12
def respond_to_missing?(...)
  _decorated.respond_to?(...)
end