runby_pace 0.6.111 → 0.6.112

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/runby_pace/speed.rb +21 -6
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 53e1fde60170b40e952065946cb8b3effefbc041
4
- data.tar.gz: 6d8d69f77253a3a922823db414b6fc1a8d8b562f
3
+ metadata.gz: f6a23578f0080013d11088d8942eef4aeb20e808
4
+ data.tar.gz: 979e8d31b0ae9e4cfa1eda173fd6eab73978409b
5
5
  SHA512:
6
- metadata.gz: 9144c52af7381f09fd6edd1855f6d8597fffd74f1809cf506d5d046a8bb5a3e3edf1542042a326862bb7826031afb3f1db8a280217c6ffcf20e7358f7724e777
7
- data.tar.gz: b89cc072bf253e6c5a921828543da999eba7eb7c9f655d1fa7c92d03398a5952e52e410a48ce87fc301e89133bda4a7a9feb2c1178ad045f3c3a591d27d0bcf3
6
+ metadata.gz: 601aaaeb48f9fef5d97ee5edcc62f44cb2c9aa734d67b94d91ada0f0635e03aaafb0bf0b845a70898762595e60ebdcaad3eb6fee286dcaa13dbb0a831d49689a
7
+ data.tar.gz: b86423d35963e49e384f5de4b193118f662776f7074dca439c936c8cd85c8fc5d7c6e297148b7efbacafc0f9d725cd7ad8126b4a802f9a6460b9f8e0e25cb308
@@ -33,11 +33,26 @@ module Runby
33
33
  Runby::Pace.new(time, @distance.uom)
34
34
  end
35
35
 
36
- def self.try_parse(description)
37
- # TODO: hard coding
38
- distance = Distance.new(:mi, 7)
39
- speed = Speed.new distance
40
- { speed: speed }
36
+
37
+ # @param [String] str is either a long-form speed such as "7.5 miles per hour" or a short-form speed like "7.5mi/ph"
38
+ def self.parse(str)
39
+ str = str.to_s.strip.chomp
40
+ if str.match(/^(?<distance>\d+(?:\.\d+)? ?[A-Za-z]+)(?: per hour|\/ph)$/)
41
+ distance = Runby::Distance.new($~[:distance])
42
+ Speed.new distance
43
+ else
44
+ raise "Invalid speed format (#{str})"
45
+ end
46
+ end
47
+
48
+ def self.try_parse(str)
49
+ speed, error_message = nil, warning_message = nil
50
+ begin
51
+ speed = Speed.parse str
52
+ rescue StandardError => ex
53
+ error_message = "#{ex.message} (#{str})"
54
+ end
55
+ { speed: speed, error: error_message, warning: warning_message }
41
56
  end
42
57
 
43
58
  def <=>(other)
@@ -56,7 +71,7 @@ module Runby
56
71
  end
57
72
 
58
73
  def init_from_distance(distance)
59
- @distance = distance
74
+ @distance = Distance.new(distance)
60
75
  end
61
76
 
62
77
  def init_from_multiplier(multiplier, uom)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runby_pace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.111
4
+ version: 0.6.112
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ty Walls
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-17 00:00:00.000000000 Z
11
+ date: 2016-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -101,7 +101,7 @@ homepage: https://github.com/tygerbytes/runby-pace
101
101
  licenses:
102
102
  - MIT
103
103
  metadata:
104
- commit-hash: 50697302a17ff5639e909cb59c93bd3dce4e102c
104
+ commit-hash: fa51fc21a20b69ad77f48a217732e0294fe0218e
105
105
  post_install_message:
106
106
  rdoc_options: []
107
107
  require_paths: