zakuro 0.9.1 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +20 -18
 - data/VERSION +1 -1
 - data/doc/condition.md +3 -1
 - data/doc/dropped_date.md +25 -0
 - data/doc/expection.md +11 -0
 - data/doc/operation/csv/month.csv +5 -5
 - data/doc/operation/operation.xlsx +0 -0
 - data/doc/vanished_date.md +26 -0
 - data/lib/zakuro/calculation/cycle/abstract_remainder.rb +26 -0
 - data/lib/zakuro/calculation/cycle/abstract_solar_term.rb +1 -1
 - data/lib/zakuro/calculation/era/gengou/abstract_scroll.rb +2 -2
 - data/lib/zakuro/calculation/era/gengou/dated_scroll.rb +6 -2
 - data/lib/zakuro/calculation/era/gengou/internal/counter.rb +5 -5
 - data/lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb +12 -5
 - data/lib/zakuro/calculation/era/gengou/internal/reserve/abstract_range.rb +14 -8
 - data/lib/zakuro/calculation/era/gengou/internal/reserve/dated_list.rb +3 -2
 - data/lib/zakuro/calculation/era/gengou/internal/reserve/dated_range.rb +4 -2
 - data/lib/zakuro/calculation/era/gengou/internal/reserve/named_list.rb +5 -3
 - data/lib/zakuro/calculation/era/gengou/internal/reserve/named_range.rb +10 -5
 - data/lib/zakuro/calculation/era/gengou/named_scroll.rb +5 -2
 - data/lib/zakuro/calculation/monthly/initialized_month.rb +4 -2
 - data/lib/zakuro/calculation/monthly/meta/all_solar_term.rb +64 -0
 - data/lib/zakuro/calculation/monthly/meta/meta_collector.rb +80 -0
 - data/lib/zakuro/calculation/monthly/meta.rb +60 -0
 - data/lib/zakuro/calculation/monthly/month.rb +60 -5
 - data/lib/zakuro/calculation/monthly/operated_month.rb +6 -3
 - data/lib/zakuro/calculation/option/dropped_date/location.rb +12 -23
 - data/lib/zakuro/calculation/option/vanished_date/location.rb +9 -2
 - data/lib/zakuro/calculation/range/abstract_full_range.rb +19 -2
 - data/lib/zakuro/calculation/range/abstract_operation_range.rb +20 -2
 - data/lib/zakuro/calculation/range/dated_full_range.rb +3 -1
 - data/lib/zakuro/calculation/range/dated_operation_range.rb +3 -1
 - data/lib/zakuro/calculation/range/medieval_annual_range.rb +1 -1
 - data/lib/zakuro/calculation/range/named_full_range.rb +3 -1
 - data/lib/zakuro/calculation/range/named_operation_range.rb +3 -1
 - data/lib/zakuro/calculation/range/transfer/gengou_scroller.rb +2 -1
 - data/lib/zakuro/calculation/range/transfer/year_boundary.rb +10 -8
 - data/lib/zakuro/calculation/stella/solar/abstract_average.rb +8 -34
 - data/lib/zakuro/calculation/summary/internal/option.rb +51 -25
 - data/lib/zakuro/calculation/summary/western/specifier/single_day.rb +1 -1
 - data/lib/zakuro/era/japan/calendar.rb +2 -2
 - data/lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb +1 -1
 - data/lib/zakuro/era/japan/gengou/alignment.rb +14 -2
 - data/lib/zakuro/era/japan/gengou/resource/parser.rb +83 -25
 - data/lib/zakuro/era/japan/gengou/resource/type.rb +81 -26
 - data/lib/zakuro/era/japan/gengou/resource/validator.rb +102 -23
 - data/lib/zakuro/era/japan/gengou/resource/yaml/set-001-until-south.yaml +1123 -375
 - data/lib/zakuro/era/japan/gengou/resource/yaml/set-002-from-north.yaml +487 -163
 - data/lib/zakuro/era/japan/gengou/resource/yaml/set-003-modern.yaml +30 -10
 - data/lib/zakuro/era/japan/gengou/resource.rb +16 -0
 - data/lib/zakuro/era/japan/gengou.rb +7 -4
 - data/lib/zakuro/era/western/calendar.rb +5 -11
 - data/lib/zakuro/era/western/date_text.rb +40 -0
 - data/lib/zakuro/gateway/locale/date.rb +2 -2
 - data/lib/zakuro/operation/month/validator.rb +7 -1
 - data/lib/zakuro/operation/yaml/month.yaml +15 -15
 - data/lib/zakuro/output/logger.rb +21 -3
 - data/lib/zakuro/tools/remainder_comparer.rb +97 -0
 - metadata +7 -2
 
| 
         @@ -5,16 +5,24 @@ last_year: 
     | 
|
| 
       5 
5 
     | 
    
         
             
              japan: 7981
         
     | 
| 
       6 
6 
     | 
    
         
             
              western: 9999
         
     | 
| 
       7 
7 
     | 
    
         
             
            last_date:
         
     | 
| 
       8 
     | 
    
         
            -
               
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
              calculation:
         
     | 
| 
      
 9 
     | 
    
         
            +
                japan: ''
         
     | 
| 
      
 10 
     | 
    
         
            +
                western: ''
         
     | 
| 
      
 11 
     | 
    
         
            +
              operation:
         
     | 
| 
      
 12 
     | 
    
         
            +
                japan: 令和7981年12月31日
         
     | 
| 
      
 13 
     | 
    
         
            +
                western: '9999-12-31'
         
     | 
| 
       10 
14 
     | 
    
         
             
            list:
         
     | 
| 
       11 
15 
     | 
    
         
             
            - name: 明治
         
     | 
