Sha256: 851ce4eae8cd9f14ad230fac6f1918e2f9ff33dbe2989640afaa78286ff0aa02

Contents?: true

Size: 642 Bytes

Versions: 1

Compression:

Stored size: 642 Bytes

Contents

require 'delegate'

module Zertico
  class Delegator < SimpleDelegator
    def self.find(id)
      new(interface_class.find(id))
    end

    def interface
      __getobj__
    end

    protected

    def self.interface_name
      self.interface_class.name.split('::').last.singularize.underscore
    end

    def self.interface_class
      begin
        self.name.chomp('Delegator').constantize
      rescue NameError
        self.name.chomp('Delegator').split('::').last.constantize
      end
    end

    def interface_name
      self.class.interface_name
    end

    def interface_class
      self.class.interface_class
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zertico-1.3.0 lib/zertico/delegator.rb