Sha256: 5db42e5dd4073659e9a078a57699a87b7582a7050bb4c95b9666540559c91a06

Contents?: true

Size: 750 Bytes

Versions: 8

Compression:

Stored size: 750 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.to_sym, 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

8 entries across 8 versions & 1 rubygems

Version Path
duck_puncher-2.15.0 lib/duck_puncher/ducks/object.rb
duck_puncher-2.14.1 lib/duck_puncher/ducks/object.rb
duck_puncher-2.14.0 lib/duck_puncher/ducks/object.rb
duck_puncher-2.13.0 lib/duck_puncher/ducks/object.rb
duck_puncher-2.12.1 lib/duck_puncher/ducks/object.rb
duck_puncher-2.12.0 lib/duck_puncher/ducks/object.rb
duck_puncher-2.11.0 lib/duck_puncher/ducks/object.rb
duck_puncher-2.10.2 lib/duck_puncher/ducks/object.rb