range_extd 1.1 → 1.1.1
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 +5 -0
- data/README.en.rdoc +7 -1
- data/README.ja.rdoc +32 -4
- data/lib/range_extd/range_extd.rb +7 -3
- data/test/test_range_extd.rb +19 -9
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 228c1335aeaf661aff3db78c73956a09f7f36e172afecb82fc45847d8e719a67
         | 
| 4 | 
            +
              data.tar.gz: 143bc81562425d744ed187499301f4eb47146ead0930cbc636929829633dab63
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 57366c3ddc28bdb8c492bb225344018a79b89bdca9a2ea693336733f9b0978d1e4b737e7aacecc674b66fc50a3286542fbc02305998c565ebdef4c652217807e
         | 
| 7 | 
            +
              data.tar.gz: 063a3be273a83cf001d871e458ecc5bf26e667d97abc997752922e90eca7b22ebde928dac9b84a1e0979fb9c7f5f941e5fca12bbdca73a2cea234a9e33abf3df
         | 
    
        data/ChangeLog
    CHANGED
    
    
    
        data/README.en.rdoc
    CHANGED
    
    | @@ -361,11 +361,13 @@ existing code in principle. | |
| 361 361 |  | 
| 362 362 | 
             
            Extensive tests have been performed, as included in the package.
         | 
| 363 363 |  | 
| 364 | 
            -
             | 
| 365 364 | 
             
            == ToDo
         | 
| 366 365 |  | 
| 367 366 | 
             
            Nothing on the horizon.
         | 
| 368 367 |  | 
| 368 | 
            +
            == History memo
         | 
| 369 | 
            +
             | 
| 370 | 
            +
            * <tt>((?a..?z) === "cc")</tt> would give false with Ruby 2.6.x or earlier, but true if later.
         | 
| 369 371 |  | 
| 370 372 | 
             
            == Final notes
         | 
| 371 373 |  | 
| @@ -736,6 +738,10 @@ RangeExtd と別の RangeExtd または Rangeの比較 (<tt><=></tt>) におい | |
| 736 738 | 
             
            特になし。
         | 
| 737 739 |  | 
| 738 740 |  | 
| 741 | 
            +
            == 履歴メモ
         | 
| 742 | 
            +
             | 
| 743 | 
            +
            * <tt>((?a..?z) === "cc")</tt> は、Ruby 2.6.x 以前は false を返していたが、2.7 以降は true を返す。
         | 
| 744 | 
            +
             | 
| 739 745 | 
             
            == 終わりに
         | 
| 740 746 |  | 
| 741 747 | 
             
            RangeExtd内部に閉じた(Rangeでなく)挙動、たとえば RangeExtd同士の比較などは、
         | 
    
        data/README.ja.rdoc
    CHANGED
    
    | @@ -220,7 +220,7 @@ politely. | |
