Sha256: f1c7b5d794c7ce1697bfc5a2cfc33f0af66e0ac7d42e6e59d19a58b8511faabc

Contents?: true

Size: 761 Bytes

Versions: 8

Compression:

Stored size: 761 Bytes

Contents

# frozen_string_literal: true

class Code
  class Object
    class Date < Object
      attr_reader :raw

      def initialize(date)
        date = date.raw if date.is_a?(Date)
        @raw = date.to_date
      end

      def self.name
        "Date"
      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 ||= Time::DEFAULT_ZONE
        new(::Time.zone.tomorrow)
      end

      def inspect
        to_s
      end

      def to_s
        raw.to_s
      end

      def as_json(...)
        raw.as_json(...)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
code-ruby-0.11.0 lib/code/object/date.rb
code-ruby-0.10.4 lib/code/object/date.rb
code-ruby-0.10.3 lib/code/object/date.rb
code-ruby-0.10.2 lib/code/object/date.rb
code-ruby-0.10.1 lib/code/object/date.rb
code-ruby-0.10.0 lib/code/object/date.rb
code-ruby-0.9.3 lib/code/object/date.rb
code-ruby-0.9.2 lib/code/object/date.rb