Sha256: e2583e2f72665fa58b24aef89da7e53f8430820e5e77369a4b45d1cc1929b9d6

Contents?: true

Size: 743 Bytes

Versions: 1

Compression:

Stored size: 743 Bytes

Contents

module DuckPuncher
  module Ducks
    module Object
      def clone!
        Marshal.load Marshal.dump self
      end unless defined? clone!

      def require!(file_or_gem, version = '')
        if DuckPuncher::GemInstaller.new.perform(file_or_gem, version)
          require file_or_gem.tr('-', '/')
        end
      end

      def punch(duck_name = self.class.name)
        DuckPuncher.delegate_class(duck_name, self).new(self)
      end

      def track
        begin
          require 'object_tracker'
        rescue LoadError
          DuckPuncher.punch! :Object, only: :require! unless respond_to? :require!
          require!('object_tracker')
        end
        extend ::ObjectTracker
        track_all!
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
duck_puncher-2.16.0 lib/duck_puncher/ducks/object.rb