running_on_rails 0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: efe933324d345330f20906d6d00b8d7a26216a83
4
+ data.tar.gz: 59bafb5cfe5aa8682c4849536e00f86cef58496e
5
+ SHA512:
6
+ metadata.gz: b15d9febe86e9cbfabeca44f0832dd5260f5878a3b20c725d606c3fe5ed4c244654d2ff43e2987735a6cb95c2231568c30fd1664caf7032fe20e0cec65aab8c9
7
+ data.tar.gz: 9487f25c66676481ec71aba4e44607922e968cdb8af3859592bcede5ff59b57e3d760d40368da4f79df2dffc79a29e2d0122ee0ec7d2f15e7bc5693834241729
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in running_on_rails.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Manzano Axel
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,93 @@
1
+ # RunningOnRails
2
+
3
+ Running On Rails gem provide some tools for running or cycling as pace converter,
4
+ split calculator, training pace...
5
+
6
+ Version 0.0.2:
7
+
8
+ ### Done
9
+ * Pace Converter
10
+
11
+ ### Todo
12
+ * still a long list
13
+
14
+ ## Installation
15
+
16
+ Add this line to your application's Gemfile:
17
+
18
+ gem 'running_on_rails'
19
+
20
+ And then execute:
21
+
22
+ $ bundle
23
+
24
+ Or install it yourself as:
25
+
26
+ $ gem install running_on_rails
27
+
28
+ ## Usage
29
+
30
+ ### Pace unit available
31
+
32
+ | |
33
+ | ------------- |
34
+ | mins / miles |
35
+ | miles / hour |
36
+ | mins / km |
37
+ | kms / hour |
38
+ | meters /sec |
39
+
40
+ ### Float (meters/second) to unit
41
+
42
+ You can convert Float (as meters/second) to any of the following unit:
43
+
44
+ #### Example
45
+
46
+ ```
47
+ > @pace = 3.2 # float wil be meters / second
48
+ => 3.2
49
+ > @pace.to_mins_mile
50
+ => 8.382
51
+ @pace.to_miles_hour
52
+ => 7.158
53
+ @pace.to_mins_km
54
+ => 5.208
55
+ @pace.to_kms_hour
56
+ => 11.52
57
+ @pace.to_meters_sec
58
+ => 3.2
59
+ ```
60
+
61
+ ### From one unit to another unit
62
+
63
+ All PaceConverter::from_* method return a Float which is the convertion in meters/second
64
+
65
+ ```
66
+ from_mins_mile(mins, secs)
67
+ from_miles_hour(miles)
68
+ from_mins_km(mins, secs)
69
+ from_kms_hour(kms)
70
+ from_meters_sec(meters)
71
+ ```
72
+
73
+ #### Example
74
+
75
+
76
+ ```
77
+ > @pace_converter = RunningOnRails::PaceConverter.new
78
+ => RunningOnRails::PaceConverter
79
+ > @pace_converter.from_mins_miles(10, 30)
80
+ => 2.555
81
+ > @pace_converter.from_kms_hour(11.52)
82
+ => 3.2
83
+ ```
84
+
85
+
86
+
87
+ ## Contributing
88
+
89
+ 1. Fork it ( https://github.com/[my-github-username]/running_on_rails/fork )
90
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
91
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
92
+ 4. Push to the branch (`git push origin my-new-feature`)
93
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
data/lib/ext/float.rb ADDED
@@ -0,0 +1,21 @@
1
+ Float.class_eval do
2
+ def to_mins_mile
3
+ RunningOnRails::PaceConverter.new(self).to_mins_mile
4
+ end
5
+
6
+ def to_miles_hour
7
+ RunningOnRails::PaceConverter.new(self).to_miles_hour
8
+ end
9
+
10
+ def to_mins_km
11
+ RunningOnRails::PaceConverter.new(self).to_mins_km
12
+ end
13
+
14
+ def to_kms_hour
15
+ RunningOnRails::PaceConverter.new(self).to_kms_hour
16
+ end
17
+
18
+ def to_meters_sec
19
+ RunningOnRails::PaceConverter.new(self).to_meters_sec
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ module RunningOnRails
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,72 @@
1
+ require "running_on_rails/version"
2
+ 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,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'running_on_rails/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "running_on_rails"
8
+ spec.version = RunningOnRails::VERSION
9
+ spec.authors = ["Manzano Axel"]
10
+ spec.email = ["axel.manzano@gmail.com"]
11
+ spec.summary = %q{TODO: Write a short summary. Required.}
12
+ spec.description = %q{TODO: Write a longer description. Optional.}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.6"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency 'rspec'
24
+
25
+ spec.version = '0.0.2'
26
+ spec.summary = "Tools for running as pace converter, split calculator ..."
27
+ spec.description = "Running On Rails gem provide some tools for running or cycling as pace converter, split calculator, training pace..."
28
+ spec.homepage = 'https://github.com/manzan46/running_on_rails'
29
+ end
@@ -0,0 +1,149 @@
1
+ require "spec_helper"
2
+
3
+ describe RunningOnRails::PaceConverter do
4
+ describe "#from_mins_mile" do
5
+ it "returns 0 meters/second for nil mins nil secs" do
6
+ expect(RunningOnRails::PaceConverter.new.from_mins_mile(nil, nil)).to eql(0.0)
7
+ end
8
+
9
+ it "returns 0 meters/second for 0 mins 0 secs" do
10
+ expect(RunningOnRails::PaceConverter.new.from_mins_mile(0, 0)).to eql(0.0)
11
+ end
12
+
13
+ it "returns 2.555 meters/second for 10 mins 30 secs" do
14
+ expect(RunningOnRails::PaceConverter.new.from_mins_mile(10, 30)).to eql(2.555)
15
+ end
16
+
17
+ it "returns 2.555 meters/second for 10.5 mins 30.9 secs as only integer are accepted" do
18
+ expect(RunningOnRails::PaceConverter.new.from_mins_mile(10.5, 30.9)).to eql(2.555)
19
+ end
20
+
21
+ it "returns 2.555 meters/second for -10 mins -30 secs as only positive value are accepted" do
22
+ expect(RunningOnRails::PaceConverter.new.from_mins_mile(-10, -30)).to eql(2.555)
23
+ end
24
+ end
25
+
26
+ describe "#from_miles_hour" do
27
+ it "returns 0 meters/second for nil miles" do
28
+ expect(RunningOnRails::PaceConverter.new.from_miles_hour(nil)).to eql(0.0)
29
+ end
30
+
31
+ it "returns 0 meters/second for 0 miles" do
32
+ expect(RunningOnRails::PaceConverter.new.from_miles_hour(0)).to eql(0.0)
33
+ end
34
+
35
+ it "returns 4.470 meters/second for 10 miles" do
36
+ expect(RunningOnRails::PaceConverter.new.from_miles_hour(10)).to eql(4.470)
37
+ end
38
+
39
+ it "returns 4.694 meters/second for 10.5 miles" do
40
+ expect(RunningOnRails::PaceConverter.new.from_miles_hour(10.5)).to eql(4.694)
41
+ end
42
+
43
+ it "returns 4.470 seconds for -10 miles as only positive value are accepted" do
44
+ expect(RunningOnRails::PaceConverter.new.from_miles_hour(-10)).to eql(4.470)
45
+ end
46
+ end
47
+
48
+ describe "#from_mins_km" do
49
+ it "returns 0 meters/second for nil mins nil secs" do
50
+ expect(RunningOnRails::PaceConverter.new.from_mins_km(nil, nil)).to eql(0.0)
51
+ end
52
+
53
+ it "returns 0 meters/second for 0 mins 0 secs" do
54
+ expect(RunningOnRails::PaceConverter.new.from_mins_km(0, 0)).to eql(0.0)
55
+ end
56
+
57
+ it "returns 1.587 meters/second for 10 mins 30 secs" do
58
+ expect(RunningOnRails::PaceConverter.new.from_mins_km(10, 30)).to eql(1.587)
59
+ end
60
+
61
+ it "returns 1.587 meters/second for 10.5 mins 30.9 secs as only integer are accepted" do
62
+ expect(RunningOnRails::PaceConverter.new.from_mins_km(10.5, 30.9)).to eql(1.587)
63
+ end
64
+
65
+ it "returns 1.587 meters/second for -10 mins -30 secs as only positive value are accepted" do
66
+ expect(RunningOnRails::PaceConverter.new.from_mins_km(-10, -30)).to eql(1.587)
67
+ end
68
+ end
69
+
70
+ describe "#from_kms_hour" do
71
+ it "returns 0.0 meters/second for nil kilometers" do
72
+ expect(RunningOnRails::PaceConverter.new.from_kms_hour(nil)).to eql(0.0)
73
+ end
74
+
75
+ it "returns 0.0 meters/second for 0 kilometers" do
76
+ expect(RunningOnRails::PaceConverter.new.from_kms_hour(0)).to eql(0.0)
77
+ end
78
+
79
+ it "returns 2.778 meters/second for 10 kilometers" do
80
+ expect(RunningOnRails::PaceConverter.new.from_kms_hour(10)).to eql(2.778)
81
+ end
82
+
83
+ it "returns 2.917 meters/second for 10.5 kilometers" do
84
+ expect(RunningOnRails::PaceConverter.new.from_kms_hour(10.5)).to eql(2.917)
85
+ end
86
+
87
+ it "returns 2.778 meters/second for -10 kilometers as only positive value are accepted" do
88
+ expect(RunningOnRails::PaceConverter.new.from_kms_hour(-10)).to eql(2.778)
89
+ end
90
+ end
91
+
92
+ describe "revert convertion of 4 m/s" do
93
+ before(:each) do
94
+ @pace_converter = RunningOnRails::PaceConverter.new
95
+ @pace_converter.from_meters_sec(4)
96
+ end
97
+
98
+ it "return 6.706 mins/mile" do
99
+ expect(@pace_converter.to_mins_mile).to eq(6.706)
100
+ end
101
+
102
+ it "return 8.948 miles/hour" do
103
+ expect(@pace_converter.to_miles_hour).to eq(8.948)
104
+ end
105
+
106
+ it "return 4.167 mins/km" do
107
+ expect(@pace_converter.to_mins_km).to eq(4.167)
108
+ end
109
+
110
+ it "return 14.4 kms/hour" do
111
+ expect(@pace_converter.to_kms_hour).to eq(14.4)
112
+ end
113
+
114
+ it "return 4 meters/sec" do
115
+ expect(@pace_converter.to_meters_sec).to eq(4)
116
+ end
117
+
118
+ end
119
+
120
+ describe "revert convertion of 3.2 m/s" do
121
+ before(:each) do
122
+ @pace_converter = RunningOnRails::PaceConverter.new
123
+ @pace_converter.from_meters_sec(3.2)
124
+ end
125
+
126
+ it "return 8.382 mins/mile" do
127
+ expect(@pace_converter.to_mins_mile).to eq(8.382)
128
+ end
129
+
130
+ it "return 7.158 miles/hour" do
131
+ expect(@pace_converter.to_miles_hour).to eq(7.158)
132
+ end
133
+
134
+ it "return 5.208 mins/km" do
135
+ expect(@pace_converter.to_mins_km).to eq(5.208)
136
+ end
137
+
138
+ it "return 11.52 kms/hour" do
139
+ expect(@pace_converter.to_kms_hour).to eq(11.52)
140
+ end
141
+
142
+ it "return 3.2 meters/sec" do
143
+ expect(@pace_converter.to_meters_sec).to eq(3.2)
144
+ end
145
+
146
+ end
147
+
148
+
149
+ end
@@ -0,0 +1,31 @@
1
+ require "spec_helper"
2
+
3
+ describe RunningOnRails do
4
+
5
+ describe "add method to Float to convert from meters/second" do
6
+ before (:each) do
7
+ @pace = 3.2
8
+ end
9
+
10
+ it "return 8.382 mins/mile" do
11
+ expect(@pace.to_mins_mile).to eq(8.382)
12
+ end
13
+
14
+ it "return 7.158 miles/hour" do
15
+ expect(@pace.to_miles_hour).to eq(7.158)
16
+ end
17
+
18
+ it "return 5.208 mins/km" do
19
+ expect(@pace.to_mins_km).to eq(5.208)
20
+ end
21
+
22
+ it "return 11.52 kms/hour" do
23
+ expect(@pace.to_kms_hour).to eq(11.52)
24
+ end
25
+
26
+ it "return 3.2 meters/sec" do
27
+ expect(@pace.to_meters_sec).to eq(3.2)
28
+ end
29
+ end
30
+
31
+ end
@@ -0,0 +1,6 @@
1
+ $:.unshift File.dirname(__FILE__) + '/../lib'
2
+ require "running_on_rails"
3
+
4
+ RSpec.configure do |config|
5
+
6
+ end
metadata ADDED
@@ -0,0 +1,103 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: running_on_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Manzano Axel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Running On Rails gem provide some tools for running or cycling as pace
56
+ converter, split calculator, training pace...
57
+ email:
58
+ - axel.manzano@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".rspec"
65
+ - Gemfile
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - lib/ext/float.rb
70
+ - lib/running_on_rails.rb
71
+ - lib/running_on_rails/version.rb
72
+ - running_on_rails.gemspec
73
+ - spec/running_on_rails/pace_converter_spec.rb
74
+ - spec/running_on_rails_spec.rb
75
+ - spec/spec_helper.rb
76
+ homepage: https://github.com/manzan46/running_on_rails
77
+ licenses:
78
+ - MIT
79
+ metadata: {}
80
+ post_install_message:
81
+ rdoc_options: []
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ requirements: []
95
+ rubyforge_project:
96
+ rubygems_version: 2.2.2
97
+ signing_key:
98
+ specification_version: 4
99
+ summary: Tools for running as pace converter, split calculator ...
100
+ test_files:
101
+ - spec/running_on_rails/pace_converter_spec.rb
102
+ - spec/running_on_rails_spec.rb
103
+ - spec/spec_helper.rb