primes-utils 1.0.1 → 1.0.2
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 +7 -5
- data/lib/primes/utils.rb +8 -3
- data/lib/primes/utils/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e261f1f23f43554136ce43468417e9f32064458
|
4
|
+
data.tar.gz: a5967146da4d22f3ac4c06791da236f14eac123a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74603be0a2f1ef0c3b486e4aa002d09910b22ec5883f970e5f93ae2cf7bde19db0ebd623db0b38505a5506319b3129e95f14bcb9cd2c8b2be633f223010dc253
|
7
|
+
data.tar.gz: db37760451a0d10a5ec5ff8e8074c90d986bd585133e19534d5bf2d977c726f789ad7d7fdbba8e79146f1032079dfc5b5efcc55bdbf4ad0b38173dc46758b546
|
data/README.md
CHANGED
@@ -17,6 +17,10 @@ And then execute:
|
|
17
17
|
Or install it yourself as:
|
18
18
|
|
19
19
|
$ gem install primes-utils
|
20
|
+
|
21
|
+
Then require as:
|
22
|
+
|
23
|
+
require 'primes/utils'
|
20
24
|
|
21
25
|
## Methods
|
22
26
|
|
@@ -86,11 +90,9 @@ Each has a pure ruby implementation, and also a hybrid implementation which uses
|
|
86
90
|
Unix cli command `factor` if its available on the host OS. `factor` [5] is an extremely fast
|
87
91
|
C coded factoring algorithm, part of the GNU Core Utilities package [4].
|
88
92
|
|
89
|
-
Upon loading, the gem tests if the
|
90
|
-
|
91
|
-
|
92
|
-
each method based on the Sieve of Zakiya (SoZ)[1][2][3]. OSes not on the list that have `factor`
|
93
|
-
can be added to the `factor_platforms` array to accommodate them.
|
93
|
+
Upon loading, the gem tests if the desired `factor` command exists on the host OS.
|
94
|
+
If so, it wraps a system call to it and uses it for `prime?` and `prime_division/factors`.
|
95
|
+
If not, it uses a fast pure ruby implementation for each method based on the Sieve of Zakiya (SoZ)[1][2][3].
|
94
96
|
|
95
97
|
## Author
|
96
98
|
Jabari Zakiya
|
data/lib/primes/utils.rb
CHANGED
@@ -1,12 +1,17 @@
|
|
1
1
|
require "primes/utils/version"
|
2
|
-
|
3
2
|
require 'rational' if RUBY_VERSION =~ /^(1.8)/ # for 'gcd' method
|
4
3
|
|
5
4
|
module Primes
|
6
5
|
module Utils
|
7
6
|
private
|
8
|
-
|
9
|
-
|
7
|
+
os_has_factor = false
|
8
|
+
begin
|
9
|
+
if `factor 10`.split(' ') == ["10:", "2", "5"]
|
10
|
+
os_has_factor = true
|
11
|
+
end
|
12
|
+
rescue
|
13
|
+
os_has_factor = false
|
14
|
+
end}
|
10
15
|
|
11
16
|
public
|
12
17
|
if os_has_factor # for platforms with cli 'factor' command
|
data/lib/primes/utils/version.rb
CHANGED
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: primes-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jabari Zakiya
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
|
+
prerelease: false
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '1.9'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
25
|
version: '1.9'
|
26
|
+
type: :development
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
|
+
prerelease: false
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
32
|
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: '10.0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '10.0'
|
40
|
+
type: :development
|
41
41
|
description: 'Methods: prime?, primemr?, primes, nthprime/primenth, factors/prime_division'
|
42
42
|
email:
|
43
43
|
- jzakiya@gmail.com
|