wareki 0.1.4 → 0.2.0
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/ChangeLog +7 -0
- data/lib/wareki/date.rb +49 -1
- data/lib/wareki/utils.rb +1 -1
- data/lib/wareki/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e17edc37b9e9bab6955fa886a4b2150927d75e1c
         | 
| 4 | 
            +
              data.tar.gz: cf48656bd64cbbf26a3d541af8f553e649d4757e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 4b437da1a431d1059d5ff1a4f849e999613cb06ca94c0b6d47d86350cf7e18abc30bc993605a41432ab3f64c50a606406ee3c69dd484ee7f0d440372cb26efb5
         | 
| 7 | 
            +
              data.tar.gz: 3cfc6b10e3906c358d57c19bf179f440df2b18c2365989f7b80d66637c628875fa16cc441d53dcbea9a582855b0e5ce93582d0b379397502a5d00930a65b21ff
         | 
    
        data/ChangeLog
    CHANGED
    
    
    
        data/lib/wareki/date.rb
    CHANGED
    
    | @@ -3,11 +3,14 @@ require 'date' | |
| 3 3 | 
             
            require 'wareki/common'
         | 
| 4 4 | 
             
            require 'wareki/utils'
         | 
| 5 5 | 
             
            module Wareki
         | 
| 6 | 
            -
             | 
| 7 6 | 
             
              class Date
         | 
| 8 7 | 
             
                attr_reader :jd
         | 
| 9 8 | 
             
                attr_accessor :year, :month, :day, :era_year, :era_name
         | 
| 10 9 |  | 
| 10 | 
            +
                def self.today
         | 
| 11 | 
            +
                  jd(::Date.today.jd)
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 11 14 | 
             
                def self._parse(str)
         | 
| 12 15 | 
             
                  match = REGEX.match(str.to_s.gsub(/[[:space:]]/, ''))
         | 
| 13 16 | 
             
                  if !match || !match[:year]
         | 
| @@ -144,6 +147,10 @@ module Wareki | |
| 144 147 | 
             
                  ::Date.jd(jd, start)
         | 
| 145 148 | 
             
                end
         | 
| 146 149 |  | 
| 150 | 
            +
                def to_time
         | 
| 151 | 
            +
                  to_date.to_time
         | 
| 152 | 
            +
                end
         | 
| 153 | 
            +
             | 
| 147 154 | 
             
                def strftime(format_str = "%JF")
         | 
| 148 155 | 
             
                  ret = format_str.to_str.gsub(/%J([fFyYegGoOiImMsSlLdD][kK]?)/) { format($1) || $& }
         | 
| 149 156 | 
             
                  ret.index("%") or return ret
         | 
| @@ -204,5 +211,46 @@ module Wareki | |
| 204 211 | 
             
                    nil
         | 
| 205 212 | 
             
                  end
         | 
| 206 213 | 
             
                end
         | 
| 214 | 
            +
             | 
| 215 | 
            +
                def eql?(other)
         | 
| 216 | 
            +
                  begin
         | 
| 217 | 
            +
                    [:year, :month, :day, :era_year, :era_name, :leap_month?].each do |attr|
         | 
| 218 | 
            +
                      other.public_send(attr) == public_send(attr) or return false
         | 
| 219 | 
            +
                    end
         | 
| 220 | 
            +
                  rescue => e
         | 
| 221 | 
            +
                    return false
         | 
| 222 | 
            +
                  end
         | 
| 223 | 
            +
                  true
         | 
| 224 | 
            +
                end
         | 
| 225 | 
            +
                alias_method :==, :eql?
         | 
| 226 | 
            +
             | 
| 227 | 
            +
                def ===(other)
         | 
| 228 | 
            +
                  begin
         | 
| 229 | 
            +
                    other.jd == jd or return false
         | 
| 230 | 
            +
                  rescue => e
         | 
| 231 | 
            +
                    return false
         | 
| 232 | 
            +
                  end
         | 
| 233 | 
            +
                  true
         | 
| 234 | 
            +
                end
         | 
| 235 | 
            +
             | 
| 236 | 
            +
                def -(other)
         | 
| 237 | 
            +
                  if other.class.to_s == "ActiveSupport::Duration"
         | 
| 238 | 
            +
                    raise NotImplementedError, "Date calcration with ActiveSupport::Duration currently is not supported. Please use numeric."
         | 
| 239 | 
            +
                  else
         | 
| 240 | 
            +
                    other.respond_to?(:to_date) and other = other.to_date
         | 
| 241 | 
            +
                    other.respond_to?(:jd) and other = other.jd
         | 
| 242 | 
            +
                    self.class.jd jd - other
         | 
| 243 | 
            +
                  end
         | 
| 244 | 
            +
                end
         | 
| 245 | 
            +
             | 
| 246 | 
            +
                def +(other)
         | 
| 247 | 
            +
                  if other.class.to_s == "ActiveSupport::Duration"
         | 
| 248 | 
            +
                    raise NotImplementedError, "Date calcration with ActiveSupport::Duration currently is not supported. Please use numeric."
         | 
| 249 | 
            +
                  else
         | 
| 250 | 
            +
                    other.respond_to?(:to_date) and other = other.to_date
         | 
| 251 | 
            +
                    other.respond_to?(:jd) and other = other.jd
         | 
| 252 | 
            +
                    self.class.jd jd + other
         | 
| 253 | 
            +
                  end
         | 
| 254 | 
            +
                end
         | 
| 207 255 | 
             
              end
         | 
| 208 256 | 
             
            end
         | 
    
        data/lib/wareki/utils.rb
    CHANGED
    
    | @@ -101,7 +101,7 @@ module Wareki | |
| 101 101 | 
             
                    else
         | 
| 102 102 | 
             
                      tmp_m += 1
         | 
| 103 103 | 
             
                    end
         | 
| 104 | 
            -
                    day = (::Date.new(tmp_y, tmp_m, 1, Date::GREGORIAN)-1).day
         | 
| 104 | 
            +
                    day = (::Date.new(tmp_y, tmp_m, 1, ::Date::GREGORIAN)-1).day
         | 
| 105 105 | 
             
                  else
         | 
| 106 106 | 
             
                    yobj = YEAR_BY_NUM[year] or
         | 
| 107 107 | 
             
                      raise UnsupportedDateRange, "Cannot find year #{self.inspect}"
         | 
    
        data/lib/wareki/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: wareki
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tatsuki Sugiura
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-07-25 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         |