backports 3.6.4 → 3.6.5
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 +7 -0
- data/Gemfile.lock +1 -1
- data/backports.gemspec +1 -0
- data/lib/backports/2.1.0/bignum/bit_length.rb +4 -2
- data/lib/backports/version.rb +1 -1
- data/test/bit_length_test.rb +11 -0
- metadata +32 -49
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9aa6079dcd8824dcc4ed7d89341ba81ae14ee1f2
|
4
|
+
data.tar.gz: 25c6fa54364e18de597fadf27de457c591ce6d17
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4e5c84c312e0716a1283d93277d04ee8de3d62527c95eb5fa83a7a7c6b99ba05a832df0d696675597a502b8b41b63a01423af484b1f2ca135a9654ab0f54db85
|
7
|
+
data.tar.gz: 688e1bd667a6e5486e1e11a681e5e18b8004396af20c56c6b1e5a1c5258710b5a5b2562afd514e287b9eec7d8ba9ea104e21e9775984a02dd3829a3403ebb618
|
data/Gemfile.lock
CHANGED
data/backports.gemspec
CHANGED
@@ -11,6 +11,7 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.description = %q{Essential backports that enable many of the nice features of Ruby 1.8.7 up to 2.1.0 for earlier versions.}
|
12
12
|
gem.summary = %q{Backports of Ruby features for older Ruby.}
|
13
13
|
gem.homepage = "http://github.com/marcandre/backports"
|
14
|
+
gem.license = "MIT"
|
14
15
|
|
15
16
|
gem.files = `git ls-files`.split($/)
|
16
17
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -2,14 +2,16 @@ unless Bignum.method_defined? :bit_length
|
|
2
2
|
require 'backports/2.0.0/range/bsearch'
|
3
3
|
class Bignum
|
4
4
|
def bit_length
|
5
|
-
|
5
|
+
# We use the fact that bignums use the minimum number of bytes necessary
|
6
|
+
# So we have (size - 1) * 8 < bit_length <= size * 8
|
7
|
+
n = 8 * (size - 1)
|
6
8
|
smaller = self >> n
|
7
9
|
if smaller >= 0
|
8
10
|
smaller += 1
|
9
11
|
else
|
10
12
|
smaller = -smaller
|
11
13
|
end
|
12
|
-
n + (
|
14
|
+
n + (1..8).bsearch{|i| smaller <= (1 << i) }
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
data/lib/backports/version.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
require './test/test_helper'
|
2
|
+
|
3
|
+
class BitLengthTest < Test::Unit::TestCase
|
4
|
+
def test_big_num # Issue #95
|
5
|
+
require 'backports/2.1.0/bignum/bit_length'
|
6
|
+
r = 91178362617816881166579720176198217549251305244541026425489888079462471837807
|
7
|
+
assert_equal 256, r.bit_length
|
8
|
+
r = 57896044618658097711785492504343953926634992332820282019728792003956564819968
|
9
|
+
assert_equal 256, r.bit_length
|
10
|
+
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,38 +1,28 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: backports
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 3
|
8
|
-
- 6
|
9
|
-
- 4
|
10
|
-
version: 3.6.4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.6.5
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
6
|
+
authors:
|
7
|
+
- Marc-André Lafortune
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2014-11-13 00:00:00 Z
|
11
|
+
date: 2015-07-13 00:00:00.000000000 Z
|
19
12
|
dependencies: []
|
20
|
-
|
21
|
-
|
22
|
-
email:
|
13
|
+
description: Essential backports that enable many of the nice features of Ruby 1.8.7
|
14
|
+
up to 2.1.0 for earlier versions.
|
15
|
+
email:
|
23
16
|
- github@marc-andre.ca
|
24
17
|
executables: []
|
25
|
-
|
26
18
|
extensions: []
|
27
|
-
|
28
19
|
extra_rdoc_files: []
|
29
|
-
|
30
|
-
|
31
|
-
- .
|
32
|
-
- .
|
33
|
-
- .
|
34
|
-
- .
|
35
|
-
- .travis.yml
|
20
|
+
files:
|
21
|
+
- ".document"
|
22
|
+
- ".gitignore"
|
23
|
+
- ".gitmodules"
|
24
|
+
- ".irbrc"
|
25
|
+
- ".travis.yml"
|
36
26
|
- CHANGELOG.rdoc
|
37
27
|
- Gemfile
|
38
28
|
- Gemfile.lock
|
@@ -560,43 +550,35 @@ files:
|
|
560
550
|
- spec/tags/1.9.2/core/io/write_spec.rb
|
561
551
|
- test/README
|
562
552
|
- test/_backport_guards_test.rb
|
553
|
+
- test/bit_length_test.rb
|
563
554
|
- test/lazy_test.rb
|
564
555
|
- test/socket_interaction_test.rb
|
565
556
|
- test/test_helper.rb
|
566
557
|
homepage: http://github.com/marcandre/backports
|
567
|
-
licenses:
|
568
|
-
|
558
|
+
licenses:
|
559
|
+
- MIT
|
560
|
+
metadata: {}
|
569
561
|
post_install_message:
|
570
562
|
rdoc_options: []
|
571
|
-
|
572
|
-
require_paths:
|
563
|
+
require_paths:
|
573
564
|
- lib
|
574
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
575
|
-
|
576
|
-
requirements:
|
565
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
566
|
+
requirements:
|
577
567
|
- - ">="
|
578
|
-
- !ruby/object:Gem::Version
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
version: "0"
|
583
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
584
|
-
none: false
|
585
|
-
requirements:
|
568
|
+
- !ruby/object:Gem::Version
|
569
|
+
version: '0'
|
570
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
571
|
+
requirements:
|
586
572
|
- - ">="
|
587
|
-
- !ruby/object:Gem::Version
|
588
|
-
|
589
|
-
segments:
|
590
|
-
- 0
|
591
|
-
version: "0"
|
573
|
+
- !ruby/object:Gem::Version
|
574
|
+
version: '0'
|
592
575
|
requirements: []
|
593
|
-
|
594
576
|
rubyforge_project:
|
595
|
-
rubygems_version:
|
577
|
+
rubygems_version: 2.4.5
|
596
578
|
signing_key:
|
597
|
-
specification_version:
|
579
|
+
specification_version: 4
|
598
580
|
summary: Backports of Ruby features for older Ruby.
|
599
|
-
test_files:
|
581
|
+
test_files:
|
600
582
|
- spec/tags/1.8.6/core/argf/each_line_spec.rb
|
601
583
|
- spec/tags/1.8.6/core/argf/each_spec.rb
|
602
584
|
- spec/tags/1.8.6/core/argf/lines_spec.rb
|
@@ -711,6 +693,7 @@ test_files:
|
|
711
693
|
- spec/tags/1.9.2/core/io/write_spec.rb
|
712
694
|
- test/README
|
713
695
|
- test/_backport_guards_test.rb
|
696
|
+
- test/bit_length_test.rb
|
714
697
|
- test/lazy_test.rb
|
715
698
|
- test/socket_interaction_test.rb
|
716
699
|
- test/test_helper.rb
|