| 
       12 
16 
     | 
    
         
             
              start_year:
         
     | 
| 
       13 
17 
     | 
    
         
             
                japan: 1
         
     | 
| 
       14 
18 
     | 
    
         
             
                western: 1868
         
     | 
| 
       15 
19 
     | 
    
         
             
              start_date:
         
     | 
| 
       16 
     | 
    
         
            -
                 
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                calculation:
         
     | 
| 
      
 21 
     | 
    
         
            +
                  japan: ''
         
     | 
| 
      
 22 
     | 
    
         
            +
                  western: ''
         
     | 
| 
      
 23 
     | 
    
         
            +
                operation:
         
     | 
| 
      
 24 
     | 
    
         
            +
                  japan: 明治01年09月08日
         
     | 
| 
      
 25 
     | 
    
         
            +
                  western: '1868-10-23'
         
     | 
| 
       18 
26 
     | 
    
         
             
              disuse:
         
     | 
| 
       19 
27 
     | 
    
         
             
                new_year_date: '1868-1-25'
         
     | 
| 
       20 
28 
     | 
    
         
             
                note: ''
         
     | 
| 
         @@ -23,8 +31,12 @@ list: 
     | 
|
| 
       23 
31 
     | 
    
         
             
                japan: 1
         
     | 
| 
       24 
32 
     | 
    
         
             
                western: 1912
         
     | 
| 
       25 
33 
     | 
    
         
             
              start_date:
         
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 34 
     | 
    
         
            +
                calculation:
         
     | 
| 
      
 35 
     | 
    
         
            +
                  japan: ''
         
     | 
| 
      
 36 
     | 
    
         
            +
                  western: ''
         
     | 
| 
      
 37 
     | 
    
         
            +
                operation:
         
     | 
| 
      
 38 
     | 
    
         
            +
                  japan: 大正01年07月30日
         
     | 
| 
      
 39 
     | 
    
         
            +
                  western: '1912-7-30'
         
     | 
| 
       28 
40 
     | 
    
         
             
              disuse:
         
     | 
| 
       29 
41 
     | 
    
         
             
                new_year_date: '1912-1-1'
         
     | 
| 
       30 
42 
     | 
    
         
             
                note: ''
         
     | 
| 
         @@ -33,8 +45,12 @@ list: 
     | 
|
| 
       33 
45 
     | 
    
         
             
                japan: 1
         
     | 
| 
       34 
46 
     | 
    
         
             
                western: 1926
         
     | 
| 
       35 
47 
     | 
    
         
             
              start_date:
         
     | 
| 
       36 
     | 
    
         
            -
                 
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
      
 48 
     | 
    
         
            +
                calculation:
         
     | 
| 
      
 49 
     | 
    
         
            +
                  japan: ''
         
     | 
| 
      
 50 
     | 
    
         
            +
                  western: ''
         
     | 
| 
      
 51 
     | 
    
         
            +
                operation:
         
     | 
| 
      
 52 
     | 
    
         
            +
                  japan: 昭和01年12月25日
         
     | 
| 
      
 53 
     | 
    
         
            +
                  western: '1926-12-25'
         
     | 
| 
       38 
54 
     | 
    
         
             
              disuse:
         
     | 
| 
       39 
55 
     | 
    
         
             
                new_year_date: '1926-1-1'
         
     | 
| 
       40 
56 
     | 
    
         
             
                note: ''
         
     | 
| 
         @@ -43,8 +59,12 @@ list: 
     | 
|
| 
       43 
59 
     | 
    
         
             
                japan: 1
         
     | 
| 
       44 
60 
     | 
    
         
             
                western: 2019
         
     | 
| 
       45 
61 
     | 
    
         
             
              start_date:
         
     | 
| 
       46 
     | 
    
         
            -
                 
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 62 
     | 
    
         
            +
                calculation:
         
     | 
| 
      
 63 
     | 
    
         
            +
                  japan: ''
         
     | 
| 
      
 64 
     | 
    
         
            +
                  western: ''
         
     | 
| 
      
 65 
     | 
    
         
            +
                operation:
         
     | 
| 
      
 66 
     | 
    
         
            +
                  japan: 令和01年05月01日
         
     | 
| 
      
 67 
     | 
    
         
            +
                  western: '2019-5-1'
         
     | 
| 
       48 
68 
     | 
    
         
             
              disuse:
         
     | 
| 
       49 
69 
     | 
    
         
             
                new_year_date: '2019-1-1'
         
     | 
| 
       50 
70 
     | 
    
         
             
                note: ''
         
     | 
| 
         @@ -27,6 +27,22 @@ module Zakuro 
     | 
|
| 
       27 
27 
     | 
    
         
             
                        __dir__
         
     | 
| 
       28 
28 
     | 
    
         
             
                      ))
         
     | 
| 
       29 
29 
     | 
    
         
             
                    ].freeze
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                    # @return [Array<Set>] 元号セット情報リスト(運用値)
         
     | 
| 
      
 32 
     | 
    
         
            +
                    OPERATED_LIST = [
         
     | 
| 
      
 33 
     | 
    
         
            +
                      Parser.run(filepath: File.expand_path(
         
     | 
| 
      
 34 
     | 
    
         
            +
                        './resource/yaml/set-001-until-south.yaml',
         
     | 
| 
      
 35 
     | 
    
         
            +
                        __dir__
         
     | 
| 
      
 36 
     | 
    
         
            +
                      ), operated: true),
         
     | 
| 
      
 37 
     | 
    
         
            +
                      Parser.run(filepath: File.expand_path(
         
     | 
| 
      
 38 
     | 
    
         
            +
                        './resource/yaml/set-002-from-north.yaml',
         
     | 
| 
      
 39 
     | 
    
         
            +
                        __dir__
         
     | 
| 
      
 40 
     | 
    
         
            +
                      ), operated: true),
         
     | 
| 
      
 41 
     | 
    
         
            +
                      Parser.run(filepath: File.expand_path(
         
     | 
| 
      
 42 
     | 
    
         
            +
                        './resource/yaml/set-003-modern.yaml',
         
     | 
| 
      
 43 
     | 
    
         
            +
                        __dir__
         
     | 
| 
      
 44 
     | 
    
         
            +
                      ), operated: true)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    ].freeze
         
     | 
