Skip to content

Instantly share code, notes, and snippets.

@tuannvm
Last active July 18, 2017 09:20
Show Gist options
  • Save tuannvm/1ab99640fc91f4ad8514d43617ec65e5 to your computer and use it in GitHub Desktop.
Save tuannvm/1ab99640fc91f4ad8514d43617ec65e5 to your computer and use it in GitHub Desktop.
#ruby #cheatsheet

Introduction

Best practice link

puts "abc"

irb(main):001:0> 1.class
=> Fixnum

irb(main):002:0> 1.nil?
=> false

irb(main):004:0> 1.methods
=> [:%, :&, :*, :+, :-, :/, :<, :>, :^, :|, :~, :-@, :**, :<=>, :<<, :>>, :<=, :>=, :==, :===

## interpolation
irb(main):005:0> name = "Tuan"
=> "Tuan"
irb(main):006:0> puts "Hello #{name}"
Hello Tuan
=> nil

## input (string type by default)
irb(main):007:0> first_name = gets.chomp 
hi
=> "hi"
irb(main):009:0> puts "my first name #{first_name}"
my first name hi
=> nil

irb(main):011:0> first_name.reverse
=> "ih"

## convert to specific type
10.to_i
10.to_f

## random number
rand
rand(10)

10.odd?
10.even?

## loop
20.times {puts 10}
  • Convert string math operator
def execution(a, b, c)
  a.to_i.send(c, b.to_i)
end

puts (execution 1, 2, '+')

## array
a = [1,2,3,4]]
a.included?(1)
a.empty?
a.shuffle
a.pop

### apply directly
a.reverse!

### build random array
(0..25).to_a.shuffle! 

### add to array

#### end of array
a << 25 || a.push(25)

#### beginning
a.unshift(24)

### Display uniq
a.uniq

Loop

a.each{|i| puts i}

for i in a
  puts i
end

a.each do |i|
  puts i
end

Select

irb(main):013:0> a.select {|i| i.odd?}
=> [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]
irb(main):014:0> a
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
irb(main):015:0> a.select {|i| i.odd?}
=> [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]

Join

irb(main):016:0> a
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
irb(main):017:0> a.join (" ")
=> "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30"

Hash

my_hash = {"name" => "123"}
=> {"name"=>"123"}
irb(main):006:0> my_hash["name"]
=> "123"

irb(main):008:0> my_new_hash = {name: 123}
=> {:name=>123}
irb(main):009:0> my_new_hash[:name]
=> 123

# delete 
irb(main):012:0* my_new_hash.delete(:name)
=> 123

# add new
irb(main):016:0> my_new_hash[:age] = 100
=> 100

irb(main):018:0> my_new_hash.each {|k,v| puts v}
100
=> {:age=>100}
irb(main):019:0> my_new_hash.each {|k,v| my_new_hash.delete(k) if v < 200}
=> {}

my_new_hash.select {|k,v| v.odd?}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment