Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Some snippets of Ruby on Knowledge Sharing Session -Ruby at Mangoes Mobile
=begin
author Eftakhairul Islam <eftakhairul@gmail.com>
website http://eftakhairul.com
=end
#My First Program at Ruby.
puts 'Hello World'
puts ("I'm here")
#Deffirent between puts and print
puts ('Here I am again') #Instant flush, $stdout right away And newline automatically.
print ("Here I am again") #Buffering the input,
#Exmaple
5.times { puts "Hello"; sleep 2 }
5.times { print "Hello "; sleep 2 }
STDOUT.sync = true #You can use STDOUT.flush as well.
5.times { print "hello "; sleep 2 }
1.upto(10) {|i| print i }
('a'..'f').each {|i| print i }
#Common Mathematical terms
=begin
+ plus
- minus
/ slash
* asterisk
% percent
< less-than
> greater-than
<= less-than-equal
>= greater-than-equal
=end
#Exmaple
puts "Is it greater?", 5 > -2
puts 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
puts 42.even?
#Variables
cars = 100
puts "There are #{cars} cars available."
language = 'Ruby'
my_height = 74
my_weight = 180 # lbs
puts "Let's talk about %s." % language
puts "He's %d inches tall." % my_height
puts "If I add %d, %d then I will get %d." % [
my_height, my_weight, my_height + my_weight]
puts "-" * 50
#Some interesting string operations
greeting = "Hello Everyone!"
greeting.delete('l') #Output: Heo Everyone!
t2 = "sample,data,from,a,CSV"
t2.split(",") #
hello".gsub("ll","y yo") #output: hey yoo
#Array and Hashes
data = ['cat', 'dog', 'ant', 'bee']
data.push('bird')
puts data[0]
#print the whole array
puts data.inspect
#Hash This is also same to array...In php and ruby array works as hash and array both. Basically, they are diffeenrt in other language
#Same as above
data = %w{ ant bee cat dog }
data = {
1 => 'dog',
2 => 'cat',
3 => 'bee',
4 => 'ant'
}
puts data.inspect
restaurantMenu = { "Burger" => 3, "Pizza" => 10, "Coffee" => 2 }
#print key and value
restaurantMenu.each do | item, price |
puts "#{item}: $#{price}"
end
#return all keys
puts restaurantMenu.keys
#another way to create hash
my_hash = Hash.new
my_hash['burger'] = 3
print my_hash['burger'] #output will be 3
#Loop
#normal while
i = 0;
num = 5;
while i < num do
puts("Inside the loop i = #{i}" );
i +=1;
end
#do while
i = 0;
num = 5;
begin
puts("Inside the loop i = #{i}" );
i +=1;
end while i < num
#for
for i in 1..5
puts "Value of local variable is #{i}"
end
#each
(0..5).each do |i|
puts "Value of local variable is #{i}"
end
(0..5).each {|i| puts "Value of local variable is #{i}"}
family = { "Homer" => "dad",
"Marge" => "mom",
"Lisa" => "sister",
"Maggie" => "sister",
"Abe" => "grandpa",
"Santa's Little Helper" => "dog"
}
family.each { |x, y| puts "#{x}: #{y}" } #it prints both key and value
until counter == 0
puts "The counter is #{counter}"
counter = counter -
end
#Regular Expression
line = 'Perl'
if line =~ /Perl|Python/ #Basically regular expression by writing a pattern between slash characters (/pattern/)
puts "Scripting language mentioned: #{line}"
end
#Introduction to Function
def printCurrentTime()
time = Time.new
return time.ctime
end
def printName( name )
puts "My name is: #{name.capitalize}."
end
def printAllNames( *args )
arg1, arg2 = args
puts "Name-1: #{arg1}, Name-2: #{arg2}"
end
puts printCurrentTime()
printName( "Eliza" )
printAllNames( "Tahins", "Eftakhairul" )
#OOP
class BookInStock
@isbn
@price
@@count = 0
attr_reader :price
def initialize(isbn, price)
@isbn = isbn
@price = Float(price)
@@count += 1
end
def price=(newPrice)
@price = newPrice
end
def isbn
@isbn
end
private
def printName
puts 'My Name is Ruby lolz!!! Stupid I am not human'
end
public
def to_s
"ISBN: #{@isbn}, price: #{@price}"
end
def printAll
printName
end
def self.printCount()
puts "Box count is : #@@count"
end
end
book = BookInStock.new('BN123', 12)
book.price = 10
puts book.price
puts book.to_s
puts book.printAll
book2 = BookInStock.new('BC100', 12)
book3 = BookInStock.new('BD200', 12)
BookInStock.printCount()
class Box
BOX_COMPANY = "BD Box Ltd."
def initialize(w,h)
@width, @height = w, h
end
def getArea
@width * @height
end
end
# define a subclass
class BigBox < Box
# add a new instance method
def printArea
@area = @width * @height
puts "Big box area is : #@area"
end
end
# create an object
box = BigBox.new(10, 20)
# print the area
box.printArea()
puts "Company Name: #{BigBox::BOX_COMPANY}"
#Diff btw @@ and @
@@ -> class variable; It's available through all classess and extended class. it's kind of java's static variable
@ -> instance variable; It's only available class's lexical scope.
#Taking input from commandline
STDOUT.flush
print "How old are you? "
age = gets.chomp()
puts "So, you're #{age} old."
first, second, third = ARGV
puts "The script is called: #{$0}"
puts "Your first variable is: #{first}"
puts "Your second variable is: #{second}"
puts "Your third variable is: #{third}"
#Importing library
require 'open-uri'
open("http://eftakhairul.com") do |f|
f.each_line {|line| p line}
end
#Open, read AND write file
if File.exists?('hello.txt')
txt = File.open('hello.txt')
puts txt.read()
else
puts 'File not found.'
end
#More details @ http://ruby-doc.org/core-1.9.3/File.html
#Debuging function
abort("Message goes here")
#OR
puts "Message goes here"
exit
#Another best way to debug
raise Object.inspect
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.