| 
       30 
46 
     | 
    
         
             
                  end
         
     | 
| 
       31 
47 
     | 
    
         
             
                end
         
     | 
| 
       32 
48 
     | 
    
         
             
              end
         
     | 
| 
         @@ -26,13 +26,15 @@ module Zakuro 
     | 
|
| 
       26 
26 
     | 
    
         
             
                    # @param [Integer] line 行番号
         
     | 
| 
       27 
27 
     | 
    
         
             
                    # @param [Western::Calendar] start_date 開始日
         
     | 
| 
       28 
28 
     | 
    
         
             
                    # @param [Western::Calendar] last_date 終了日
         
     | 
| 
      
 29 
     | 
    
         
            +
                    # @param [True, False] operated 運用値設定
         
     | 
| 
       29 
30 
     | 
    
         
             
                    #
         
     | 
| 
       30 
31 
     | 
    
         
             
                    # @return [Array<LinearGengou>] 該当行の元号
         
     | 
| 
       31 
32 
     | 
    
         
             
                    #
         
     | 
| 
       32 
33 
     | 
    
         
             
                    def line(line: FIRST_LINE,
         
     | 
| 
       33 
     | 
    
         
            -
                             start_date: Western::Calendar.new, last_date: Western::Calendar.new 
     | 
| 
      
 34 
     | 
    
         
            +
                             start_date: Western::Calendar.new, last_date: Western::Calendar.new,
         
     | 
| 
      
 35 
     | 
    
         
            +
                             operated: false)
         
     | 
| 
       34 
36 
     | 
    
         
             
                      Alignment.get(
         
     | 
| 
       35 
     | 
    
         
            -
                        line: line, start_date: start_date, last_date: last_date
         
     | 
| 
      
 37 
     | 
    
         
            +
                        line: line, start_date: start_date, last_date: last_date, operated: operated
         
     | 
| 
       36 
38 
     | 
    
         
             
                      )
         
     | 
| 
       37 
39 
     | 
    
         
             
                    end
         
     | 
| 
       38 
40 
     | 
    
         | 
| 
         @@ -42,11 +44,12 @@ module Zakuro 
     | 
|
| 
       42 
44 
     | 
    
         
             
                    # @param [Integer] line 行番号
         
     | 
| 
       43 
45 
     | 
    
         
             
                    # @param [Western::Calendar] start_date 開始日
         
     | 
| 
       44 
46 
     | 
    
         
             
                    # @param [Western::Calendar] last_date 終了日
         
     | 
| 
      
 47 
     | 
    
         
            +
                    # @param [True, False] operated 運用値設定
         
     | 
| 
       45 
48 
     | 
    
         
             
                    #
         
     | 
| 
       46 
49 
     | 
    
         
             
                    # @return [Array<LinearGengou>] 該当行の元号
         
     | 
| 
       47 
50 
     | 
    
         
             
                    #
         
     | 
| 
       48 
     | 
    
         
            -
                    def line_by_name(line: FIRST_LINE, name:)
         
     | 
| 
       49 
     | 
    
         
            -
                      Alignment.get_by_name(line: line, name: name)
         
     | 
| 
      
 51 
     | 
    
         
            +
                    def line_by_name(line: FIRST_LINE, name:, operated: false)
         
     | 
| 
      
 52 
     | 
    
         
            +
                      Alignment.get_by_name(line: line, name: name, operated: operated)
         
     | 
| 
       50 
53 
     | 
    
         
             
                    end
         
     | 
| 
       51 
54 
     | 
    
         
             
                  end
         
     | 
| 
       52 
55 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1,5 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require_relative './date_text'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       3 
5 
     | 
    
         
             
            require 'date'
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
       5 
7 
     | 
    
         
             
            # :nodoc:
         
     | 
| 
         @@ -402,9 +404,7 @@ module Zakuro 
     | 
|
| 
       402 
404 
     | 
    
         
             
                    # @raise [ArgumentError] 引数エラー
         
     | 
| 
       403 
405 
     | 
    
         
             
                    #
         
     | 
| 
       404 
406 
     | 
    
         
             
                    def parse(text: '', type: Type::DEFAULT)
         
     | 
| 
       405 
     | 
    
         
            -
                      unless  
     | 
| 
       406 
     | 
    
         
            -
                        raise ArgumentError, "invalid date string: #{text}"
         
     | 
| 
       407 
     | 
    
         
            -
                      end
         
     | 
| 
      
 407 
     | 
    
         
            +
                      raise ArgumentError, "invalid date string: #{text}" unless valid_date_text(text: text)
         
     | 
| 
       408 
408 
     | 
    
         | 
| 
       409 
409 
     | 
    
         
             
                      start = DATE_START.fetch(type, DATE_START[Type::DEFAULT])
         
     | 
| 
       410 
410 
     | 
    
         
             
                      date = Date.parse(text, start)
         
     | 
| 
         @@ -423,14 +423,8 @@ module Zakuro 
     | 
|
| 
       423 
423 
     | 
    
         
             
                    # @return [True] 正しい
         
     | 
