Sha256: 7610b3cdf757d922135bd7ac7a5027e863345cefee1fb2c4e779fa3f746819f7

Contents?: true

Size: 1022 Bytes

Versions: 2

Compression:

Stored size: 1022 Bytes

Contents

require 'groundhog_day/version'
require 'groundhog_day/date_extensions'
require 'groundhog_day/time_extensions'
require 'groundhog_day/datetime_extensions'
require 'date'

module GroundhogDay
  class << self
    def enable!(date: Date.new(1982, 6, 16))
      @date = parse_date date
      Time.singleton_class.prepend     TimeExtensions     unless Time.singleton_class.ancestors.include?     TimeExtensions
      Date.singleton_class.prepend     DateExtensions     unless Date.singleton_class.ancestors.include?     DateExtensions
      DateTime.singleton_class.prepend DateTimeExtensions unless DateTime.singleton_class.ancestors.include? DateTimeExtensions
      @enabled = true
    end

    def disable!
      @enabled = false
    end

    def enabled?
      @enabled
    end

    def date
      @date
    end

    def date=(value)
      @date = value.to_date
    end

    private

    def parse_date(date)
      if date.is_a? String
        Date.parse date
      else
        date.to_date
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
groundhog_day-0.1.1 lib/groundhog_day.rb
groundhog_day-0.1.0 lib/groundhog_day.rb