| 220 220 | 
             
            For more detail, see its documents (YARD or RDoc-style
         | 
| 221 221 | 
             
            documents embedded in the code, or see {RubyGems webpage}[http://rubygems.org/gems/range_extd]).
         | 
| 222 222 |  | 
| 223 | 
            -
            ** | 
| 223 | 
            +
            **Note1:** +RangeExtd::Infinity::POSITIVE+ is practically the same as
         | 
| 224 224 | 
             
            {Endless Range}[https://rubyreferences.github.io/rubychanges/2.6.html#endless-range-1]
         | 
| 225 225 | 
             
            introduced in Ruby 2.6 released in 2018 December!!  In other words,
         | 
| 226 226 | 
             
            the official Ruby has finally implement a part of this library!
         | 
| @@ -229,6 +229,28 @@ official Ruby Range (it has no "boundless begin"), and hence this library still | |
| 229 229 | 
             
            supplements the mathematical incompleteness of the standard Range in
         | 
| 230 230 | 
             
            the official Ruby.
         | 
| 231 231 |  | 
| 232 | 
            +
            **Note2:**
         | 
| 233 | 
            +
            As of Ver.1.1, the +RangeExtd::Infinity+ class instances are not
         | 
| 234 | 
            +
            comparable with +Float::INFINITY+; for example,
         | 
| 235 | 
            +
             | 
| 236 | 
            +
              RangeExtd::Infinity::POSITIVE != Float::INFINITY  # => true
         | 
| 237 | 
            +
             | 
| 238 | 
            +
            Conceptionally, the former is a generalised object of the latter and
         | 
| 239 | 
            +
            hence they should not be *equal*.  See the reference of
         | 
| 240 | 
            +
            {RangeExtd::Infinity} for detail.  Note, the behaviour of Endless Range from Ruby 2.6
         | 
| 241 | 
            +
            may feel a little odd, as follows:
         | 
| 242 | 
            +
             | 
| 243 | 
            +
              num1 = (5..Float::INFINITY)
         | 
| 244 | 
            +
              num2 = (5..)
         | 
| 245 | 
            +
              num1.end != rnum2.end  # => true
         | 
| 246 | 
            +
              num1.size              # => Infinity
         | 
| 247 | 
            +
              num2.size              # => Infinity
         | 
| 248 | 
            +
             | 
| 249 | 
            +
              str1 = (?a..)
         | 
| 250 | 
            +
              str1.end == num2.end   # => true (because both are nil)
         | 
| 251 | 
            +
              str1.size              # => nil
         | 
| 252 | 
            +
             | 
| 253 | 
            +
             | 
| 232 254 | 
             
            === RangeExtd Class
         | 
| 233 255 |  | 
| 234 256 | 
             
            RangeExtd objects are immutable, the same as Range.
         | 
| @@ -339,11 +361,13 @@ existing code in principle. | |
| 339 361 |  | 
| 340 362 | 
             
            Extensive tests have been performed, as included in the package.
         | 
| 341 363 |  | 
| 342 | 
            -
             | 
| 343 364 | 
             
            == ToDo
         | 
| 344 365 |  | 
| 345 366 | 
             
            Nothing on the horizon.
         | 
| 346 367 |  | 
| 368 | 
            +
            == History memo
         | 
| 369 | 
            +
             | 
| 370 | 
            +
            * <tt>((?a..?z) === "cc")</tt> would give false with Ruby 2.6.x or earlier, but true if later.
         | 
| 347 371 |  | 
| 348 372 | 
             
            == Final notes
         | 
| 349 373 |  | 
| @@ -377,7 +401,7 @@ Enjoy. | |
| 377 401 |  | 
| 378 402 | 
             
            == Copyright etc
         | 
| 379 403 |  | 
| 380 | 
            -
            Author::  Masa Sakano <  | 
| 404 | 
            +
            Author::  Masa Sakano < info a_t wisebabel dot com >
         | 
| 381 405 | 
             
            License:: MIT.
         | 
| 382 406 | 
             
            Warranty:: No warranty whatsoever.
         | 
| 383 407 | 
             
            Versions:: The versions of this package follow Semantic Versioning (2.0.0) http://semver.org/
         | 
| @@ -714,6 +738,10 @@ RangeExtd と別の RangeExtd または Rangeの比較 (<tt><=></tt>) におい | |
| 714 738 | 
             
            特になし。
         | 
| 715 739 |  | 
| 716 740 |  | 
| 741 | 
            +
            == 履歴メモ
         | 
| 742 | 
            +
             | 
| 743 | 
            +
            * <tt>((?a..?z) === "cc")</tt> は、Ruby 2.6.x 以前は false を返していたが、2.7 以降は true を返す。
         | 
| 744 | 
            +
             | 
| 717 745 | 
             
            == 終わりに
         | 
| 718 746 |  | 
| 719 747 | 
             
            RangeExtd内部に閉じた(Rangeでなく)挙動、たとえば RangeExtd同士の比較などは、
         | 
| @@ -742,7 +770,7 @@ RangeExtd内部に閉じた(Rangeでなく)挙動、たとえば RangeExtd同士 | |
| 742 770 |  | 
| 743 771 | 
             
            == 著作権他情報
         | 
| 744 772 |  | 
| 745 | 
            -
            著者::  Masa Sakano <  | 
| 773 | 
            +
            著者::  Masa Sakano < info a_t wisebabel dot com >
         | 
| 746 774 | 
             
            利用許諾条項:: MIT.
         | 
| 747 775 | 
             
            保証:: 一切無し。
         | 
| 748 776 | 
             
            バージョン:: Semantic Versioning (2.0.0) http://semver.org/
         | 
| @@ -135,7 +135,7 @@ class RangeExtd < Range | |
| 135 135 | 
             
                end
         | 
| 136 136 |  | 
| 137 137 | 
             
                # Note: the order of exclude_begin? and end? is reversed from the input!
         | 
| 138 | 
            -
                arout = RangeExtd.send(:_get_init_args, *inar, hsopt)
         | 
| 138 | 
            +
                arout = RangeExtd.send(:_get_init_args, *inar, **hsopt)
         | 
| 139 139 | 
             
                # == [RangeBeginValue, RangeEndValue, exclude_end?, exclude_begin?]
         | 
| 140 140 |  | 
| 141 141 | 
             
                ### The following routine is obsolete.
         | 
| @@ -1620,7 +1620,11 @@ end	# class Range | |
| 1620 1620 | 
             
            # Constant-form of {#RangeExtd}.
         | 
| 1621 1621 | 
             
            # #RangeExtd(*) is equivalent to {#RangeExtd.new}.
         | 
| 1622 1622 | 
             
            #
         | 
| 1623 | 
            -
             | 
| 1624 | 
            -
             | 
| 1623 | 
            +
            # NOTE:
         | 
| 1624 | 
            +
            #   "warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call"
         | 
| 1625 | 
            +
            #   is raised if '**hs*' is completely omitted.  I do not know how to
         | 
| 1626 | 
            +
            #   deal with this, other than adding **hs.
         | 
| 1627 | 
            +
            def RangeExtd(*rest, **hs, &b)
         | 
| 1628 | 
            +
              RangeExtd.new(*rest, **hs, &b)
         | 
| 1625 1629 | 
             
            end
         | 
| 1626 1630 |  | 
    
        data/test/test_range_extd.rb
    CHANGED
    
    | @@ -356,7 +356,7 @@ gem "minitest" | |
| 356 356 | 
             
                  end
         | 
| 357 357 |  | 
| 358 358 | 
             
                  # Ruby 2.6 upwards
         | 
| 359 | 
            -
                  ra00 = (-2..)
         | 
| 359 | 
            +
                  ra00 = (-2..)  # This raises the uncapturable SyntaxError for Ruby 2.5 and before anyway.
         | 
| 360 360 | 
             
                  rae0 = RangeExtd.new(ra00)
         | 
| 361 361 | 
             
                  assert rae0.valid?
         | 
| 362 362 | 
             
                  assert_equal(-2,  rae0.begin)
         | 
| @@ -384,7 +384,7 @@ gem "minitest" | |
| 384 384 | 
             
                  end
         | 
| 385 385 |  | 
| 386 386 | 
             
                  # Ruby 2.6 upwards
         | 
| 387 | 
            -
                  ra00 = (Float::INFINITY...)
         | 
| 387 | 
            +
                  ra00 = (Float::INFINITY...)  # This raises the uncapturable SyntaxError for Ruby 2.5 and before anyway.
         | 
| 388 388 | 
             
                  rae0 = RangeExtd.new(ra00)
         | 
| 389 389 | 
             
                  assert rae0.valid?
         | 
| 390 390 | 
             
                  assert_equal Float::INFINITY,   rae0.begin
         | 
| @@ -416,7 +416,7 @@ gem "minitest" | |
| 416 416 | 
             
                    return  # Before Ruby 2.6
         | 
| 417 417 | 
             
                  end
         | 
| 418 418 |  | 
| 419 | 
            -
                  ra00 = (-Float::INFINITY...)
         | 
| 419 | 
            +
                  ra00 = (-Float::INFINITY...)  # This raises the uncapturable SyntaxError for Ruby 2.5 and before anyway.
         | 
| 420 420 | 
             
                  rae0 = RangeExtd.new(ra00)
         | 
| 421 421 | 
             
                  assert rae0.valid?
         | 
| 422 422 | 
             
                  assert_equal(-Float::INFINITY,   rae0.begin)
         | 
| @@ -533,7 +533,7 @@ gem "minitest" | |
| 533 533 | 
             
                  assert_output('', /Infinity/i){RaE(RangeExtd::Infinity::NEGATIVE,  Float::INFINITY)}  # Warning = "RangeExtd component of the RangeExtd::Infinity object replaced with Float::INFINITY"
         | 
| 534 534 | 
             
                  capture_io{
         | 
| 535 535 | 
             
                    ra_b = RaE(InfN, InfF).begin  # RangeExtd::Infinity::NEGATIVE replaced with -Float::INFINITY
         | 
| 536 | 
            -
                    assert_equal | 
| 536 | 
            +
                    assert_equal(   -InfF, ra_b)
         | 
| 537 537 | 
             
                    assert_operator Float, '===', ra_b
         | 
| 538 538 | 
             
                  }
         | 
| 539 539 |  | 
| @@ -570,7 +570,7 @@ gem "minitest" | |
| 570 570 | 
             
                end
         | 
| 571 571 |  | 
| 572 572 | 
             
                def test_new_invalid_endless_range01
         | 
| 573 | 
            -
                  ra00 = (nil..)
         | 
| 573 | 
            +
                  ra00 = (nil..)  # This raises the uncapturable SyntaxError for Ruby 2.5 and before anyway.
         | 
| 574 574 | 
             
                  refute RangeExtd.valid?(ra00)
         | 
| 575 575 | 
             
                  assert_raises(RangeError){ RangeExtd.new(ra00) }
         | 
| 576 576 |  | 
| @@ -1257,7 +1257,7 @@ gem "minitest" | |
| 1257 1257 |  | 
| 1258 1258 | 
             
                # For Ruby 2.6 and onwards
         | 
| 1259 1259 | 
             
                def test_endlessRange_valid
         | 
| 1260 | 
            -
                  assert  (0..).valid?
         | 
| 1260 | 
            +
                  assert  (0..).valid?  # This raises the uncapturable SyntaxError for Ruby 2.5 and before anyway.
         | 
| 1261 1261 | 
             
                  assert  (0...).valid?
         | 
| 1262 1262 | 
             
                  refute  (true..).valid?
         | 
| 1263 1263 | 
             
                  refute  (nil...).valid?
         | 
| @@ -1559,8 +1559,14 @@ gem "minitest" | |
| 1559 1559 |  | 
| 1560 1560 | 
             
                  # RangeExtd#===
         | 
| 1561 1561 | 
             
                  assert  ((?D..?z) === ?c)
         | 
| 1562 | 
            -
             | 
| 1563 | 
            -
                   | 
| 1562 | 
            +
             | 
| 1563 | 
            +
                  if RUBY_VERSION < '2.7'
         | 
| 1564 | 
            +
                    assert !((?a..?z) === "cc")
         | 
| 1565 | 
            +
                    assert !((?B..?z) === 'dd')
         | 
| 1566 | 
            +
                  else
         | 
| 1567 | 
            +
                    assert  ((?a..?z) === "cc")
         | 
| 1568 | 
            +
                    assert  ((?B..?z) === 'dd')
         | 
| 1569 | 
            +
                  end
         | 
| 1564 1570 |  | 
| 1565 1571 | 
             
                  # RangeExtd#equiv?
         | 
| 1566 1572 | 
             
                  assert  RangeExtd(2...7,true).equiv?(3..6)     # => true
         | 
| @@ -1605,7 +1611,11 @@ gem "minitest" | |
| 1605 1611 | 
             
                  assert_equal [3], (1...3.1).last(1)
         | 
| 1606 1612 |  | 
| 1607 1613 | 
             
                  # RangeExtd#minmax
         | 
| 1608 | 
            -
                   | 
| 1614 | 
            +
                  if RUBY_VERSION < '2.7'
         | 
| 1615 | 
            +
                    assert_equal [0, 3], (0...3.5).minmax
         | 
| 1616 | 
            +
                  else
         | 
| 1617 | 
            +
                    assert_raises(TypeError){ (0...3.5).minmax }	# => TypeError: cannot exclude non Integer end value
         | 
| 1618 | 
            +
                  end
         | 
| 1609 1619 | 
             
                  assert_raises(TypeError){ (1.3...5).minmax }	# => TypeError: can't iterate from Float
         | 
| 1610 1620 |  | 
| 1611 1621 | 
             
                  # RangeExtd#size
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: range_extd
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 1.1.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Masa Sakano
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2020-01-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: Package for a subclass of Range, RangeExtd and RangeExtd::Infinity.  The
         | 
| 14 14 | 
             
              former defines a range that enables an exclusion of the begin boundary, in addition
         | 
| @@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 54 54 | 
             
                - !ruby/object:Gem::Version
         | 
| 55 55 | 
             
                  version: '0'
         | 
| 56 56 | 
             
            requirements: []
         | 
| 57 | 
            -
            rubygems_version: 3. | 
| 57 | 
            +
            rubygems_version: 3.1.2
         | 
| 58 58 | 
             
            signing_key: 
         | 
| 59 59 | 
             
            specification_version: 4
         | 
| 60 60 | 
             
            summary: RangeExtd - Extended Range class with exclude_begin and open-ends
         |