#Define function to display "Hello world".
def disp()
puts "Hello World"
end
#Calling a function.
disp
Hello World
=> nil
#Function with parameters. # Function over-ridding is not allowed, it seems.
def disp(name)
puts "Hello #{name}"
end
#-------------------------
disp("Rohit")
Hello Rohit
=> nil
#-------------------------
disp "Rohit"
Hello Rohit
=> nil
#-------------------------
disp
ArgumentError: wrong number of arguments (0 for 1)
#Greeter class
class Greeter
def initialize(name="world")
@name=name
end
def say_hi
puts "Hi #{@name}"
end
def say_bye
puts "Bye #{@name}, Come back again."
end
end
#Creating Object of Greeter
greeter = Greeter.new()
=> #<Greeter:0x7f8aadecbcf8 @name="world">
greeter = Greeter.new("Rohit")
=> #<Greeter:0x7f8aadec3a80 @name="Rohit">
greeter.say_hi
Hi Rohit
=> nil
greeter.say_bye
Bye Rohit, Come back again.
=> nil
#Method list for Greeter Class including Ancestors methods too.
Greeter.instance_methods
=> ["inspect", "tap", "clone", "say_bye", "public_methods", "__send__", "object_id", "instance_variable_defined?", "equal?", "freeze", "extend", "send", "methods", "hash", "dup", "to_enum", "instance_variables", "eql?", "instance_eval", "id", "disp", "singleton_methods", "taint", "enum_for", "frozen?", "instance_variable_get", "instance_of?", "display", "to_a", "method", "type", "instance_exec", "protected_methods", "==", "===", "instance_variable_set", "kind_of?", "respond_to?", "to_s", "say_hi", "class", "__id__", "tainted?", "=~", "private_methods", "untaint", "nil?", "is_a?"]
#Methods only from Greeter class.
Greeter.instance_methods(false)
=> ["say_bye", "say_hi"]
#Ruby allows to update(add any member function) object at run time. this updates all instances.
class Greeter
attr_accessor : name #This adds setter(name=) and getter(name) function in Greeter class and all objects of it.
def newfunc
puts "Test"
end
end