Class: MathWild

Inherits:
Object
  • Object
show all
Defined in:
lib/math_wild.rb

Overview

collection of Aritmethic dunctions

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMathWild

class aux functions



6
7
8
# File 'lib/math_wild.rb', line 6

def initialize
  self
end

Class Method Details

.arr_number?(args) ⇒ Boolean

verify if an array only has numbers

Returns:

  • (Boolean)


23
24
25
26
27
28
# File 'lib/math_wild.rb', line 23

def arr_number?(args)
  args.each do |arg|
    return false unless number?(arg)
  end
  true
end

.dev(*args) ⇒ Object

to devide todo: improve it



103
104
105
106
107
108
109
110
# File 'lib/math_wild.rb', line 103

def dev(*args)
  result = args.first
  args[1..].each do |element|
    return 0 unless number?(element) && element != 0
    result /= element
  end
  result
end

.dev_arr(args) ⇒ Object



111
112
113
114
115
116
117
118
119
120
# File 'lib/math_wild.rb', line 111

def dev_arr(args)
  return 0 unless arr_number?(args)

  result = args.first
  args[1..].each do |element|
    return 0 unless number?(element) && element != 0
    result /= element
  end
  result
end

.force_sub(*args) ⇒ Object



141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/math_wild.rb', line 141

def force_sub(*args)
  if args.first.is_a?(Array)
    result = sub_arr(args.first)
  else
    result = to_num(args.first)
  end
  args[1..].each do |element|
    if element.is_a?(Array)
      element = sum_arr(element)
    else
      element = to_num(element)
      return 0 unless number?(element)
    end
    result -= element
  end
  result
end

.force_sum(*args) ⇒ Object

forced sum try to sum even with an string or array and ignore if is not possible to convert



127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/math_wild.rb', line 127

def force_sum(*args)
  result = 0
  args.each do |element|
    if element.is_a?(Array)
      element = sum_arr(element)
    else
      element = to_num(element)
      return 0 unless number?(element)
    end
    result += element
  end
  result
end

.mul(*args) ⇒ Object

to multiply



79
80
81
82
83
84
85
86
87
# File 'lib/math_wild.rb', line 79

def mul(*args)
  result = args.first
  args[1..].each do |element|
    return 0 unless number?(element)

    result *= element
  end
  result
end

.mul_arr(args) ⇒ Object



89
90
91
92
93
94
95
96
97
98
99
# File 'lib/math_wild.rb', line 89

def mul_arr(args)
  return 0 unless arr_number?(args)

  result = args.first
  args[1..].each do |element|
    return 0 unless number? element

    result *= element
  end
  result
end

.number?(arg) ⇒ Boolean

verify if an argument is a number return true if is a number or false if not

Returns:

  • (Boolean)


18
19
20
# File 'lib/math_wild.rb', line 18

def number?(arg)
  arg.is_a?(Integer) || arg.is_a?(Float)
end

.sub(*args) ⇒ Object

to subtract



56
57
58
59
60
61
62
63
64
# File 'lib/math_wild.rb', line 56

def sub(*args)
  result = args.first
  args[1..].each do |element|
    return 0 unless number?(element)

    result -= element
  end
  result
end

.sub_arr(args) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
# File 'lib/math_wild.rb', line 66

def sub_arr(args)
  return 0 unless arr_number?(args)

  result = args.first
  args[1..].each do |element|
    return 0 unless number? element

    result -= element
  end
  result
end

.sum(*args) ⇒ Object

sum simple sum function



32
33
34
35
36
37
38
39
40
# File 'lib/math_wild.rb', line 32

def sum(*args)
  result = 0
  args.each do |element|
    return 0 unless number?(element)

    result += element
  end
  result
end

.sum_arr(args) ⇒ Object

to sum a array of numbers



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/math_wild.rb', line 43

def sum_arr(args)
  return 0 unless arr_number?(args)

  result = 0
  args.each do |element|
    return 0 unless number? element

    result += element
  end
  result
end

.to_num(arg) ⇒ Object

covert string into a number



12
13
14
# File 'lib/math_wild.rb', line 12

def to_num(arg)
  return arg.to_f if arg.to_f.is_a?(Float)
end