time_to_read 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -7
- data/lib/time_to_read/version.rb +1 -1
- data/lib/time_to_read.rb +14 -15
- data/spec/time_to_read_spec.rb +5 -12
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24b42f86eeff5b2e17481a8942b60c6614851f78
|
4
|
+
data.tar.gz: 79e95a32883bcf93799fbcc35839ef36ca79338a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab93072243f14cbd48cb1b9024605249a34f54c926dce8a87ff57a18e285245f1f8e7a40301f98b8f097985ecf45aab74027f812b891a5d2291f4f388f07cc51
|
7
|
+
data.tar.gz: 38b9bb09e4d0f12349f2e00199356505b8b5b3a3e43ec1c099d5386d61c94dcbbcc3faf501dd11e446881b988495795e95aba5e86dc46c2c0c0f1a05b87de354
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# TimeToRead
|
2
2
|
|
3
3
|
Estimates the time to read a string of text. The gem assumes a reading speed of 250 words per minute.
|
4
4
|
|
@@ -6,7 +6,7 @@ Estimates the time to read a string of text. The gem assumes a reading speed of
|
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
|
-
gem '
|
9
|
+
gem 'time_to_read'
|
10
10
|
|
11
11
|
And then execute:
|
12
12
|
|
@@ -14,21 +14,23 @@ And then execute:
|
|
14
14
|
|
15
15
|
Or install it yourself as:
|
16
16
|
|
17
|
-
$ gem install
|
17
|
+
$ gem install time_to_read
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
To use the gem on a string, call `
|
21
|
+
To use the gem on a string, call `time_to_read` on it passing through the desired reading speed as an argument.
|
22
22
|
|
23
23
|
Example:
|
24
|
-
`some_string.read_time_words`
|
24
|
+
`some_string.read_time_words(250)`
|
25
25
|
|
26
26
|
will output
|
27
|
-
`2 minutes
|
27
|
+
`2 minutes`
|
28
|
+
|
29
|
+
Note: Times are purposly fuzzy stating Less than a minute, and only incrementing at minute increments. Please take with a grain of salt :)
|
28
30
|
|
29
31
|
## Contributing
|
30
32
|
|
31
|
-
1. Fork it ( http://github.com/<my-github-username>/
|
33
|
+
1. Fork it ( http://github.com/<my-github-username>/time_to_read/fork )
|
32
34
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
33
35
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
34
36
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/lib/time_to_read/version.rb
CHANGED
data/lib/time_to_read.rb
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
require "time_to_read/version"
|
1
|
+
# require "time_to_read/version"
|
2
2
|
|
3
3
|
module TimeToRead
|
4
4
|
module String
|
5
|
-
def minutes_to_read
|
6
|
-
self.split(' ').count/250.0
|
7
|
-
end
|
8
5
|
|
9
|
-
def time_to_read
|
10
|
-
time = minutes_to_read
|
11
|
-
answer = ''
|
6
|
+
def time_to_read(words_per_minute)
|
7
|
+
time = minutes_to_read(words_per_minute)
|
12
8
|
if time >= 60
|
13
9
|
hours = read_time_hours(time).to_s
|
14
10
|
minutes = read_time_minutes(time - hours.to_i * 60).to_s
|
@@ -23,22 +19,25 @@ module TimeToRead
|
|
23
19
|
answer.strip
|
24
20
|
end
|
25
21
|
|
26
|
-
|
27
|
-
|
28
|
-
|
22
|
+
private
|
23
|
+
|
24
|
+
def minutes_to_read(words_per_minute)
|
25
|
+
self.split(' ').count/words_per_minute.to_i
|
29
26
|
end
|
30
27
|
|
31
|
-
def
|
32
|
-
hours
|
28
|
+
def read_time_hours(time)
|
29
|
+
hours = (time / 60).to_i
|
30
|
+
time_in_words(hours, 'hour')
|
33
31
|
end
|
34
32
|
|
35
33
|
def read_time_minutes(time)
|
36
34
|
minutes = time.to_i
|
37
|
-
|
35
|
+
time_in_words(minutes, 'minute') unless minutes == 0
|
38
36
|
end
|
39
37
|
|
40
|
-
def
|
41
|
-
|
38
|
+
def time_in_words(time_value, time_context)
|
39
|
+
time_context.to_s
|
40
|
+
time_value == 1 ? " #{time_value} #{time_context}" : " #{time_value} #{time_context}s"
|
42
41
|
end
|
43
42
|
end
|
44
43
|
end
|
data/spec/time_to_read_spec.rb
CHANGED
@@ -2,39 +2,32 @@ require "time_to_read"
|
|
2
2
|
require 'rspec'
|
3
3
|
|
4
4
|
describe "TimeToRead" do
|
5
|
-
describe "minutes_to_read" do
|
6
|
-
it "should output an amount of time given the length of a word" do
|
7
|
-
text = "word " * 250
|
8
|
-
expect(text.minutes_to_read).to eql 1.0
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
5
|
describe "time_to_read" do
|
13
6
|
it "returns the reading time in phrase form when there is an even number of minutes" do
|
14
7
|
text = "word " * 500
|
15
|
-
expect(text.time_to_read).to eql "2 minutes"
|
8
|
+
expect(text.time_to_read(250)).to eql "2 minutes"
|
16
9
|
end
|
17
10
|
|
18
11
|
it "returns the reading time in phrase form when there are seconds" do
|
19
12
|
text = "word " * 625
|
20
|
-
expect(text.time_to_read).to eql "2 minutes"
|
13
|
+
expect(text.time_to_read(250)).to eql "2 minutes"
|
21
14
|
end
|
22
15
|
|
23
16
|
it "returns the reading time in phrase form when read time is an hour" do
|
24
17
|
text = "word " * 15000
|
25
|
-
expect(text.time_to_read).to eql "1 hour"
|
18
|
+
expect(text.time_to_read(250)).to eql "1 hour"
|
26
19
|
end
|
27
20
|
|
28
21
|
it "returns the reading time in phrase form when read time include an hour, minutes, and seconds" do
|
29
22
|
text = "word " * 22550
|
30
|
-
expect(text.time_to_read).to eql "1 hour 30 minutes"
|
23
|
+
expect(text.time_to_read(250)).to eql "1 hour 30 minutes"
|
31
24
|
end
|
32
25
|
end
|
33
26
|
|
34
27
|
describe "hours_in_words" do
|
35
28
|
it "correctly pluralizes 'hour' when hours to read is greater than one" do
|
36
29
|
text = "word " * 30000
|
37
|
-
expect(text.time_to_read).to eql "2 hours"
|
30
|
+
expect(text.time_to_read(250)).to eql "2 hours"
|
38
31
|
end
|
39
32
|
end
|
40
33
|
end
|