running_on_rails 0.0.2 → 0.0.3
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 +13 -5
- data/.gitignore +1 -0
- data/README.md +9 -3
- data/lib/ext/float.rb +13 -5
- data/lib/running_on_rails.rb +1 -70
- data/lib/running_on_rails/pace_converter.rb +66 -0
- data/lib/running_on_rails/version.rb +1 -1
- data/running_on_rails.gemspec +3 -3
- data/spec/running_on_rails/pace_converter_spec.rb +23 -23
- metadata +17 -16
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZWY3OTFiMzBlZDI1OWVkZjRjNTYwNjkzM2RkNGFkM2QzOGJlNzg4Mg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YmQyODNjYjdiODYzYjVkZmUxNTI3YzYzMDg4ZWE1MDdkMTNkMDJkYg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MDUxNWM3MDViNGRmNWNlODc4N2M1N2M3MjYxNDhkYzU0NWEwNjUwYTYzMDkz
|
10
|
+
Yzc5ZDA1YTQ4ODdmNzU1NzkwMTJhZjAyZTA5YmYxZWUyODQ0ZWYzYjBmYzky
|
11
|
+
ZjhiOTZlNDQ0NWIwMDlmYjdhMTUzNGYwZDRkY2M1ZmNlYzAxMDA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NzY1OWEzYzBhODAxY2FiOWUzMTZiZjNkNzQyNDc3YzlkMGQ4NWI1ZjM0NjM2
|
14
|
+
NDVjZjEzN2VhMGUxNDNmNDg1YmNmYjUyMWEyNjc5NDYyNzVmYjY2MWM3YTE1
|
15
|
+
NmFmZjQ3NzhhOTVlN2U2YTc1ZTZmY2IzYzkyY2M1NTRjZWMyOGU=
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -57,6 +57,10 @@ You can convert Float (as meters/second) to any of the following unit:
|
|
57
57
|
@pace.to_meters_sec
|
58
58
|
=> 3.2
|
59
59
|
```
|
60
|
+
### Float to mm:ss
|
61
|
+
|
62
|
+
mins per km and mins per miles can be converted to "mm:ss" with Float#to_mm_ss
|
63
|
+
|
60
64
|
|
61
65
|
### From one unit to another unit
|
62
66
|
|
@@ -74,19 +78,21 @@ from_meters_sec(meters)
|
|
74
78
|
|
75
79
|
|
76
80
|
```
|
77
|
-
> @pace_converter =
|
78
|
-
=>
|
81
|
+
> @pace_converter = PaceConverter.new
|
82
|
+
=> PaceConverter
|
79
83
|
> @pace_converter.from_mins_miles(10, 30)
|
80
84
|
=> 2.555
|
81
85
|
> @pace_converter.from_kms_hour(11.52)
|
82
86
|
=> 3.2
|
83
87
|
```
|
84
88
|
|
89
|
+
## Contact
|
85
90
|
|
91
|
+
It's my first gem, so all advice are more than welcome! @manzan_46 // axel.manzano@gmail.com
|
86
92
|
|
87
93
|
## Contributing
|
88
94
|
|
89
|
-
1. Fork it ( https://github.com/
|
95
|
+
1. Fork it ( https://github.com/manzan_a/running_on_rails/fork )
|
90
96
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
91
97
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
92
98
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/lib/ext/float.rb
CHANGED
@@ -1,21 +1,29 @@
|
|
1
1
|
Float.class_eval do
|
2
2
|
def to_mins_mile
|
3
|
-
|
3
|
+
PaceConverter.new(self).to_mins_mile
|
4
4
|
end
|
5
5
|
|
6
6
|
def to_miles_hour
|
7
|
-
|
7
|
+
PaceConverter.new(self).to_miles_hour
|
8
8
|
end
|
9
9
|
|
10
10
|
def to_mins_km
|
11
|
-
|
11
|
+
PaceConverter.new(self).to_mins_km
|
12
12
|
end
|
13
13
|
|
14
14
|
def to_kms_hour
|
15
|
-
|
15
|
+
PaceConverter.new(self).to_kms_hour
|
16
16
|
end
|
17
17
|
|
18
18
|
def to_meters_sec
|
19
|
-
|
19
|
+
PaceConverter.new(self).to_meters_sec
|
20
20
|
end
|
21
|
+
|
22
|
+
def to_mm_ss
|
23
|
+
time = 60 * self
|
24
|
+
minutes = (time/60).to_i
|
25
|
+
seconds = (time - (minutes * 60)).to_i
|
26
|
+
return "#{minutes.to_s.rjust(2, '0')}:#{seconds.to_s.rjust(2, '0')}"
|
27
|
+
end
|
28
|
+
|
21
29
|
end
|
data/lib/running_on_rails.rb
CHANGED
@@ -1,72 +1,3 @@
|
|
1
1
|
require "running_on_rails/version"
|
2
|
+
require "running_on_rails/pace_converter"
|
2
3
|
require "ext/float"
|
3
|
-
|
4
|
-
module RunningOnRails
|
5
|
-
class PaceConverter
|
6
|
-
def initialize(meters = 0, seconds = 1)
|
7
|
-
@seconds = seconds.to_i
|
8
|
-
@distance = meters
|
9
|
-
end
|
10
|
-
|
11
|
-
def from_mins_mile(mins, secs)
|
12
|
-
mins = (mins or 0).abs.to_i
|
13
|
-
secs = (secs or 0).abs.to_i
|
14
|
-
@distance = 1609.344
|
15
|
-
@seconds = (mins * 60) + secs
|
16
|
-
to_meters_sec
|
17
|
-
end
|
18
|
-
|
19
|
-
def from_miles_hour(miles)
|
20
|
-
miles = (miles or 0).abs
|
21
|
-
@distance = miles * 1609.344
|
22
|
-
@seconds = 3600
|
23
|
-
to_meters_sec
|
24
|
-
end
|
25
|
-
|
26
|
-
def from_mins_km(mins, secs)
|
27
|
-
mins = (mins or 0).abs.to_i
|
28
|
-
secs = (secs or 0).abs.to_i
|
29
|
-
@distance = 1000.0
|
30
|
-
@seconds = (mins * 60) + secs
|
31
|
-
to_meters_sec
|
32
|
-
end
|
33
|
-
|
34
|
-
def from_kms_hour(kms)
|
35
|
-
kms = (kms or 0).abs
|
36
|
-
@distance = kms * 1000.0
|
37
|
-
@seconds = 3600
|
38
|
-
to_meters_sec
|
39
|
-
end
|
40
|
-
|
41
|
-
def from_meters_sec(meters)
|
42
|
-
meters = (meters or 0).abs
|
43
|
-
@distance = meters
|
44
|
-
@seconds = 1
|
45
|
-
end
|
46
|
-
|
47
|
-
def to_mins_mile
|
48
|
-
(26.8224 / (@distance / @seconds)).round(3)
|
49
|
-
end
|
50
|
-
|
51
|
-
def to_miles_hour
|
52
|
-
((@distance / @seconds) * 2.23694).round(3)
|
53
|
-
end
|
54
|
-
|
55
|
-
def to_mins_km
|
56
|
-
(16.667 / (@distance / @seconds)).round(3)
|
57
|
-
end
|
58
|
-
|
59
|
-
def to_kms_hour
|
60
|
-
((@distance / @seconds) * 3.6).round(3)
|
61
|
-
end
|
62
|
-
|
63
|
-
def to_meters_sec
|
64
|
-
if @seconds != 0
|
65
|
-
((@distance / @seconds)).round(3)
|
66
|
-
else
|
67
|
-
0.0
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
class PaceConverter
|
2
|
+
def initialize(meters = 0, seconds = 1)
|
3
|
+
@seconds = seconds.to_i
|
4
|
+
@distance = meters
|
5
|
+
end
|
6
|
+
|
7
|
+
def from_mins_mile(mins, secs)
|
8
|
+
mins = (mins or 0).abs.to_i
|
9
|
+
secs = (secs or 0).abs.to_i
|
10
|
+
@distance = 1609.344
|
11
|
+
@seconds = (mins * 60) + secs
|
12
|
+
to_meters_sec
|
13
|
+
end
|
14
|
+
|
15
|
+
def from_miles_hour(miles)
|
16
|
+
miles = (miles or 0).abs
|
17
|
+
@distance = miles * 1609.344
|
18
|
+
@seconds = 3600
|
19
|
+
to_meters_sec
|
20
|
+
end
|
21
|
+
|
22
|
+
def from_mins_km(mins, secs)
|
23
|
+
mins = (mins or 0).abs.to_i
|
24
|
+
secs = (secs or 0).abs.to_i
|
25
|
+
@distance = 1000.0
|
26
|
+
@seconds = (mins * 60) + secs
|
27
|
+
to_meters_sec
|
28
|
+
end
|
29
|
+
|
30
|
+
def from_kms_hour(kms)
|
31
|
+
kms = (kms or 0).abs
|
32
|
+
@distance = kms * 1000.0
|
33
|
+
@seconds = 3600
|
34
|
+
to_meters_sec
|
35
|
+
end
|
36
|
+
|
37
|
+
def from_meters_sec(meters)
|
38
|
+
meters = (meters or 0).abs
|
39
|
+
@distance = meters
|
40
|
+
@seconds = 1
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_mins_mile
|
44
|
+
(26.8224 / (@distance / @seconds)).round(3)
|
45
|
+
end
|
46
|
+
|
47
|
+
def to_miles_hour
|
48
|
+
((@distance / @seconds) * 2.23694).round(3)
|
49
|
+
end
|
50
|
+
|
51
|
+
def to_mins_km
|
52
|
+
(16.667 / (@distance / @seconds)).round(3)
|
53
|
+
end
|
54
|
+
|
55
|
+
def to_kms_hour
|
56
|
+
((@distance / @seconds) * 3.6).round(3)
|
57
|
+
end
|
58
|
+
|
59
|
+
def to_meters_sec
|
60
|
+
if @seconds != 0
|
61
|
+
((@distance / @seconds)).round(3)
|
62
|
+
else
|
63
|
+
0.0
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/running_on_rails.gemspec
CHANGED
@@ -19,10 +19,10 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
-
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency 'rspec'
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency 'rspec', "~> 2.0"
|
24
24
|
|
25
|
-
spec.version = '0.0.
|
25
|
+
spec.version = '0.0.3'
|
26
26
|
spec.summary = "Tools for running as pace converter, split calculator ..."
|
27
27
|
spec.description = "Running On Rails gem provide some tools for running or cycling as pace converter, split calculator, training pace..."
|
28
28
|
spec.homepage = 'https://github.com/manzan46/running_on_rails'
|
@@ -1,97 +1,97 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe PaceConverter do
|
4
4
|
describe "#from_mins_mile" do
|
5
5
|
it "returns 0 meters/second for nil mins nil secs" do
|
6
|
-
expect(
|
6
|
+
expect(PaceConverter.new.from_mins_mile(nil, nil)).to eql(0.0)
|
7
7
|
end
|
8
8
|
|
9
9
|
it "returns 0 meters/second for 0 mins 0 secs" do
|
10
|
-
expect(
|
10
|
+
expect(PaceConverter.new.from_mins_mile(0, 0)).to eql(0.0)
|
11
11
|
end
|
12
12
|
|
13
13
|
it "returns 2.555 meters/second for 10 mins 30 secs" do
|
14
|
-
expect(
|
14
|
+
expect(PaceConverter.new.from_mins_mile(10, 30)).to eql(2.555)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "returns 2.555 meters/second for 10.5 mins 30.9 secs as only integer are accepted" do
|
18
|
-
expect(
|
18
|
+
expect(PaceConverter.new.from_mins_mile(10.5, 30.9)).to eql(2.555)
|
19
19
|
end
|
20
20
|
|
21
21
|
it "returns 2.555 meters/second for -10 mins -30 secs as only positive value are accepted" do
|
22
|
-
expect(
|
22
|
+
expect(PaceConverter.new.from_mins_mile(-10, -30)).to eql(2.555)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
describe "#from_miles_hour" do
|
27
27
|
it "returns 0 meters/second for nil miles" do
|
28
|
-
expect(
|
28
|
+
expect(PaceConverter.new.from_miles_hour(nil)).to eql(0.0)
|
29
29
|
end
|
30
30
|
|
31
31
|
it "returns 0 meters/second for 0 miles" do
|
32
|
-
expect(
|
32
|
+
expect(PaceConverter.new.from_miles_hour(0)).to eql(0.0)
|
33
33
|
end
|
34
34
|
|
35
35
|
it "returns 4.470 meters/second for 10 miles" do
|
36
|
-
expect(
|
36
|
+
expect(PaceConverter.new.from_miles_hour(10)).to eql(4.470)
|
37
37
|
end
|
38
38
|
|
39
39
|
it "returns 4.694 meters/second for 10.5 miles" do
|
40
|
-
expect(
|
40
|
+
expect(PaceConverter.new.from_miles_hour(10.5)).to eql(4.694)
|
41
41
|
end
|
42
42
|
|
43
43
|
it "returns 4.470 seconds for -10 miles as only positive value are accepted" do
|
44
|
-
expect(
|
44
|
+
expect(PaceConverter.new.from_miles_hour(-10)).to eql(4.470)
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
48
|
describe "#from_mins_km" do
|
49
49
|
it "returns 0 meters/second for nil mins nil secs" do
|
50
|
-
expect(
|
50
|
+
expect(PaceConverter.new.from_mins_km(nil, nil)).to eql(0.0)
|
51
51
|
end
|
52
52
|
|
53
53
|
it "returns 0 meters/second for 0 mins 0 secs" do
|
54
|
-
expect(
|
54
|
+
expect(PaceConverter.new.from_mins_km(0, 0)).to eql(0.0)
|
55
55
|
end
|
56
56
|
|
57
57
|
it "returns 1.587 meters/second for 10 mins 30 secs" do
|
58
|
-
expect(
|
58
|
+
expect(PaceConverter.new.from_mins_km(10, 30)).to eql(1.587)
|
59
59
|
end
|
60
60
|
|
61
61
|
it "returns 1.587 meters/second for 10.5 mins 30.9 secs as only integer are accepted" do
|
62
|
-
expect(
|
62
|
+
expect(PaceConverter.new.from_mins_km(10.5, 30.9)).to eql(1.587)
|
63
63
|
end
|
64
64
|
|
65
65
|
it "returns 1.587 meters/second for -10 mins -30 secs as only positive value are accepted" do
|
66
|
-
expect(
|
66
|
+
expect(PaceConverter.new.from_mins_km(-10, -30)).to eql(1.587)
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
describe "#from_kms_hour" do
|
71
71
|
it "returns 0.0 meters/second for nil kilometers" do
|
72
|
-
expect(
|
72
|
+
expect(PaceConverter.new.from_kms_hour(nil)).to eql(0.0)
|
73
73
|
end
|
74
74
|
|
75
75
|
it "returns 0.0 meters/second for 0 kilometers" do
|
76
|
-
expect(
|
76
|
+
expect(PaceConverter.new.from_kms_hour(0)).to eql(0.0)
|
77
77
|
end
|
78
78
|
|
79
79
|
it "returns 2.778 meters/second for 10 kilometers" do
|
80
|
-
expect(
|
80
|
+
expect(PaceConverter.new.from_kms_hour(10)).to eql(2.778)
|
81
81
|
end
|
82
82
|
|
83
83
|
it "returns 2.917 meters/second for 10.5 kilometers" do
|
84
|
-
expect(
|
84
|
+
expect(PaceConverter.new.from_kms_hour(10.5)).to eql(2.917)
|
85
85
|
end
|
86
86
|
|
87
87
|
it "returns 2.778 meters/second for -10 kilometers as only positive value are accepted" do
|
88
|
-
expect(
|
88
|
+
expect(PaceConverter.new.from_kms_hour(-10)).to eql(2.778)
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
92
|
describe "revert convertion of 4 m/s" do
|
93
93
|
before(:each) do
|
94
|
-
@pace_converter =
|
94
|
+
@pace_converter = PaceConverter.new
|
95
95
|
@pace_converter.from_meters_sec(4)
|
96
96
|
end
|
97
97
|
|
@@ -119,7 +119,7 @@ describe RunningOnRails::PaceConverter do
|
|
119
119
|
|
120
120
|
describe "revert convertion of 3.2 m/s" do
|
121
121
|
before(:each) do
|
122
|
-
@pace_converter =
|
122
|
+
@pace_converter = PaceConverter.new
|
123
123
|
@pace_converter.from_meters_sec(3.2)
|
124
124
|
end
|
125
125
|
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: running_on_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manzano Axel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.6'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
47
|
+
version: '2.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
54
|
+
version: '2.0'
|
55
55
|
description: Running On Rails gem provide some tools for running or cycling as pace
|
56
56
|
converter, split calculator, training pace...
|
57
57
|
email:
|
@@ -60,14 +60,15 @@ executables: []
|
|
60
60
|
extensions: []
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
|
-
-
|
64
|
-
-
|
63
|
+
- .gitignore
|
64
|
+
- .rspec
|
65
65
|
- Gemfile
|
66
66
|
- LICENSE.txt
|
67
67
|
- README.md
|
68
68
|
- Rakefile
|
69
69
|
- lib/ext/float.rb
|
70
70
|
- lib/running_on_rails.rb
|
71
|
+
- lib/running_on_rails/pace_converter.rb
|
71
72
|
- lib/running_on_rails/version.rb
|
72
73
|
- running_on_rails.gemspec
|
73
74
|
- spec/running_on_rails/pace_converter_spec.rb
|
@@ -83,12 +84,12 @@ require_paths:
|
|
83
84
|
- lib
|
84
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
85
86
|
requirements:
|
86
|
-
- -
|
87
|
+
- - ! '>='
|
87
88
|
- !ruby/object:Gem::Version
|
88
89
|
version: '0'
|
89
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
91
|
requirements:
|
91
|
-
- -
|
92
|
+
- - ! '>='
|
92
93
|
- !ruby/object:Gem::Version
|
93
94
|
version: '0'
|
94
95
|
requirements: []
|