Sha256: dc34fd42896013b24fa10bbd6386c2b5404fad4dd75e942cdb606c2696891d05

Contents?: true

Size: 1.36 KB

Versions: 2

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

require_relative './date'

# :nodoc:
module Zakuro
  # :nodoc:
  module Gateway
    # :nodoc:
    class Locale
      #
      # Range 範囲
      #
      class Range
        # @return [LocaleDate] 開始日
        attr_reader :start_date
        # @return [LocaleDate] 終了日
        attr_reader :last_date

        #
        # 初期化
        #
        # @param [Hash<Symbol, Object>] range 範囲
        #
        def initialize(range:)
          @start_date = Date.new
          @last_date = Date.new

          return unless range

          @start_date = Date.new(date: range[:start])
          @last_date = Date.new(date: range[:last])
        end

        #
        # 西暦日は有効か
        #
        # @return [True] 有効
        # @return [False] 無効
        #
        def valid_western?
          @start_date.valid_western? && @last_date.valid_western?
        end

        #
        # 和暦日は有効か
        #
        # @return [True] 有効
        # @return [False] 無効
        #
        def valid_japan?
          @start_date.valid_japan? && @last_date.valid_japan?
        end

        #
        # 不正か
        #
        # @return [True] 不正
        # @return [False] 不正なし
        #
        def invalid?
          @start_date.invalid? && @last_date.invalid?
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
zakuro-0.7.2 lib/zakuro/gateway/locale/range.rb
zakuro-0.7.0 lib/zakuro/gateway/locale/range.rb