Sha256: e06889e905e4024ba879e1f2f2788b3e46656f91025e2a57d78c4e0271f465e3

Contents?: true

Size: 693 Bytes

Versions: 4

Compression:

Stored size: 693 Bytes

Contents

# frozen_string_literal: true

class Code
  class Object
    class Time < Object
      DEFAULT_ZONE = "Etc/UTC"

      attr_reader :raw

      def initialize(time)
        @raw = time
      end

      def self.name
        "Time"
      end

      def self.call(**args)
        operator = args.fetch(:operator, nil)

        case operator.to_s
        when "tomorrow"
          sig(args)
          code_tomorrow
        else
          super
        end
      end

      def self.code_tomorrow
        ::Time.zone ||= DEFAULT_ZONE
        new(::Time.zone.tomorrow.beginning_of_day)
      end

      def inspect
        to_s
      end

      def to_s
        raw.to_s
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
code-ruby-0.8.3 lib/code/object/time.rb
code-ruby-0.8.2 lib/code/object/time.rb
code-ruby-0.8.1 lib/code/object/time.rb
code-ruby-0.8.0 lib/code/object/time.rb