| 
       424 
424 
     | 
    
         
             
                    # @return [True] 正しくない
         
     | 
| 
       425 
425 
     | 
    
         
             
                    #
         
     | 
| 
       426 
     | 
    
         
            -
                    def  
     | 
| 
       427 
     | 
    
         
            -
                       
     | 
| 
       428 
     | 
    
         
            -
                      begin
         
     | 
| 
       429 
     | 
    
         
            -
                        Date.parse(text, start)
         
     | 
| 
       430 
     | 
    
         
            -
                      rescue ArgumentError => _e
         
     | 
| 
       431 
     | 
    
         
            -
                        return false
         
     | 
| 
       432 
     | 
    
         
            -
                      end
         
     | 
| 
       433 
     | 
    
         
            -
                      true
         
     | 
| 
      
 426 
     | 
    
         
            +
                    def valid_date_text(text: '')
         
     | 
| 
      
 427 
     | 
    
         
            +
                      DateText.validate(text: text)
         
     | 
| 
       434 
428 
     | 
    
         
             
                    end
         
     | 
| 
       435 
429 
     | 
    
         
             
                  end
         
     | 
| 
       436 
430 
     | 
    
         
             
                end
         
     | 
| 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            # :nodoc:
         
     | 
| 
      
 4 
     | 
    
         
            +
            module Zakuro
         
     | 
| 
      
 5 
     | 
    
         
            +
              #
         
     | 
| 
      
 6 
     | 
    
         
            +
              # Western 西暦
         
     | 
| 
      
 7 
     | 
    
         
            +
              #
         
     | 
| 
      
 8 
     | 
    
         
            +
              module Western
         
     | 
| 
      
 9 
     | 
    
         
            +
                #
         
     | 
| 
      
 10 
     | 
    
         
            +
                # DateText 日付文字列
         
     | 
| 
      
 11 
     | 
    
         
            +
                #
         
     | 
| 
      
 12 
     | 
    
         
            +
                module DateText
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # @return [Regexp] ハイフン区切り
         
     | 
| 
      
 14 
     | 
    
         
            +
                  HYPHEN = /^[0-9]{1,5}-[0-9]{1,2}-[0-9]{1,2}$/.freeze
         
     | 
| 
      
 15 
     | 
    
         
            +
                  # @return [Regexp] スラッシュ区切り
         
     | 
| 
      
 16 
     | 
    
         
            +
                  SLASH = %r{^[0-9]{1,5}/[0-9]{1,2}/[0-9]{1,2}$}.freeze
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  #
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # 有効な日付文字列か検証する
         
     | 
| 
      
 20 
     | 
    
         
            +
                  #
         
     | 
| 
      
 21 
     | 
    
         
            +
                  #  * 従来は Date.parse で日付文字列を検証していた
         
     | 
| 
      
 22 
     | 
    
         
            +
                  #  * [貞観4年3月20日] のような文字列でも有効扱いになっていた
         
     | 
| 
      
 23 
     | 
    
         
            +
                  #  * [20] [20日] のように2桁の数字が含まれると有効な日付扱いされる
         
     | 
| 
      
 24 
     | 
    
         
            +
                  #  * 特定のフォーマットのみ受け付けるように改変した
         
     | 
| 
      
 25 
     | 
    
         
            +
                  #
         
     | 
| 
      
 26 
     | 
    
         
            +
                  # @param [String] text 文字列
         
     | 
| 
      
 27 
     | 
    
         
            +
                  #
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # @return [True] 有効
         
     | 
| 
      
 29 
     | 
    
         
            +
                  # @return [True] 無効
         
     | 
| 
      
 30 
     | 
    
         
            +
                  #
         
     | 
| 
      
 31 
     | 
    
         
            +
                  def self.validate(text: '')
         
     | 
| 
      
 32 
     | 
    
         
            +
                    return true if HYPHEN.match(text)
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                    return true if SLASH.match(text)
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    false
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -112,12 +112,12 @@ module Zakuro 
     | 
|
| 
       112 
112 
     | 
    
         
             
                    # @param [String] text 日付文字列
         
     | 
| 
       113 
113 
     | 
    
         
             
                    #
         
     | 
| 
       114 
114 
     | 
    
         
             
                    def parse_text(text:)
         
     | 
| 
       115 
     | 
    
         
            -
                      if Western::Calendar. 
     | 
| 
      
 115 
     | 
    
         
            +
                      if Western::Calendar.valid_date_text(text: text)
         
     | 
| 
       116 
116 
     | 
    
         
             
                        @western_date = Western::Calendar.parse(text: text)
         
     | 
| 
       117 
117 
     | 
    
         
             
                        return
         
     | 
| 
       118 
118 
     | 
    
         
             
                      end
         
     | 
| 
       119 
119 
     | 
    
         | 
| 
       120 
     | 
    
         
            -
                      return unless Japan::Calendar. 
     | 
| 
      
 120 
     | 
    
         
            +
                      return unless Japan::Calendar.valid_date_text(text: text)
         
     | 
| 
       121 
121 
     | 
    
         | 
| 
       122 
122 
     | 
    
         
             
                      @japan_date = Japan::Calendar.parse(text: text)
         
     | 
| 
       123 
123 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -136,7 +136,13 @@ module Zakuro 
     | 
|
| 
       136 
136 
     | 
    
         
             
                      def western_date?(str: '')
         
     | 
| 
       137 
137 
     | 
    
         
             
                        return Western::Calendar.new if str == EMPTY_STRING
         
     | 
| 
       138 
138 
     | 
    
         | 
| 
       139 
     | 
    
         
            -
                         
     | 
| 
      
 139 
     | 
    
         
            +
                        # 1316-11-16/1317-4-13
         
     | 
