# irb def my_method(variable, *array, **json) return variable, array, json end my_method(1) # => [1, [], {}]



my_method(1, 2, 3, 4)

# => [1, [2, 3, 4], {}]



my_method(1, 2, 3, 4, a: 5, b: 6)

# => [1, [2, 3, 4], {:a=>5, :b=>6}]





# irb stuff = 1 stuff_arr = [1, 2, 3] [*stuff].each { |s| s } [*stuff_arr].each { |s| s } # Careful!



a = { :name => "DK", :age => 30 }

[a] # => [{:name => "DK", :age => 30}]

[*a] # => [[:name, "DK"], [:age, 30]]





# irb a # => nil



a ||= 1

# => a = 1



a = a || b # incorrect

a || a = b # correct



string = nil

string &&= string + "suffix"

# string is still nil



string = 'some value '

string &&= string + "suffix"

# => some value suffix





# irb money = 42.5 "%.2f" % money # => "42.50"



"%0.2f" % Math::PI # => "3.14"





# irb #Dependency Ruby 2.3.0 current_user.try(:full_name) current_user&.full_name





# irb def is_odd(x) if x % 2 == 0 return false else return true end end def is_odd(x) x % 2 == 0 ? false : true end def is_odd(x) x % 2 != 0 end





# irb strs = ['foo', 'bar', 'baz'] caps = strs.map { |str| str.upcase } caps = strs.map(&:upcase) cars = %w[beetle volt camry] => ["beetle", "volt", "camry"] cars.sort_by { |car| car.size } => ["volt", "camry", "beetle"] cars.sort_by(&:size) => ["volt", "camry", "beetle"]





# irb food = %w( tacos milk eggs ) food.map(&:object_id) # [x1, y1, z1]

food.clone.map(&:object_id) # [x1, y1, z1]



# Using the Marshal class, which is normally used for serialization, you can create a ‘deep copy’ of an object.



def deep_copy(obj)

Marshal.load(Marshal.dump(obj))

end



deep_copy(food).map(&:object_id) # [x2, y2, z2]





# irb Array.new(10) # => [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]

Array.new(10) { rand 100 }

# => [77, 34, 79, 43, 70, 86, 43, 96, 18, 3]





# irb Impression.select(:id, :impressionable_type, :impressionable_id).last(10) Impression Load (0.3ms) SELECT `impressions`.`id`, `impressions`.`impressionable_type`, `impressions`.`impressionable_id` FROM `impressions` ORDER BY `impressions`.`id` DESC LIMIT 10 # => [#, #, #, , #, #, , #, #, ]



Impression.select(:id, :impressionable_type, :impressionable_id).last(10);

# => Impression Load (0.3ms) SELECT `impressions`.`id`, `impressions`.`impressionable_type`, `impressions`.`impressionable_id` FROM `impressions` ORDER BY `impressions`.`id` DESC LIMIT 10



Impression.select(:id, :impressionable_type, :impressionable_id).last(10);

# => Impression Load (0.3ms) SELECT `impressions`.`id`, `impressions`.`impressionable_type`, `impressions`.`impressionable_id` FROM `impressions` ORDER BY `impressions`.`id` DESC LIMIT 10





# irb items = { :tacos => 12, :eggs => 3 } # => items = {:tacos=>12, :oranges=>3}



items.fetch(:tacos)

# => 12



items.fetch(:bananas) { |key| "We don't carry #{key}!"}

# => We don't carry bananas!



items.fetch(:eggs)

# => 3





# irb 100.to_s(2) # => "1100100"



"1100100".to_i(2)

# => 100