primetable 0.3.0 → 0.3.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/Gemfile.lock +9 -1
- data/lib/primetable/version.rb +1 -1
- data/lib/primetable.rb +14 -9
- data/primetable.gemspec +1 -0
- data/spec/primetable_spec.rb +29 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e4fdef3ffbcb9081acc3d8e952ddc2b051f45e4
|
4
|
+
data.tar.gz: 5275d7f2f6cb434dc85f57ad0487936f7909f04b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d920a6a7aae34af4caaaedf1d3b3c59ab8eb10fe64ff8541b3f391e50396cc8ed0a418c8fd4d7b69963067eadabb043700089c4385fb591709da1402560f386e
|
7
|
+
data.tar.gz: 384eaf56ff8a025a59cd1990073f421000089b974b31358e3de60532771af11560cd066edecef1cbf6f4cdff79dd110ec0ccd98ac57cddfa9322c2aed323c8ee
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
primetable (0.3.
|
4
|
+
primetable (0.3.1)
|
5
5
|
awesome_print (~> 1.6, >= 1.6.1)
|
6
6
|
formatador (~> 0.2, >= 0.2.5)
|
7
7
|
therubyracer (~> 0.12, >= 0.12.2)
|
@@ -10,9 +10,15 @@ GEM
|
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
12
|
awesome_print (1.6.1)
|
13
|
+
coderay (1.1.0)
|
13
14
|
diff-lcs (1.2.5)
|
14
15
|
formatador (0.2.5)
|
15
16
|
libv8 (3.16.14.13)
|
17
|
+
method_source (0.8.2)
|
18
|
+
pry (0.10.2)
|
19
|
+
coderay (~> 1.1.0)
|
20
|
+
method_source (~> 0.8.1)
|
21
|
+
slop (~> 3.4)
|
16
22
|
rake (10.4.2)
|
17
23
|
ref (2.0.0)
|
18
24
|
rspec (3.4.0)
|
@@ -28,6 +34,7 @@ GEM
|
|
28
34
|
diff-lcs (>= 1.2.0, < 2.0)
|
29
35
|
rspec-support (~> 3.4.0)
|
30
36
|
rspec-support (3.4.0)
|
37
|
+
slop (3.6.0)
|
31
38
|
therubyracer (0.12.2)
|
32
39
|
libv8 (~> 3.16.14.0)
|
33
40
|
ref
|
@@ -38,6 +45,7 @@ PLATFORMS
|
|
38
45
|
DEPENDENCIES
|
39
46
|
bundler (~> 1.6)
|
40
47
|
primetable!
|
48
|
+
pry
|
41
49
|
rake (~> 10.4, >= 10.4.2)
|
42
50
|
rspec (~> 3.4, >= 3.4.0)
|
43
51
|
|
data/lib/primetable/version.rb
CHANGED
data/lib/primetable.rb
CHANGED
@@ -4,8 +4,8 @@ Dir["#{File.dirname(__FILE__)}/primetable/**/*.rb"].each { |f| require(f) }
|
|
4
4
|
# This is needed for load_primes method, which loads data from a file.
|
5
5
|
require "yaml"
|
6
6
|
|
7
|
-
#
|
8
|
-
require "
|
7
|
+
# This is used in the display_table method to...um, display the table ;-)
|
8
|
+
require "formatador"
|
9
9
|
|
10
10
|
# So, just for fun, I'm going to write my Ruby prime generation method and a few others as
|
11
11
|
# wrappers for some JS functionality I've already written. We'll test as usual. Perhaps, if
|
@@ -22,7 +22,6 @@ class PrimeTable
|
|
22
22
|
|
23
23
|
# This is only for testing, I'm unlikely to implement a command-line flag for this
|
24
24
|
unless suppress_output
|
25
|
-
|
26
25
|
puts "PrimeTable is running..."
|
27
26
|
end
|
28
27
|
|
@@ -136,13 +135,19 @@ class PrimeTable
|
|
136
135
|
|
137
136
|
end
|
138
137
|
|
139
|
-
#
|
140
|
-
# and making it slightly less lame with awesome_print.
|
138
|
+
# Use Formatador to make this display nicely.
|
141
139
|
def display_table(table)
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
140
|
+
columns = table.shift
|
141
|
+
table_data = table.map do |products|
|
142
|
+
row_hash = Hash.new
|
143
|
+
columns.each_with_index do |label, index|
|
144
|
+
key = (columns[index] || '')
|
145
|
+
row_hash[key] = products[index]
|
146
|
+
end
|
147
|
+
row_hash
|
148
|
+
end
|
149
|
+
# Note that we override the default string sort by passing a block with an integer sort
|
150
|
+
Formatador.display_table(table_data){ |x, y| x.to_i <=> y.to_i }
|
146
151
|
end
|
147
152
|
|
148
153
|
end
|
data/primetable.gemspec
CHANGED
data/spec/primetable_spec.rb
CHANGED
@@ -21,6 +21,31 @@ describe PrimeTable do
|
|
21
21
|
[19,38,57,95,133,209,247,323,361,437,551],
|
22
22
|
[23,46,69,115,161,253,299,391,437,529,667],
|
23
23
|
[29,58,87,145,203,319,377,493,551,667,841]]
|
24
|
+
@expected_table_display_first_ten = "
|
25
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
26
|
+
| | 2 | 3 | 5 | 7 | 11 | 13 | 17 | 19 | 23 | 29 |
|
27
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
28
|
+
| 2 | 4 | 6 | 10 | 14 | 22 | 26 | 34 | 38 | 46 | 58 |
|
29
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
30
|
+
| 3 | 6 | 9 | 15 | 21 | 33 | 39 | 51 | 57 | 69 | 87 |
|
31
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
32
|
+
| 5 | 10 | 15 | 25 | 35 | 55 | 65 | 85 | 95 | 115 | 145 |
|
33
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
34
|
+
| 7 | 14 | 21 | 35 | 49 | 77 | 91 | 119 | 133 | 161 | 203 |
|
35
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
36
|
+
| 11 | 22 | 33 | 55 | 77 | 121 | 143 | 187 | 209 | 253 | 319 |
|
37
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
38
|
+
| 13 | 26 | 39 | 65 | 91 | 143 | 169 | 221 | 247 | 299 | 377 |
|
39
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
40
|
+
| 17 | 34 | 51 | 85 | 119 | 187 | 221 | 289 | 323 | 391 | 493 |
|
41
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
42
|
+
| 19 | 38 | 57 | 95 | 133 | 209 | 247 | 323 | 361 | 437 | 551 |
|
43
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
44
|
+
| 23 | 46 | 69 | 115 | 161 | 253 | 299 | 391 | 437 | 529 | 667 |
|
45
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+
|
46
|
+
| 29 | 58 | 87 | 145 | 203 | 319 | 377 | 493 | 551 | 667 | 841 |
|
47
|
+
+----+----+----+-----+-----+-----+-----+-----+-----+-----+-----+"
|
48
|
+
|
24
49
|
end
|
25
50
|
|
26
51
|
it 'has a version number' do
|
@@ -75,4 +100,8 @@ describe PrimeTable do
|
|
75
100
|
expect(test_instance.primes).to eq(@expected_first_ten_primes)
|
76
101
|
expect(test_instance.table).to eq(@expected_table_with_first_ten_primes)
|
77
102
|
end
|
103
|
+
|
104
|
+
it "displays the table properly for the first ten primes" do
|
105
|
+
expect(`primetable`).to include(@expected_table_display_first_ten)
|
106
|
+
end
|
78
107
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: primetable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Day Davis Waterbury
|
@@ -124,6 +124,20 @@ dependencies:
|
|
124
124
|
- - ">="
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: 3.4.0
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: pry
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
127
141
|
description: Displays the products of N primes in a table format. Optionally uses
|
128
142
|
generated primes or precalculated.
|
129
143
|
email:
|