| 
      
 140 
     | 
    
         
            +
                        dates = str.split('/')
         
     | 
| 
      
 141 
     | 
    
         
            +
                        dates.each do |date|
         
     | 
| 
      
 142 
     | 
    
         
            +
                          return true if Western::Calendar.valid_date_text(text: date)
         
     | 
| 
      
 143 
     | 
    
         
            +
                        end
         
     | 
| 
      
 144 
     | 
    
         
            +
             
     | 
| 
      
 145 
     | 
    
         
            +
                        false
         
     | 
| 
       140 
146 
     | 
    
         
             
                      end
         
     | 
| 
       141 
147 
     | 
    
         
             
                    end
         
     | 
| 
       142 
148 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -3091,7 +3091,7 @@ 
     | 
|
| 
       3091 
3091 
     | 
    
         
             
                    dest: "-"
         
     | 
| 
       3092 
3092 
     | 
    
         
             
                  days:
         
     | 
| 
       3093 
3093 
     | 
    
         
             
                    src: 大
         
     | 
| 
       3094 
     | 
    
         
            -
                    dest:  
     | 
| 
      
 3094 
     | 
    
         
            +
                    dest: 大
         
     | 
| 
       3095 
3095 
     | 
    
         
             
                solar_term:
         
     | 
| 
       3096 
3096 
     | 
    
         
             
                  src:
         
     | 
| 
       3097 
3097 
     | 
    
         
             
                    index: "-"
         
     | 
| 
         @@ -11697,11 +11697,11 @@ 
     | 
|
| 
       11697 
11697 
     | 
    
         
             
              diffs:
         
     | 
| 
       11698 
11698 
     | 
    
         
             
                month:
         
     | 
| 
       11699 
11699 
     | 
    
         
             
                  number:
         
     | 
| 
       11700 
     | 
    
         
            -
                    src:  
     | 
| 
       11701 
     | 
    
         
            -
                    dest:  
     | 
| 
      
 11700 
     | 
    
         
            +
                    src: '8'
         
     | 
| 
      
 11701 
     | 
    
         
            +
                    dest: '7'
         
     | 
| 
       11702 
11702 
     | 
    
         
             
                  leaped:
         
     | 
| 
       11703 
     | 
    
         
            -
                    src:  
     | 
| 
       11704 
     | 
    
         
            -
                    dest:  
     | 
| 
      
 11703 
     | 
    
         
            +
                    src: 'false'
         
     | 
| 
      
 11704 
     | 
    
         
            +
                    dest: 'true'
         
     | 
| 
       11705 
11705 
     | 
    
         
             
                  days:
         
     | 
| 
       11706 
11706 
     | 
    
         
             
                    src: 大
         
     | 
| 
       11707 
11707 
     | 
    
         
             
                    dest: 小
         
     | 
| 
         @@ -11730,11 +11730,11 @@ 
     | 
|
| 
       11730 
11730 
     | 
    
         
             
              diffs:
         
     | 
| 
       11731 
11731 
     | 
    
         
             
                month:
         
     | 
| 
       11732 
11732 
     | 
    
         
             
                  number:
         
     | 
| 
       11733 
     | 
    
         
            -
                    src:  
     | 
| 
       11734 
     | 
    
         
            -
                    dest:  
     | 
| 
      
 11733 
     | 
    
         
            +
                    src: '8'
         
     | 
| 
      
 11734 
     | 
    
         
            +
                    dest: '8'
         
     | 
| 
       11735 
11735 
     | 
    
         
             
                  leaped:
         
     | 
| 
       11736 
     | 
    
         
            -
                    src:  
     | 
| 
       11737 
     | 
    
         
            -
                    dest:  
     | 
| 
      
 11736 
     | 
    
         
            +
                    src: 'true'
         
     | 
| 
      
 11737 
     | 
    
         
            +
                    dest: 'false'
         
     | 
| 
       11738 
11738 
     | 
    
         
             
                  days:
         
     | 
| 
       11739 
11739 
     | 
    
         
             
                    src: 大
         
     | 
| 
       11740 
11740 
     | 
    
         
             
                    dest: 大
         
     | 
| 
         @@ -15070,10 +15070,10 @@ 
     | 
|
| 
       15070 
15070 
     | 
    
         
             
              diffs:
         
     | 
| 
       15071 
15071 
     | 
    
         
             
                month:
         
     | 
| 
       15072 
15072 
     | 
    
         
             
                  number:
         
     | 
| 
       15073 
     | 
    
         
            -
                    src: ' 
     | 
| 
      
 15073 
     | 
    
         
            +
                    src: '12'
         
     | 
| 
       15074 
15074 
     | 
    
         
             
                    dest: '11'
         
     | 
| 
       15075 
15075 
     | 
    
         
             
                  leaped:
         
     | 
| 
       15076 
     | 
    
         
            -
                    src: ' 
     | 
| 
      
 15076 
     | 
    
         
            +
                    src: 'false'
         
     | 
| 
       15077 
15077 
     | 
    
         
             
                    dest: 'false'
         
     | 
| 
       15078 
15078 
     | 
    
         
             
                  days:
         
     | 
| 
       15079 
15079 
     | 
    
         
             
                    src: 大
         
     | 
| 
         @@ -15102,11 +15102,11 @@ 
     | 
|
| 
       15102 
15102 
     | 
    
         
             
              diffs:
         
     | 
| 
       15103 
15103 
     | 
    
         
             
                month:
         
     | 
| 
       15104 
15104 
     | 
    
         
             
                  number:
         
     | 
| 
       15105 
     | 
    
         
            -
                    src:  
     | 
