engineer_calculator 2.0.1 → 2.0.2

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: 89eb7e5143f351c33f06395bf5750dc6cfd3e31977a39f5850d392c5e28974b3
4
- data.tar.gz: c404924ca5aad4eafdb3b037330d7cb06716d34bb2628ce485be4ff7e6998b4a
3
+ metadata.gz: 15e4217a23509a5741c95e644292d685a013839cbb9b9d1c92447ec400847442
4
+ data.tar.gz: 388e18b284891ea7224f6adf41e982f1d35d5d814805d9727d8b34239c905e6c
5
5
  SHA512:
6
- metadata.gz: 9415d88cd2b720adb1d6bce2e28c81341233e31b87fbeca770fc997e556f8ecc6f94593f4410ebbbe610979faa73738c777deae1d10eb3513fcd9b17e99fd562
7
- data.tar.gz: df2bfad26a1c0f4bb66220ab05948b92aff9b77d4dd3405f912dec6902fc6208999b0218babae82b2045c266882b72a3fdb5baad2f81713549dcd8523dccf4da
6
+ metadata.gz: 0f7871a8a53daf3fcbe0ae829f8c6bb6163dbd2ead4dcc892ff1c0c6fbc4a47e24c23856cbd233efdc8045a70c48ac5274e52d77b2d8b3ab9be216fcca124f38
7
+ data.tar.gz: c806ad1826c9515e3698e718046b25c94f32cb93c17e203eca709252340445f0e557dd6db8607de9829e1610100800831ec5f3e1d7471819d86b1531da8fc1d3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- engineer_calculator (2.0.1)
4
+ engineer_calculator (2.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -13,13 +13,13 @@ module Eng
13
13
 
14
14
  attr_accessor :error, :alter
15
15
  def calc(formula)
16
-
16
+
17
17
  return nil unless formula
18
18
 
19
19
  begin
20
20
  c = { value: "", unit: [], si_formula: "", error: [] }
21
21
 
22
- split_value_unit(formula.gsub("⋅","*").gsub("÷","/")).map do |e_formula|
22
+ split_value_unit(formula.gsub("×","*").gsub("⋅","*").gsub("÷","/")).map do |e_formula|
23
23
  if e_formula[:unit].nil?
24
24
  c[:value] << e_formula[:value].to_f.to_s + "r"
25
25
  c[:si_formula] << e_formula[:value]
@@ -4,7 +4,7 @@ module Eng
4
4
  unit_array = []
5
5
  formula_pre = formula.to_s.delete(" ")
6
6
  formula_pre.scan(/(#{operator_reg(:tri)})|
7
- (?:(#{operator_reg(:num)}(?:#{operator_reg(:double)})*)([^#{operator_reg(:num)}#{operator_reg(:double)}#{operator_reg(:ari)}]+))|
7
+ (?:(#{operator_reg(:num)}(?:#{operator_reg(:double)})*)([^#{operator_reg(:num)}#{operator_reg(:double)}#{operator_reg(:ari)}]+\w*))|
8
8
  (?:(#{operator_reg(:num)}(?:#{operator_reg(:double)})*)((?:\/?\(?\/?[a-z]+\d*(?:\*[a-z])*(?:\W*[a-z]\d*\)*)*)(?:\d[^[a-z]])*\)?))|
9
9
  (#{operator_reg(:ari)})|
10
10
  ((?:#{operator_reg(:num)})*(?:#{operator_reg(:double)})?)/ix)
@@ -41,10 +41,10 @@ module Eng
41
41
  end
42
42
 
43
43
  def liner_function(formula)
44
- formula_arr = formula.split(/(\*|\/|\+|-)/)
44
+ formula_arr = formula.split(/(#{operator_reg(:num)})|(value)|(\*)|(\/)|(\+)|(-)/).reject{|v| v == ""}
45
45
  input_num = formula_arr.index("value")
46
46
  mv_num = formula_arr.index{ |n| n =~ /\*|\// }
47
- pm_num = formula_arr.index{ |n| n =~ /\+|-/ }
47
+ pm_num = formula_arr.index{ |n| n == "+" || n == "-" }
48
48
 
49
49
  if mv_num
50
50
  a_ari = formula_arr[mv_num]
@@ -75,55 +75,5 @@ module Eng
75
75
 
76
76
  "value" + a_ari + a.to_s + b_ari + b.to_s + a_ari + a.to_s
77
77
  end
78
-
79
- def new_liner_function(formula)
80
- fl_arr = formula.split(/(\*|\/|\+|-)/)
81
- value_i = fl_arr.index("value")
82
-
83
- a = []
84
- b = []
85
- pl = false
86
- (value_i .. fl_arr.size - 1).each do |i|
87
- if pl || fl_arr[i] == "+" || fl_arr[i] == "-"
88
- b << reverse_operator(fl_arr[i])
89
- pl = true
90
- else
91
- a << reverse_operator(fl_arr[i])
92
- end
93
- end
94
-
95
- if value_i != 0
96
- (0 .. value_i - 1).reverse_each do |i|
97
- if fl_arr[i] == "+" || fl_arr[i] == "-" || i == 0
98
- (i .. value_i - 1).reverse_each do |ii|
99
- a.unshift(reverse_operator(fl_arr[ii]))
100
- end
101
-
102
- if i != 0
103
- (0..i).each do |ii|
104
- b.unshift(reverse_operator(fl_arr[ii], false))
105
- end
106
- end
107
- break
108
- end
109
- end
110
- end
111
- a.join + "+(" + b.join + ")/value"
112
- end
113
-
114
- def reverse_operator(operator, opt = true)
115
- case operator
116
- when "+"
117
- "-"
118
- when "-"
119
- "+"
120
- when "*"
121
- opt ? "/" : "*"
122
- when "/"
123
- opt ? "*" : "/"
124
- else
125
- operator
126
- end
127
- end
128
78
  end
129
79
  end
@@ -1,3 +1,3 @@
1
1
  module Engineer
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
@@ -89,14 +89,6 @@ Radiant Intensity:
89
89
  Spectral Intensity:
90
90
  - W/(sr*m)
91
91
  - watt per steradian metre
92
- Speed, Velocity:
93
- - m/s
94
- Acceleration:
95
- - m/s2
96
- Jerk, Jolt:
97
- - m/s3
98
- Snap, Jounce:
99
- - m/s4
100
92
  Angular Velocity:
101
93
  - rad/s
102
94
  Angular Acceleration:
@@ -209,3 +201,6 @@ Catalytic Activity:
209
201
  - kat
210
202
  - katal
211
203
  - mol/s
204
+
205
+ Viscosity:
206
+ - Pa*s
@@ -54,10 +54,10 @@ Electrical Conductance: s3*A2/(kg*m2)
54
54
  Magnetic Flux: kg*m2/(s2*A)
55
55
  Magnetic Field Strength, Magnetic Flux Density: kg/(s2*A)
56
56
  Electrical Inductance: kg*m2/(s2*A2)
57
- Temperature: K
58
57
  Luminous Flux: cd
59
58
  Illuminance: cd/m2
60
59
  Radioactivity (Decays Per Unit Time): /s
61
60
  Absorbed Dose (Of Ionizing Radiation): m2/s2
62
61
  Equivalent Dose (Of Ionizing Radiation): m2/s2
63
62
  Catalytic Activity: mol/s
63
+ Viscosity: (kg/m)*s
@@ -5,7 +5,7 @@ Length:
5
5
  feet, ft, ': value*0.304r
6
6
  yard, yd: value*0.9144r
7
7
  mile, mi: value*1609.344r
8
- 寸: value*1/33
8
+ 寸: value/33r
9
9
  尺: value*0.30303r
10
10
  鯨尺: value*0.37879r
11
11
  丈: value*3.0303r
@@ -20,34 +20,34 @@ Length:
20
20
  Weight:
21
21
  g, gram: value/1000r
22
22
  ton: value/0.001r
23
- grain, gr: value*15432.358352941r
24
- dram, dr: value*564.38339119329r
25
- ounce, oz: value*35.27396194958r
26
- pound, lb: value*2.2046226218488r
27
- stone, st: value/6.35029318r
28
- quarter: value/12.70058636r
29
- short-ton, sh-tn, s.t.: value/907.18474r
30
- 分: value*2666.6666666667r
31
- 匁: value*266.66666666667r
32
- 百目: value*2.6666666666667r
33
- 斤: value*1.6666666666667r
23
+ grain, gr: value/15432.358352941r
24
+ dram, dr: value/564.38339119329r
25
+ ounce, oz: value/35.27396194958r
26
+ pound, lb: value/2.2046226218488r
27
+ stone, st: value*6.35029318r
28
+ quarter: value*12.70058636r
29
+ short-ton, sh-tn, s.t.: value*907.18474r
30
+ 分: value/2666.6666666667r
31
+ 匁: value/266.66666666667r
32
+ 百目: value/2.6666666666667r
33
+ 斤: value/1.6666666666667r
34
34
 
35
35
  Time:
36
- Planck time, tp: value*5.39121E-44.rationalize
37
- au: value*4.1341373345192E+16.rationalize
36
+ Planck-time, tp: value*5.39116e-44.rationalize
37
+ au: value*4.1341373345192e+16.rationalize
38
38
  min: value*60r
39
39
  hour: value*3600r
40
40
  day: value*86400r
41
41
  week: value*604800r
42
- month: value*2.628E+6
42
+ month: value*2.628e+6
43
43
  year: value*31535965.4396976r
44
44
  century: value*3153600000r
45
45
 
46
46
  Tempreture:
47
47
  K: value
48
- °C, degree, Celsius: "value-273.15r"
49
- °F, Fahrenheit: "value*1.8r-459.67r"
50
- °R, Rankine scale: "value*1.8r"
48
+ °C, degree, Celsius: value+272.15r
49
+ °F, Fahrenheit: value*0.5555555555555556r+255.37222222222223r
50
+ °R, Rankine scale: value/1.8r
51
51
 
52
52
  Area:
53
53
  are, a: value*100r
@@ -68,17 +68,17 @@ Volume:
68
68
  cl: value/100000r
69
69
  dl: value/10000r
70
70
  l: value/1000r
71
- 小さじ: value*5.0E-6.rationalize
72
- 大さじ: value*1.5E-5.rationalize
73
- cc: value*1.0E-6.rationalize
74
- cu-in, in3: value*1.6387064E-5.rationalize
71
+ 小さじ: value*5.0e-6.rationalize
72
+ 大さじ: value*1.5e-5.rationalize
73
+ cc: value*1.0e-6.rationalize
74
+ cu-in, in3: value*1.6387064e-5.rationalize
75
75
  cu-ft, ft3: value*0.028316846592r
76
76
  ac-ft: value*1233.4818375475r
77
77
  U.S.fluid-gallon, gallon, gal, U.S.gal, USG: value*0.003785411784r
78
78
  Imperial-gallon, imp.gal: value*0.00454609r
79
79
  Winchester-bushel, bushel, bsh., bu: value*0.03523907016688r
80
- us-fluid-once, fl-oz: value*2.84130625E-5.rationalize
81
- uk-fluid-ounce: value*2.95735295625E-5.rationalize
80
+ us-fluid-once, fl-oz: value*2.84130625e-5.rationalize
81
+ uk-fluid-ounce: value*2.95735295625e-5.rationalize
82
82
  us-gill, gi: value*0.00011829411825r
83
83
  uk-gill, uk-gi: value*0.0001420653125r
84
84
  us-pint, pt: value*0.000473176473r
@@ -87,25 +87,25 @@ Volume:
87
87
  uk-quart, uk-qt: value*0.0011365225r
88
88
  us-barrel, bbl: value*0.119240471196r
89
89
  uk-barrel, uk-bbl: value*0.16365924r
90
- 勺: value*1.8039068369647E-5.rationalize
90
+ 勺: value*1.8039068369647e-5.rationalize
91
91
  合: value*0.00018039068369647r
92
92
  升: value*0.0018039068369647r
93
93
  斗: value*0.018039068369647r
94
94
  石: value*0.18039068369647r
95
95
 
96
96
  Power:
97
- dyn: value*100000r
97
+ dyn: value/100000r
98
98
  N: value
99
- kgf: value*0.10197162129779r
100
- lbf: value*0.22480894309971r
101
- pdl: value*7.2330138512099r
99
+ kgf: value/0.10197162129779r
100
+ lbf: value/0.22480894309971r
101
+ pdl: value/7.2330138512099r
102
102
 
103
103
  Pressure, Stress:
104
- N/mm2: value*1E-06.rationalize
104
+ N/mm2: value*1e-06.rationalize
105
105
  bar: value*100000r
106
106
  atm: value*101325r
107
107
  at: value*98066.5r
108
- kgf/cm2: value/1.0197162129779E-05.rationalize
108
+ kgf/cm2: value/1.0197162129779e-05.rationalize
109
109
  mmH2O: value*9.80665r
110
110
  cmH2O: value*98.0665r
111
111
  mmH2O(3.98°C): value*9.80638r
@@ -130,13 +130,13 @@ Electric power:
130
130
 
131
131
  Energy, Work, Heat:
132
132
  erg: value/10000000r
133
- kWh: value/2.7777777777778E-07
133
+ kWh: value/2.7777777777778e-07
134
134
  calth: value/0.23900573613767r
135
- kcalth: value/2.3900573613767E-04.rationalize
135
+ kcalth: value/2.3900573613767e-04.rationalize
136
136
  calIT: value/0.2388458966275r
137
- kcalIT: value/2.388458966275E-04.rationalize
138
- eV: value/6.2415094796077E+18.rationalize
139
- BTU: value/9.4781712031332E-04.rationalize
137
+ kcalIT: value/2.388458966275e-04.rationalize
138
+ eV: value/6.2415094796077e+18.rationalize
139
+ BTU: value/9.4781712031332e-04.rationalize
140
140
  ftlbf: value/0.73756214945755r
141
141
  ftpdl: value/23.730360457056r
142
142
  atm: value/0.0098692326671601r
@@ -157,7 +157,7 @@ Acceleration:
157
157
  fps2: value/3.2808398950131r
158
158
  fpm/s: value/196.85039370079r
159
159
  fph/s: value/11811.023622047r
160
- mps2: value/6.2137119223733E-04.rationalize
160
+ mps2: value/6.2137119223733e-04.rationalize
161
161
  mpm/s: value/0.03728227153424r
162
162
  mph/s: value/2.2369362920544r
163
163
  kn/s: value/1.9438444924406r
@@ -172,3 +172,9 @@ Angle:
172
172
  mil: value/17.777777777778r
173
173
  /%: value/1.7455064928218r
174
174
  ‰: value/17.455064928218r
175
+
176
+ Viscosity:
177
+ poise: value*10
178
+ cpoise: value*1000
179
+ (kg/m)*h: value*3600
180
+ (lb/ft)*s: value*0.671969
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineer_calculator
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Azeroyear
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-10 00:00:00.000000000 Z
11
+ date: 2019-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler