Module: CommonLib::Array
- Defined in:
- lib/common_lib/ruby/array.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#arrange(new_array_index = []) ⇒ Object
[‘a’,‘b’,‘c’].arrange() => [‘c’,‘a’,‘b’].
-
#average ⇒ Object
Return the average digitized value of the array.
-
#capitalize ⇒ Object
Return capitlized versions of each item in the array.
-
#capitalize! ⇒ Object
Capitalize each item in the array and return it.
-
#downcase ⇒ Object
Return downcased versions of each item in the array.
-
#drop_blanks! ⇒ Object
Remove all “blank?” items for the array.
- #false? ⇒ Boolean
-
#first_index(value = nil, &block) ⇒ Object
return the first index of the array with a value matching that given.
-
#median ⇒ Object
Return the median digitized value of the array.
-
#numericize ⇒ Object
(also: #digitize)
Convert all items in the array to_f.
-
#swap_indexes(i, j) ⇒ Object
Return a copy of the array with values at the given indexes swapped.
-
#swap_indexes!(i, j) ⇒ Object
Swap the values of an array at the given indexes and return it.
- #to_boolean ⇒ Object (also: #to_b)
-
#true? ⇒ Boolean
[].true? => false [true].true? => true [true,false].true? => true [false].true? => false.
-
#true_xor_false? ⇒ Boolean
I need to work on this one …
Instance Method Details
#arrange(new_array_index = []) ⇒ Object
- ‘a’,‘b’,‘c’].arrange() => [‘c’,‘a’,‘b’
4 5 6 7 8 9 10 |
# File 'lib/common_lib/ruby/array.rb', line 4 def arrange(new_array_index=[]) new_array = self.dup new_array_index.each_with_index do |index,new_index| new_array[new_index] = self[index] end new_array end |
#average ⇒ Object
Return the average digitized value of the array
36 37 38 39 40 41 42 43 |
# File 'lib/common_lib/ruby/array.rb', line 36 def average if self.length > 0 # sum defined in activesupport/lib/active_support/core_ext/enumerable.rb self.digitize.sum.to_f / self.length else nil end end |
#capitalize ⇒ Object
Return capitlized versions of each item in the array
18 19 20 |
# File 'lib/common_lib/ruby/array.rb', line 18 def capitalize collect(&:capitalize) end |
#capitalize! ⇒ Object
Capitalize each item in the array and return it
23 24 25 26 27 28 |
# File 'lib/common_lib/ruby/array.rb', line 23 def capitalize! each_with_index do |element,index| self[index] = element.capitalize end self end |
#downcase ⇒ Object
Return downcased versions of each item in the array
31 32 33 |
# File 'lib/common_lib/ruby/array.rb', line 31 def downcase collect(&:downcase) end |
#drop_blanks! ⇒ Object
Remove all “blank?” items for the array
13 14 15 |
# File 'lib/common_lib/ruby/array.rb', line 13 def drop_blanks! delete_if{|a|a.blank?} end |
#false? ⇒ Boolean
111 112 113 |
# File 'lib/common_lib/ruby/array.rb', line 111 def false? !empty? && any?{|v| v.false? } end |
#first_index(value = nil, &block) ⇒ Object
return the first index of the array with a value matching that given
85 86 87 88 89 90 91 |
# File 'lib/common_lib/ruby/array.rb', line 85 def first_index(value = nil, &block) using_block = block_given? each_with_index do |element,index| return index if (using_block && yield(element)) || (value == element) end return nil end |
#median ⇒ Object
Return the median digitized value of the array
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/common_lib/ruby/array.rb', line 46 def median if self.length > 0 sorted_values = self.digitize.sort length = sorted_values.length if length.odd? sorted_values[length/2] else ( sorted_values[length/2] + sorted_values[-1+length/2] ).to_f / 2 end else nil end end |
#numericize ⇒ Object Also known as: digitize
Convert all items in the array to_f
76 77 78 |
# File 'lib/common_lib/ruby/array.rb', line 76 def numericize collect(&:to_f) end |
#swap_indexes(i, j) ⇒ Object
Return a copy of the array with values at the given indexes swapped.
62 63 64 65 66 |
# File 'lib/common_lib/ruby/array.rb', line 62 def swap_indexes(i,j) new_array = self.dup new_array[i],new_array[j] = self[j],self[i] new_array end |
#swap_indexes!(i, j) ⇒ Object
Swap the values of an array at the given indexes and return it
70 71 72 73 |
# File 'lib/common_lib/ruby/array.rb', line 70 def swap_indexes!(i,j) self[i],self[j] = self[j],self[i] self end |
#to_boolean ⇒ Object Also known as: to_b
93 94 95 |
# File 'lib/common_lib/ruby/array.rb', line 93 def to_boolean !empty? && all?{|v| v.to_boolean } end |
#true? ⇒ Boolean
[].true?
> false
[true].true?
> true
[true,false].true?
> true
[false].true?
> false
107 108 109 |
# File 'lib/common_lib/ruby/array.rb', line 107 def true? !empty? && any?{|v| v.true? } end |
#true_xor_false? ⇒ Boolean
I need to work on this one …
116 117 118 119 120 121 122 123 124 125 |
# File 'lib/common_lib/ruby/array.rb', line 116 def true_xor_false? # self.include?('true') ^ self.include?('false') ^ # self.include?(true) ^ self.include?(false) contains_true = contains_false = false each {|v| # ( v.to_boolean ) ? contains_true = true : contains_false = true eval("contains_#{v.to_boolean}=true") } contains_true ^ contains_false end |