| 
       15106 
     | 
    
         
            -
                    dest:  
     | 
| 
      
 15105 
     | 
    
         
            +
                    src: '12'
         
     | 
| 
      
 15106 
     | 
    
         
            +
                    dest: '12'
         
     | 
| 
       15107 
15107 
     | 
    
         
             
                  leaped:
         
     | 
| 
       15108 
     | 
    
         
            -
                    src:  
     | 
| 
       15109 
     | 
    
         
            -
                    dest:  
     | 
| 
      
 15108 
     | 
    
         
            +
                    src: 'true'
         
     | 
| 
      
 15109 
     | 
    
         
            +
                    dest: 'false'
         
     | 
| 
       15110 
15110 
     | 
    
         
             
                  days:
         
     | 
| 
       15111 
15111 
     | 
    
         
             
                    src: 大
         
     | 
| 
       15112 
15112 
     | 
    
         
             
                    dest: 大
         
     | 
    
        data/lib/zakuro/output/logger.rb
    CHANGED
    
    | 
         @@ -9,6 +9,7 @@ module Zakuro 
     | 
|
| 
       9 
9 
     | 
    
         
             
                # @note 本番では使用しない
         
     | 
| 
       10 
10 
     | 
    
         
             
                #
         
     | 
| 
       11 
11 
     | 
    
         
             
                class Logger
         
     | 
| 
      
 12 
     | 
    
         
            +
                  # @return [Hash<Symbol, Integer>] ログレベル
         
     | 
| 
       12 
13 
     | 
    
         
             
                  LEVELS = {
         
     | 
| 
       13 
14 
     | 
    
         
             
                    none: -1,
         
     | 
| 
       14 
15 
     | 
    
         
             
                    debug: 0,
         
     | 
| 
         @@ -17,6 +18,7 @@ module Zakuro 
     | 
|
| 
       17 
18 
     | 
    
         
             
                    error: 3
         
     | 
| 
       18 
19 
     | 
    
         
             
                  }.freeze
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
                  # @return [Integer] 現在ログレベル
         
     | 
| 
       20 
22 
     | 
    
         
             
                  LEVEL = LEVELS[:none]
         
     | 
| 
       21 
23 
     | 
    
         | 
| 
       22 
24 
     | 
    
         
             
                  # @return [String] 呼び出し位置
         
     | 
| 
         @@ -32,7 +34,9 @@ module Zakuro 
     | 
|
| 
       32 
34 
     | 
    
         
             
                  # @param [String] messages メッセージ
         
     | 
| 
       33 
35 
     | 
    
         
             
                  #
         
     | 
| 
       34 
36 
     | 
    
         
             
                  def debug(*messages)
         
     | 
| 
       35 
     | 
    
         
            -
                    return if  
     | 
| 
      
 37 
     | 
    
         
            +
                    return if none?
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                    return if LEVEL >= LEVELS[:debug]
         
     | 
| 
       36 
40 
     | 
    
         | 
| 
       37 
41 
     | 
    
         
             
                    output('DEBUG', *messages)
         
     | 
| 
       38 
42 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -43,7 +47,9 @@ module Zakuro 
     | 
|
| 
       43 
47 
     | 
    
         
             
                  # @param [String] messages メッセージ
         
     | 
| 
       44 
48 
     | 
    
         
             
                  #
         
     | 
| 
       45 
49 
     | 
    
         
             
                  def info(*messages)
         
     | 
| 
       46 
     | 
    
         
            -
                    return if  
     | 
| 
      
 50 
     | 
    
         
            +
                    return if none?
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                    return if LEVEL >= LEVELS[:info]
         
     | 
| 
       47 
53 
     | 
    
         | 
| 
       48 
54 
     | 
    
         
             
                    output('INFO', *messages)
         
     | 
| 
       49 
55 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -55,7 +61,9 @@ module Zakuro 
     | 
|
| 
       55 
61 
     | 
    
         
             
                  # @param [String] messages メッセージ
         
     | 
| 
       56 
62 
     | 
    
         
             
                  #
         
     | 
| 
       57 
63 
     | 
    
         
             
                  def error(error, *messages)
         
     | 
| 
       58 
     | 
    
         
            -
                    return if  
     | 
| 
      
 64 
     | 
    
         
            +
                    return if none?
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                    return if LEVEL >= LEVELS[:error]
         
     | 
| 
       59 
67 
     | 
    
         | 
| 
       60 
68 
     | 
    
         
             
                    output('ERROR', *messages)
         
     | 
| 
       61 
69 
     | 
    
         
             
                    output('ERROR', error.message)
         
     | 
| 
         @@ -64,6 +72,16 @@ module Zakuro 
     | 
|
| 
       64 
72 
     | 
    
         | 
| 
       65 
73 
     | 
    
         
             
                  private
         
     | 
| 
       66 
74 
     | 
    
         | 
| 
      
 75 
     | 
    
         
            +
                  #
         
     | 
| 
      
 76 
     | 
    
         
            +
                  # 出力なしか
         
     | 
| 
      
 77 
     | 
    
         
            +
                  #
         
     | 
| 
      
 78 
     | 
    
         
            +
                  # @return [True] 出力なし
         
     | 
| 
      
 79 
     | 
    
         
            +
                  # @return [False] 出力あり
         
     | 
| 
      
 80 
     | 
    
         
            +
                  #
         
     | 
| 
      
 81 
     | 
    
         
            +
                  def none?
         
     | 
| 
      
 82 
     | 
    
         
            +
                    LEVEL < LEVELS[:debug]
         
     | 
| 
      
 83 
     | 
    
         
            +
                  end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
       67 
85 
     | 
    
         
             
                  #
         
     | 
