piste_pal 1.0.0 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 893460445f1be425c25ce56ae12ef4e629c77c91dbed7e90667a0659a1d74bf6
4
- data.tar.gz: da58a5516d4f98b355a6bc2fe2f3b55fe5b5b31300818bf7915982688cfce609
3
+ metadata.gz: 81502bdf7d7c411845d4e07a10e270d46fba652d7668d0b6a1d90153898c2b94
4
+ data.tar.gz: 2da58aba2b8769421666d4f4116a7e61192a9fe0f057f2030940e86114b0a0fb
5
5
  SHA512:
6
- metadata.gz: 006fe9c2eb0e264d762fadd5cccc2aabbd9a58b901e16cacf153e85e3727d045c9d3cd5914a51559f6ba811a0272212f91b980e892583f3451547ebd01461f81
7
- data.tar.gz: c2a92c099977e96d9c18df1fc6d7b094a076f4dd149486d1232f99d194bd2a7d451da4f8081d5a993dd41e5940d645ca76d8e8a43d1c7d733e505afc1afbd51b
6
+ metadata.gz: 1a81f84c7b0acdfc34857c360e2a68755884788bf121603c5c65abfb9ddb5bfc446d8861eba73f3fc6c106796f96791ea745382a4d84289a0dbcb3e244e6c399
7
+ data.tar.gz: b3b269adfac6f6448879444f33a70dada54866eb02bf2c3d1aa41d23cda34ceb5cb033543fb8d202036549aa18663f8f9b3a41b9dd2a17551773f282fac5cca3
data/Gemfile.lock CHANGED
@@ -2,7 +2,7 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  piste_pal (1.0.0)
5
- nokogiri (~> 1.10)
5
+ nokogiri (= 1.10.3)
6
6
  rake (~> 10.0)
7
7
  vincenty_distance (~> 1.0.0)
8
8
 
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # PistePal
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/piste_pal.svg)](https://badge.fury.io/rb/piste_pal)
4
+
3
5
  Fill your time off the slopes thinking about them. This gem takes .gpx files from popular activity tracking apps and turns them into fun stats.
4
6
 
5
7
  The code can be accessed at a high level by "purchasing" either Day Passes or Season Passes, but most of the functionality is modularized to allow you access to the stats you want.
@@ -1,6 +1,6 @@
1
1
  module PistePal
2
2
  class DayPass
3
- attr_accessor :resort, :date, :trackpoints, :maximum_speed, :peak_altitude, :vertical, :distance, :tallest_run, :longest_run, :runs, :lifts
3
+ attr_accessor :resort, :date, :trackpoints, :maximum_speed, :peak_altitude, :vertical, :distance, :tallest_run, :longest_run, :runs, :lifts, :total_hours
4
4
 
5
5
  def self.purchase file_content
6
6
  new(file_content: file_content)
@@ -95,6 +95,13 @@ module PistePal
95
95
  @distance = PistePal::DataServices::Distance.call(trackpoints: @runs)
96
96
  @vertical = PistePal::DataServices::Vertical.call(trackpoints: @runs)
97
97
  @tallest_run, @longest_run = PistePal::DataServices::TallestAndLongestRun.call(runs: @runs)
98
+ @total_hours = calculate_total_hours
99
+ end
100
+
101
+ def calculate_total_hours
102
+ first = @trackpoints.first.time
103
+ last = @trackpoints.last.time
104
+ (Time.parse(last) - Time.parse(first)) / 3600
98
105
  end
99
106
  end
100
107
  end
@@ -1,6 +1,6 @@
1
1
  module PistePal
2
2
  class SeasonPass
3
- attr_accessor :days, :resorts, :runs, :vertical, :distance
3
+ attr_accessor :days, :resorts, :runs, :vertical, :distance, :maximum_speed, :total_hours
4
4
 
5
5
  def self.purchase files
6
6
  new(files: files)
@@ -29,6 +29,21 @@ module PistePal
29
29
  :value => @days.map {|day| day.distance[:value] }.reduce(0, :+),
30
30
  :unit => @days.first.distance[:unit]
31
31
  }
32
+
33
+ @maximum_speed = generate_maximum_speed
34
+ @total_hours = generate_total_hours
35
+ end
36
+
37
+ def generate_maximum_speed
38
+ maximum_speed = nil
39
+ @days.each do |day|
40
+ maximum_speed = day.maximum_speed if maximum_speed.nil? || day.maximum_speed[:value] > maximum_speed[:value]
41
+ end
42
+ return maximum_speed
43
+ end
44
+
45
+ def generate_total_hours
46
+ @days.map {|day| day.total_hours }.reduce(0, :+)
32
47
  end
33
48
  end
34
49
  end
@@ -1,3 +1,3 @@
1
1
  module PistePal
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
data/piste_pal.gemspec CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "rake", "~> 10.0"
29
29
  spec.add_development_dependency "rspec", "~> 3.0"
30
30
  spec.add_development_dependency "byebug", "~> 11.0"
31
- spec.add_dependency "nokogiri", "~> 1.10"
31
+ spec.add_dependency "nokogiri", "1.10.3"
32
32
  spec.add_dependency "rake", "~> 10.0"
33
33
  spec.add_dependency "vincenty_distance", "~> 1.0.0"
34
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: piste_pal
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Menden
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-01 00:00:00.000000000 Z
11
+ date: 2019-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -70,16 +70,16 @@ dependencies:
70
70
  name: nokogiri
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: '1.10'
75
+ version: 1.10.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: '1.10'
82
+ version: 1.10.3
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement