STEMConstants 0.0.1

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 +7 -0
  2. data/lib/STEMConstants.rb +83 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dbf2923c34d267a941d290550e7045a9f0e50167
4
+ data.tar.gz: 65d8518b1fabfe4933845c265333f0927f7ef9ae
5
+ SHA512:
6
+ metadata.gz: 580b3a066abf0abd41081cf7c9dbdb0cbb98c1aa566b40e1cf865c58ac3a362de9831ce490f41b97ebf29e354d22cdaedebe0dbddd798d54d64b34823e3db2eb
7
+ data.tar.gz: ff5626ff1543d7c6775047c69908492d9da0250f1e50b60ad7fbe9e5e9b172f7a7a069390f938480dada2ced15b2e8e261db258a281026f27c366e912bb66747
@@ -0,0 +1,83 @@
1
+ module STEMConstants
2
+ @distance_mode = 'meter'
3
+ def self.set_distance_mode(mode)
4
+ @distance_mode = mode if Distance[mode.to_sym]
5
+ end
6
+
7
+ @time_mode = 'second'
8
+ def self.set_time_mode(mode)
9
+ @time_mode = mode if Time[mode.to_sym]
10
+ end
11
+
12
+ @mass_mode = 'gram'
13
+ def self.set_mass_mode(mode)
14
+ @mass_mode = mode if Mass[mode.to_sym]
15
+ end
16
+
17
+ Number = {
18
+ #most numbers can be found at this wiki page for explanation: https://en.wikipedia.org/wiki/Mathematical_constant#Simple_representatives_of_sets_of_numbers
19
+ :pi => 3.141592653589793,
20
+ :tau => 3.141592653589793 / 2,
21
+ :golden_ratio => 1.618033988749894,
22
+ :euler => 0.577215664901532,
23
+ :sqrt_2 => 1.414213562373095,
24
+ :sqrt_3 => 1.732050807568877,
25
+ :euler_mascheroni => 0.577215664901532,
26
+ :meissel_mertens => 0.261497212847642,
27
+ :bernstein => 0.280169499023869,
28
+ :sierpinski => 2.584981759579253
29
+ }
30
+
31
+ Distance = {
32
+ :default => 1.0,
33
+ :meter => 1.0,
34
+ :centimeter => 100.0,
35
+ :millimeter => 1000.0,
36
+ :kilometer => 1.0 / 1000.0,
37
+ :feet => 3.280839895,
38
+ :inch => 39.37007874,
39
+ :yard => 1.093613298,
40
+ :mile => 0.0006213711922
41
+ }
42
+
43
+ Time = {
44
+ :default => 1.0,
45
+ :second => 1.0,
46
+ :jiffy => 100.0,
47
+ :millisecond => 1000.0,
48
+ :minute => 1.0 / 60.0,
49
+ :hour => 1.0 / 60.0 / 60.0,
50
+ :day => 1.0 / 60.0 / 60.0 / 24.0,
51
+ :year => 1.0 / 60.0 / 60.0 / 24.0 / 365.0,
52
+ :leap_year => 1.0 / 60.0 / 60.0 / 24.0 / 366.0,
53
+ :corrected_year => 1.0 / 60.0 / 60.0 / 24.0 / 365.25 #the mean amount of days in a year is 365.25
54
+ }
55
+
56
+ Mass = {
57
+ :default => 1.0,
58
+ :gram => 1.0,
59
+ :centigram => 100.0,
60
+ :milligram => 1000.0,
61
+ :kilogram => 1.0 / 1000.0,
62
+ :ounce => 0.035274,
63
+ :pound => 0.00220462,
64
+ :slug => 1.0 / 1000.0 / 14.6,
65
+ :ton => 1.0 / 1000.0 / 1000.0
66
+ }
67
+
68
+ def self.number(constant, conversion = 'default')
69
+ Number[constant.to_sym] / Number[conversion.to_sym]
70
+ end
71
+
72
+ def self.distance(constant, conversion = 'default')
73
+ Distance[constant.to_sym] / Distance[conversion.to_sym] / Distance[@distance_mode.to_sym]
74
+ end
75
+
76
+ def self.time(constant, conversion = 'default')
77
+ Time[constant.to_sym] / Time[conversion.to_sym] / Time[@time_mode.to_sym]
78
+ end
79
+
80
+ def self.mass(constant, conversion = 'default')
81
+ Mass[c.to_sym] / Mass[conversion.to_sym] / Mass[@mass_mode.to_sym]
82
+ end
83
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: STEMConstants
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Tim Dickeson II
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-05-12 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A library of constants with functionality to convert to different units
14
+ email: imacubsfan23@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/STEMConstants.rb
20
+ homepage: http://rubygems.org/gems/STEMConstants
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.6.11
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: A library of useful Science and Math constants
44
+ test_files: []