# Some basic method stuff # This is a method def amethod(a, b) print a print b print "\n" end # call the regular method amethod("Hello","World") amethod(15,24) amethod("Hello",25) # Varargs method (array argument) def var_args_method(*args) # Let's use 'p' so we can see the actual array p args end list = ["Ross","Rosie","Jake","Dozer"] var_args_method("This","is") var_args_method("The","Same","Method") var_args_method(76) # inverse of the above allows us to pass in array elements var_args_method(list) # <-- One arg, the array var_args_method(*list) # <-- Three args # default param values def with_default(a = "default") print a, "\n" end with_default with_default "Non-default" # Blocks # # Any method can take a block, and use 'yield' to call it. # We can figure out whether there's a block with # block_given? but usually you just yield, since Ruby will # give a nice ArgumentError if no block was supplied. def yielder(it, num) num.times { yield it } end yielder("Hi!",2) { |param| puts param } # You can also explicitly declare a method to take a block. # You have to use this form if you want to do anything # beyond calling the block. # # Blocks are procs for this purpose. def blocky(&block) p block # don't call - inspect end