math_wild 0.0.2

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/math_wild.rb +155 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 128223a5ca521d2dfcc53722f9dc0736021439889b883cae584ff211678cf9aa
4
+ data.tar.gz: d30667a1a074de4d3487bdaebd0626d145bd5178d0e6740b7e728800fc04a2c2
5
+ SHA512:
6
+ metadata.gz: 99d9b99c64e3f4c038d8c4cd989d78be13e79eef1c593c53bbcfa034dcc1ac2378e48c2d270c15be5b67a03f19be1e9ab89a962e5acdfef6dcfa496e7fe93bfc
7
+ data.tar.gz: 4f0a05fcdaada9a821f1c3340e09e89a8f18c37002910dc686bd857fceedb79d9b33dfe7ff230bb4335eccb6de137acc38994037034812184ce7a2355a1f52f2
data/lib/math_wild.rb ADDED
@@ -0,0 +1,155 @@
1
+ # !/usr/bin/env ruby
2
+
3
+ # collection of Aritmethic dunctions
4
+ class MathWild
5
+ # class aux functions
6
+ def initialize
7
+ self
8
+ end
9
+
10
+ class << self
11
+ # covert string into a number
12
+ def to_num(arg)
13
+ return arg.to_f if arg.to_f.is_a?(Float)
14
+ end
15
+
16
+ # verify if an argument is a number
17
+ # return true if is a number or false if not
18
+ def number?(arg)
19
+ arg.is_a?(Integer) || arg.is_a?(Float)
20
+ end
21
+
22
+ # verify if an array only has numbers
23
+ def arr_number?(args)
24
+ args.each do |arg|
25
+ return false unless number?(arg)
26
+ end
27
+ true
28
+ end
29
+
30
+ # sum
31
+ # simple sum function
32
+ def sum(*args)
33
+ result = 0
34
+ args.each do |element|
35
+ return 0 unless number?(element)
36
+
37
+ result += element
38
+ end
39
+ result
40
+ end
41
+
42
+ # to sum a array of numbers
43
+ def sum_arr(args)
44
+ return 0 unless arr_number?(args)
45
+
46
+ result = 0
47
+ args.each do |element|
48
+ return 0 unless number? element
49
+
50
+ result += element
51
+ end
52
+ result
53
+ end
54
+
55
+ #to subtract
56
+ def sub(*args)
57
+ result = args.first
58
+ args[1..].each do |element|
59
+ return 0 unless number?(element)
60
+
61
+ result -= element
62
+ end
63
+ result
64
+ end
65
+
66
+ def sub_arr(args)
67
+ return 0 unless arr_number?(args)
68
+
69
+ result = args.first
70
+ args[1..].each do |element|
71
+ return 0 unless number? element
72
+
73
+ result -= element
74
+ end
75
+ result
76
+ end
77
+
78
+ #to multiply
79
+ def mul(*args)
80
+ result = args.first
81
+ args[1..].each do |element|
82
+ return 0 unless number?(element)
83
+
84
+ result *= element
85
+ end
86
+ result
87
+ end
88
+
89
+ def mul_arr(args)
90
+ return 0 unless arr_number?(args)
91
+
92
+ result = args.first
93
+ args[1..].each do |element|
94
+ return 0 unless number? element
95
+
96
+ result *= element
97
+ end
98
+ result
99
+ end
100
+
101
+ # to devide
102
+ # todo: improve it
103
+ def dev(*args)
104
+ result = args.first
105
+ args[1..].each do |element|
106
+ return 0 unless number?(element) && element != 0
107
+ result /= element
108
+ end
109
+ result
110
+ end
111
+ def dev_arr(args)
112
+ return 0 unless arr_number?(args)
113
+
114
+ result = args.first
115
+ args[1..].each do |element|
116
+ return 0 unless number?(element) && element != 0
117
+ result /= element
118
+ end
119
+ result
120
+ end
121
+
122
+
123
+
124
+
125
+ # forced sum
126
+ # try to sum even with an string or array and ignore if is not possible to convert
127
+ def force_sum(*args)
128
+ result = 0
129
+ args.each do |element|
130
+ if element.is_a?(Array)
131
+ element = sum_arr(element)
132
+ else
133
+ element = to_num(element)
134
+ return 0 unless number?(element)
135
+ end
136
+ result += element
137
+ end
138
+ result
139
+ end
140
+
141
+ def force_sub(*args)
142
+ result = args.first
143
+ args[1..].each do |element|
144
+ if element.is_a?(Array)
145
+ element = sum_arr(element)
146
+ else
147
+ element = to_num(element)
148
+ return 0 unless number?(element)
149
+ end
150
+ result -= element
151
+ end
152
+ result
153
+ end
154
+ end
155
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: math_wild
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Wilder 'W1ldr' Ribeiro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-03-14 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A study collection of function to help simple math
14
+ email: dewillribeiro@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/math_wild.rb
20
+ homepage: https://rubygems.org/gems/**
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
+ rubygems_version: 3.3.25
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Math collection
43
+ test_files: []