Map
- Map transfrom data from Arrays, Hashes & Ranges.
- Map returns a new array with the results. To to change the original array use
map!
Map basic
["a", "b", "c"].map { |string| string.upcase }
Map With Index
["a", "b", "c"].map.with_index { |char, index| [ch, index] }
Map With Index NOT Start from 0
["a", "b", "c"].map.with_index(1) { |char, index| [ch, index] }
Map Shorthand &:
["1", "2", "3"].map(&:to_i)
["cat", "dog", "fish"].map(&:class)
Map from Hash
hash = {
name: 'Matz',
language: 'Ruby'
}
hash.map { |key, value| [key, value.to_sym] }.to_h
Uniq
[1, 1, 1, 1, 2, 3].uniq # => [1, 2, 3]
Use uniq!
to change array.
nil? and friends
nil?
- Only return
true
only fornil
nil.nil? # => true
false.nil? # => false
0.nil? # => false
"".nil? # => false
empty?
[].empty? # => true
"".empty? # => true
" ".empty? # => false
blank?
nil.blank? # => true
false.blank? # => true
[].blank? # => true
{}.blank? # => true
"".blank? # => true
" ".blank? # => true
5.blank? # => false
0.blank? # => false
present?
Negatives of blank?
!blank? == present? #=> true
Misc
Random number
[*1..100].sample
Meta Programming Define Methods
class MyClass
1.upto(1000) do |n|
define_method :"method_#{n}" do
puts "I am method #{n}!"
end
end
end
####
def get_bearer_token
pattern = /^Bearer/
header = request.authorization
header = request.env['Authorization'] if header.blank?
header.gsub(pattern, '').strip if header && header.match(pattern)
end