| 
       68 
86 
     | 
    
         
             
                  # 標準出力を行う
         
     | 
| 
       69 
87 
     | 
    
         
             
                  #
         
     | 
| 
         @@ -0,0 +1,97 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative '../output/logger'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require_relative '../calculation/cycle/abstract_remainder'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            # :nodoc:
         
     | 
| 
      
 8 
     | 
    
         
            +
            module Zakuro
         
     | 
| 
      
 9 
     | 
    
         
            +
              #
         
     | 
| 
      
 10 
     | 
    
         
            +
              # Tools 汎用メソッド群
         
     | 
| 
      
 11 
     | 
    
         
            +
              #
         
     | 
| 
      
 12 
     | 
    
         
            +
              module Tools
         
     | 
| 
      
 13 
     | 
    
         
            +
                #
         
     | 
| 
      
 14 
     | 
    
         
            +
                # RemainderComparer 大余小余比較
         
     | 
| 
      
 15 
     | 
    
         
            +
                #
         
     | 
| 
      
 16 
     | 
    
         
            +
                module RemainderComparer
         
     | 
| 
      
 17 
     | 
    
         
            +
                  LOGGER = Output::Logger.new(location: 'RemainderComparer')
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  class << self
         
     | 
| 
      
 20 
     | 
    
         
            +
                    #
         
     | 
| 
      
 21 
     | 
    
         
            +
                    # 大余を基準に範囲チェックをする
         
     | 
| 
      
 22 
     | 
    
         
            +
                    #
         
     | 
| 
      
 23 
     | 
    
         
            +
                    # 次のパターンで用いる
         
     | 
| 
      
 24 
     | 
    
         
            +
                    # 1. 月内(当月朔日から当月末日(来月朔日の前日)の間)に二十四節気があるか
         
     | 
| 
      
 25 
     | 
    
         
            +
                    #   * target: 二十四節気
         
     | 
| 
      
 26 
     | 
    
         
            +
                    #   * start: 当月朔日
         
     | 
| 
      
 27 
     | 
    
         
            +
                    #   * last: 次月朔日
         
     | 
| 
      
 28 
     | 
    
         
            +
                    # 2. ある二十四節気に対象の日があるか
         
     | 
| 
      
 29 
     | 
    
         
            +
                    #   * target: 対象の日
         
     | 
| 
      
 30 
     | 
    
         
            +
                    #   * start: 二十四節気
         
     | 
| 
      
 31 
     | 
    
         
            +
                    #   * last: 次の二十四節気
         
     | 
| 
      
 32 
     | 
    
         
            +
                    #
         
     | 
| 
      
 33 
     | 
    
         
            +
                    # @param [Calcuration::Cycle::AbstractRemainder] target 対象日
         
     | 
| 
      
 34 
     | 
    
         
            +
                    # @param [Calcuration::Cycle::AbstractRemainder] start 範囲開始
         
     | 
| 
      
 35 
     | 
    
         
            +
                    # @param [Calcuration::Cycle::AbstractRemainder] last 範囲終了
         
     | 
| 
      
 36 
     | 
    
         
            +
                    #
         
     | 
| 
      
 37 
     | 
    
         
            +
                    # @return [True] 対象日がある
         
     | 
| 
      
 38 
     | 
    
         
            +
                    # @return [False] 対象日がない
         
     | 
| 
      
 39 
     | 
    
         
            +
                    #
         
     | 
| 
      
 40 
     | 
    
         
            +
                    def in_range?(target:, start:, last:)
         
     | 
| 
      
 41 
     | 
    
         
            +
                      # 『日本暦日便覧』では下記5日を没日ありとしている
         
     | 
| 
      
 42 
     | 
    
         
            +
                      #  これは二十四節気の小余と秒が0の場合に限って、範囲を翌日にずらすことを指している
         
     | 
| 
      
 43 
     | 
    
         
            +
                      #
         
     | 
| 
      
 44 
     | 
    
         
            +
                      # * 貞観12年7月18日
         
     | 
| 
      
 45 
     | 
    
         
            +
                      # * 天喜5年3月11日
         
     | 
| 
      
 46 
     | 
    
         
            +
                      # * 寛元1年11月4日
         
     | 
| 
      
 47 
     | 
    
         
            +
                      # * 永享2年7月26日
         
     | 
| 
      
 48 
     | 
    
         
            +
                      # * 元和3年3月19日
         
     | 
| 
      
 49 
     | 
    
         
            +
                      #
         
     | 
| 
      
 50 
     | 
    
         
            +
                      last_day = last.only_day? ? last.day + 1 : last.day
         
     | 
| 
      
 51 
     | 
    
         
            +
                      in_range_day?(target: target.day, start: start.day, last: last_day)
         
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                    #
         
     | 
| 
      
 55 
     | 
    
         
            +
                    # 大余を基準に範囲チェックをする
         
     | 
| 
      
 56 
     | 
    
         
            +
                    #
         
     | 
| 
      
 57 
     | 
    
         
            +
                    # @param [Calcuration::Cycle::AbstractRemainder] target 対象日
         
     | 
| 
      
 58 
     | 
    
         
            +
                    # @param [Calcuration::Cycle::AbstractRemainder] start 範囲開始
         
     | 
| 
      
 59 
     | 
    
         
            +
                    # @param [Integer] limit 大余上限
         
     | 
| 
      
 60 
     | 
    
         
            +
                    #
         
     | 
| 
      
 61 
     | 
    
         
            +
                    # @return [True] 対象日がある
         
     | 
| 
      
 62 
     | 
    
         
            +
                    # @return [False] 対象日がない
         
     | 
| 
      
 63 
     | 
    
         
            +
                    #
         
     | 
