runby_pace 0.6.111 → 0.6.112

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.
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: