Sha256: 24caae8aec5f32119455adb3b8105b31d9f2e2e3cc4a42503ef76ed39ff30da4

Contents?: true

Size: 756 Bytes

Versions: 3

Compression:

Stored size: 756 Bytes

Contents

module Tins
  module TimeDummy
    def self.included(modul)
      modul.module_eval do
        class << self
          alias really_new new
          remove_method :now rescue nil
          remove_method :new rescue nil
        end

        extend ClassMethods
      end
    end

    module ClassMethods
      attr_writer :dummy

      def dummy(value = nil)
        if value.nil?
          @dummy
        else
          begin
            old_dummy = @dummy
            @dummy = value
            yield
          ensure
            @dummy = old_dummy
          end
        end
      end

      def new
        if dummy
          dummy.dup
        else
          really_new
        end
      end

      alias now new
    end
  end
end

require 'tins/alias'

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tins-0.3.12 lib/tins/time_dummy.rb
tins-0.3.11 lib/tins/time_dummy.rb
tins-0.3.10 lib/tins/time_dummy.rb