math_wild 0.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 +7 -0
- data/lib/math_wild.rb +155 -0
- 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: []
|