speedify 0.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/speedify.rb +45 -0
  3. metadata +40 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: cd062e0685144b75d1010a8df6b0ced31f0feb3c3d63ebd5e9ff73731b4b9b90
4
+ data.tar.gz: 1b376d7ed8c1d3eb12a5f20d1f5dcae059aef0e271f102db16eecff90cf8f474
5
+ SHA512:
6
+ metadata.gz: 7d17fcfbe9c6fed25c112327da3b2c0ac426c0377477acbb1764f6d029f6e605aae5b42b2ae4e0e50bf4ccf64ce92df067f391842a2c8bd675634eaeebaf2ccd
7
+ data.tar.gz: 8c2fcfa09e583078aa49ce80874826ffb4127e492abe9d3a17cd4b7fe08dcf29c2c6a05f60131ec1b6103d4428df6f152174910f64a70f8982fd13730f1e25d4
data/lib/speedify.rb ADDED
@@ -0,0 +1,45 @@
1
+ class Speedify
2
+ # Convert speed from km/h to m/s
3
+ def self.speed_to_mps(speed_kmh)
4
+ (speed_kmh * 1000.0) / 3600.0
5
+ end
6
+
7
+ # Convert speed from m/s to km/h
8
+ def self.speed_to_kmh(speed_mps)
9
+ (speed_mps * 3600.0) / 1000.0
10
+ end
11
+
12
+ #Calculate time given distance (in km) and speed(in km/h)
13
+ def self.time_for_distance(distance_km, speed_kmh)
14
+ raise ArgumentError, "Speed must be greater than zero(0)" if speed_kmh <= 0
15
+
16
+ time_hours = distance_km / speed_kmh
17
+ convert_hours_to_time_format(time_hours)
18
+ end
19
+
20
+ # Calculate distance given speed time (in km/h) and time (in hours)
21
+ def self.distance_for_time(time_hours, speed_kmh)
22
+ raise ArgumentError, "Speed must be greater than zero(0)" if speed_kmh <= 0
23
+
24
+ time_hours * speed_kmh
25
+ end
26
+
27
+ # Calculate speed given distance (in km) and time (in hours)
28
+ def self.speed_for_distance_and_time(distance_km, time_hours)
29
+ raise ArgumentError, "Time must be greater than Zero(0)" if time_hours <= 0
30
+
31
+ distance_km / time_hours
32
+ end
33
+
34
+ private
35
+
36
+ # Convert fractional hours to time
37
+ def self.convert_hours_to_time_format(hours)
38
+ total_seconds = (hours * 3600).to_i
39
+ hh = total_seconds / 3600
40
+ mm = (total_seconds % 3600) / 60
41
+ ss = total_seconds % 60
42
+
43
+ format("%02d:%02d:%02d", hh, mm, ss)
44
+ end
45
+ end
metadata ADDED
@@ -0,0 +1,40 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: speedify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Xessive Observer
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2025-01-22 00:00:00.000000000 Z
11
+ dependencies: []
12
+ email: xessiveobserver@gmail.com
13
+ executables: []
14
+ extensions: []
15
+ extra_rdoc_files: []
16
+ files:
17
+ - lib/speedify.rb
18
+ homepage: https://rubygems.org/gems/speedify
19
+ licenses:
20
+ - MIT
21
+ metadata:
22
+ source_code_url: https://github.com/XessiveObserver/speedify
23
+ rdoc_options: []
24
+ require_paths:
25
+ - lib
26
+ required_ruby_version: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ required_rubygems_version: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ requirements: []
37
+ rubygems_version: 3.6.3
38
+ specification_version: 4
39
+ summary: Aids in distance, speed and time conversions
40
+ test_files: []