| 
      
 64 
     | 
    
         
            +
                    def in_limit?(target:, start:, limit:)
         
     | 
| 
      
 65 
     | 
    
         
            +
                      last_day = start.add_day(limit).day
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                      in_range_day?(target: target.day, start: start.day, last: last_day)
         
     | 
| 
      
 68 
     | 
    
         
            +
                    end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                    private
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                    #
         
     | 
| 
      
 73 
     | 
    
         
            +
                    # 大余を基準に範囲チェックをする
         
     | 
| 
      
 74 
     | 
    
         
            +
                    #
         
     | 
| 
      
 75 
     | 
    
         
            +
                    # @note 大余60で一巡するため 以下2パターンがある
         
     | 
| 
      
 76 
     | 
    
         
            +
                    #   * start <= last : (二十四節気) >= start && (二十四節気) < last
         
     | 
| 
      
 77 
     | 
    
         
            +
                    #   * start > last  : (二十四節気) >= start || (二十四節気) < last
         
     | 
| 
      
 78 
     | 
    
         
            +
                    #
         
     | 
| 
      
 79 
     | 
    
         
            +
                    # @param [Integer] target 対象日
         
     | 
| 
      
 80 
     | 
    
         
            +
                    # @param [Integer] start 範囲開始
         
     | 
| 
      
 81 
     | 
    
         
            +
                    # @param [Integer] last 範囲終了
         
     | 
| 
      
 82 
     | 
    
         
            +
                    #
         
     | 
| 
      
 83 
     | 
    
         
            +
                    # @return [True] 対象日がある
         
     | 
| 
      
 84 
     | 
    
         
            +
                    # @return [False] 対象日がない
         
     | 
| 
      
 85 
     | 
    
         
            +
                    #
         
     | 
| 
      
 86 
     | 
    
         
            +
                    def in_range_day?(target:, start:, last:)
         
     | 
| 
      
 87 
     | 
    
         
            +
                      start_over = (target >= start)
         
     | 
| 
      
 88 
     | 
    
         
            +
                      last_under = (target < last)
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                      return start_over && last_under if start <= last
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
                      start_over || last_under
         
     | 
| 
      
 93 
     | 
    
         
            +
                    end
         
     | 
| 
      
 94 
     | 
    
         
            +
                  end
         
     | 
| 
      
 95 
     | 
    
         
            +
                end
         
     | 
| 
      
 96 
     | 
    
         
            +
              end
         
     | 
| 
      
 97 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: zakuro
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.9. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.9.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - pldb
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-03-25 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: mainly lunar solar calendar
         
     | 
| 
       14 
14 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -86,6 +86,9 @@ files: 
     | 
|
| 
       86 
86 
     | 
    
         
             
            - lib/zakuro/calculation/monthly/const.rb
         
     | 
| 
       87 
87 
     | 
    
         
             
            - lib/zakuro/calculation/monthly/first_day.rb
         
     | 
| 
       88 
88 
     | 
    
         
             
            - lib/zakuro/calculation/monthly/initialized_month.rb
         
     | 
| 
      
 89 
     | 
    
         
            +
            - lib/zakuro/calculation/monthly/meta.rb
         
     | 
| 
      
 90 
     | 
    
         
            +
            - lib/zakuro/calculation/monthly/meta/all_solar_term.rb
         
     | 
| 
      
 91 
     | 
    
         
            +
            - lib/zakuro/calculation/monthly/meta/meta_collector.rb
         
     | 
| 
       89 
92 
     | 
    
         
             
            - lib/zakuro/calculation/monthly/month.rb
         
     | 
| 
       90 
93 
     | 
    
         
             
            - lib/zakuro/calculation/monthly/month_label.rb
         
     | 
| 
       91 
94 
     | 
    
         
             
            - lib/zakuro/calculation/monthly/operated_month.rb
         
     | 
| 
         @@ -143,6 +146,7 @@ files: 
     | 
|
| 
       143 
146 
     | 
    
         
             
            - lib/zakuro/era/japan/gengou/resource/yaml/set-003-modern.yaml
         
     | 
| 
       144 
147 
     | 
    
         
             
            - lib/zakuro/era/japan/version.rb
         
     | 
| 
       145 
148 
     | 
    
         
             
            - lib/zakuro/era/western/calendar.rb
         
     | 
| 
      
 149 
     | 
    
         
            +
            - lib/zakuro/era/western/date_text.rb
         
     | 
| 
       146 
150 
     | 
    
         
             
            - lib/zakuro/exception/case/pattern.rb
         
     | 
| 
       147 
151 
     | 
    
         
             
            - lib/zakuro/exception/case/preset.rb
         
     | 
| 
       148 
152 
     | 
    
         
             
            - lib/zakuro/exception/case/template.rb
         
     | 
| 
         @@ -180,6 +184,7 @@ files: 
     | 
|
| 
       180 
184 
     | 
    
         
             
            - lib/zakuro/result/operation/month/annotation.rb
         
     | 
| 
       181 
185 
     | 
    
         
             
            - lib/zakuro/result/operation/month/history.rb
         
     | 
| 
       182 
186 
     | 
    
         
             
            - lib/zakuro/result/result.rb
         
     | 
| 
      
 187 
     | 
    
         
            +
            - lib/zakuro/tools/remainder_comparer.rb
         
     | 
| 
       183 
188 
     | 
    
         
             
            - lib/zakuro/tools/stringifier.rb
         
     | 
| 
       184 
189 
     | 
    
         
             
            - lib/zakuro/tools/typeconv.rb
         
     | 
| 
       185 
190 
     | 
    
         
             
            - lib/zakuro/tools/typeof.rb
         
     |