Showing posts with label learn ruby. Show all posts
Showing posts with label learn ruby. Show all posts

Monday, May 30

Action Item - Ruby Community

As every rubyist agree with me though Ruby has very active community around still in India our numbers are not that great. The number of genuine Ruby/Ruby on Rails resources are very less and but there is a great demand.

What I had observed was that quite number of professionals around have directly started with Ruby on Rails and then get carried away with Rich Internet Applications implementations and gets busy in learning all new new technologies giving less time to spend in the core of Ruby itself.

I decided to contribute towards this by teaching ruby. Things fell in place so perfectly there is this graduate also have sun certfication to his credit. He approached me for mentorship and happily agreed. That's how I started my very first action item of spreading ruby and helping the community to grow

HAPPY RUBY CODING :)

Thursday, January 10

Ruby Classes - 1

Ever since the languages have come up with approach of problem centric not just the system centric, we have been hearing about these Objects. Since our daily life is around, with objects this would ease our understanding the problems, solving the problems.
As we know Ruby is pure object oriented language (no datatypes, all are treated as objects), and the Object Oriented paradigm very well fits with Ruby too!

* Abstraction
* Encapsulation
* Inheritance
* Polymorphism

So how the classes come into picture ?
Well a category(group) of objects like (similar) is called a class
Classes hold the properties, characteristics and the actions that are done by objects. This acts as constructor to create more such objects. And we all know that the objects in the real world communicate with each other, similarly here we have the actions/methods doing the job of communication across objects of different classes.

In ruby the class will look like this:

Download Examples on Classes
Example 1: Classes.

class ClassOne

def do_something

puts ("I am displayed")

end


end



c1 = ClassOne.new
c1.do_something


# Observe:
# --> The class starts with "class" (all lower case) keyword and concludes with "end" keyword.
# --> The class name starts with Capital/Multi-word written using CamelCase (ClassOne)
# --> The (.new) is the method that would create multiple copies of objects belongs to a class.
# --> Once the object is created(c1), it gain access to all the methods(dosomething) defined within the class.
# --> The method name starts with lowercase (just convention) and multi-word separated with 'underscore'.

Download Examples on Classes
Example 2: Shows passing parameters to methods.

# Class is like a blueprint from which individual objects are constructed.
# Methods/Definitions/Actions are the means of communication between the objects.

class ClassOne

def do_something(doing)
puts ("I am #{doing}")
end

def someone

puts "I am not public but private"
end

end


c1 = ClassOne.new
c1.do_something("singing")
c1.do_something("listening")
c1.someone

# Observe:
# Passing parameters across objects to actions
# --> The class starts with "class" (all lower case) keyword and "end" is the end of the class.
# --> The class name starts with Capital/Multi-word written using camelcase
# --> The (.new) is one of the methods that would create multiple copies of objects belongs to a class.
# --> Once the object is created(c1), it gain access to all the methods(dosomething) defined within the class.
# --> The method name starts with lowercase (just convention) and multi-word separated with 'underscore'.

Download Examples on Classes

Tuesday, December 18

Ruby on Rails simple examples & String Class

After the previous post, hope you successfully installed the ruby on to your machine and ready to speed up our tutorials.
Now let us see a simple math example, factorial function. How do we write a program that would calculate the factorial value of integer that we would pass.
Basically factorial is:
n! = 1                (when n==0)
   = n * (n-1)!       (otherwise)
  • The simple logic that we are aware is, factorial is nothing but a recursive function call.
It means we write a function and will be calling the same function within that. So this would look something like this:



If you notice here there are lot of points to carry with us,
  • You may notice the repeated occurrence of end.
  • You may also notice the lack of a return statement.
  • It is not needed because a ruby function returns the last thing that was evaluated in it. Though use of a return statement is permissible but it is not necessary here.
  • ARGV is an array which contains the command line arguments, and to_i converts a character string to an integer.
Experiments:
  1. What happens if I pass string as argument instead of integer?
  2. At the line “12”, replace the double quote with single quote and see what happens?
Download or View on Scribd

Ruby String Class:

A String object holds and manipulates an arbitrary sequence of bytes, typically representing characters. String objects may be created using String::new or as literals.

Because of aliasing issues, users of strings should be aware of the methods that modify the contents of a String object.

· Methods with names ending in ``!’’ modify their receiver.

· Methods without a ``!’’ return a new String.

Ruby deals with strings as well as numerical data. A string may be double-quoted ("...") or single-quoted ('...').

· A double-quoted string allows character escapes by a leading backslash, and the evaluation of embedded expressions using #{}.

· A single-quoted string does not do this interpreting; what you see is what you get.

Examples:

If you had done the above mentioned experiments, it is easy to understand the above two points. The difference between the double and single quotes around a string. There are plenty of methods that ruby offers, they come very handy!

capitalize:

str.capitalize => new_str

This method turns the first letter of the string to upper case.

"ruby".capitalize    #=> "Ruby"

Methods with names ending in ``!’’ modify their receiver.

capitalize!:

str.capitalize! => str or nil
Modifies str by converting the first character to uppercase and the remainder to lowercase. Returns nil if no changes are made.

   a = "hello"
   a.capitalize!   #=> "Hello"
   a               #=> "Hello"
   a.capitalize!   #=> nil
Find more examples and other methods ruby supports.
Download or View on Scribd

Tuesday, December 11

Ruby on Rails Installing Ruby

Though you continue to work/experiment more on the online ruby editor, today we see how we would install the ruby on windows OS.
Recollect "Ruby is portable, which means can be installed on all OS's possible"

Ruby Installer for Windows. Download the executable ruby186-25.exe and double-click this file to install Ruby on your PC. (Accept all the defaults.)
Once you have installed your Ruby software, the System Environment Variable path is already set to point to the bin folder of Ruby. The installation also includes the First Edition of Programming Ruby book and the SciTE editor.

Just recollect what we had done and what's the Ruby Environment looks like.

Assuming that you installed Ruby in the folder c:/ruby, then the installation creates a number of sub-folders. See the list below.

c:/ruby/bin : Here the Ruby executables (including ruby and irb) have been installed.
c:/ruby/src : Here you get the Ruby source code.
c:/ruby/lib/ruby/gems : Here are the Ruby-Gems.
c:/ruby/lib/ruby/1.8 : Here you'll find program files written in Ruby. These files provide standard library facilities, which you can require from your own programs if you need the functionality they provide.
c:/ruby/lib/ruby/1.8/i386-mswin32 : Here you find architecture-specific extensions and libraries. These files are C-language extensions to Ruby; or, more precisely, they are the binary, runtime-loadable files generated from Ruby's C-language extension code, compiled into binary form as part of the Ruby installation process.
c:/ruby/lib/ruby/site_ruby : Here you store third-party extensions and libraries. This include your own code or some third party.
c:/ruby/samples/RubySrc-1.8.6/sample : Well, here you will find some sample Ruby programs.

From now we can also execute ruby snippets on the locally installed SciTE editor.
Open the Editor: start/Programs/Ruby-186-25/SciTE.
Press F8 to open an output window.

Create a folder named, say. rubyexamples on your C:\ and will keep all our programs in this folder. Let us repeat the our first program, that we had done yesterday online. That is

puts "Hello World!"

Now save the file as "hello.rb" under c:\rubyexamples folder. Note all ruby source files have the .rb extension.

Pressing on F5 would execute the program and outputs the string "Hello World!" on right side window.

  1. # hello.rb
  2. puts 'Hello'

Alternatively you can also type command "ruby hello.rb" to execute the hello.rb file.

Having installed the ruby on local system now repeat the yesterdays examples and practice more for better understanding.

Download the pdf version of Installing Ruby post.


Monday, December 10

Ruby on Rails Learning through examples

What ruby is used for?
Let us recollect the statement:
Ruby is "an interpreted scripting language for quick and easy object-oriented programming".
Ruby is used for many kind of applications be it writing automation scripts and run on your local pc's, or developing automation tools, or Website, or Blogs, Web Application or web based products and the list goes on...

We here pick up basics of Ruby just enough to get going with Rails and start developing simple websites and web applications.
All the things that we had said about ruby in earlier post What is Ruby? will be discussed in coming posts.
Learning through Examples:

Before even going for installing the ruby in your desktop, let us experiment on ruby with small examples and work/execute them here online.

This is our play ground:
This is called interactive ruby shell and we find ">>" similar to command/shell prompt. Now let's start with famous example of printing out "Hello World!" statement.
  1. type puts "Hello World!" >> puts "Hello World!"
  2. then click "Enter" button
  3. Now you would find the expected returned
  • >> puts "Hello World!"
  • Hello World!
    => nil
So puts is the ruby way of printing the things to console/prompt. The first line means to print the string within the quotes(i.e. Hello World!). Your would also find "=> nil" displayed in the next line of the Hello World! statement, puts always returns nil, which is Ruby’s absolutely-positively-nothing value.

Going on to the next example:
  • Ruby has simple syntax.
  • Ruby is dynamically typed.
  • Ruby needs no variable declarations.
  • Ruby operators are also methods.
Now I want to do simple math. Based on the above points,
to add two integers just type : 4+2
to subtract two integers just type : 4-2
to multiply two integers just type : 4*2
to divide two integers just type : 4/2
You can check out with other types also. Need not be of same type, since ruby is dynamic language at the run time they would be evaluated.
for example you type 2.0+3 and see for yourself.

Coming on to the variable declaration, ruby does not require the variable declarations. Let us the see this point also:
you type
>> a=5
=>5
>>b=2.0
=>2.0
>>c=a+b
=>7.0
As you see we have not declared the variables a,b,c and what type they hold. All these variables are evaluated at the run time and treated accordingly.
Ruby treat the operators(+,-,*,/,%...) as just like methods, which is conceptually derived from Smalltalk.

Download the pdf version of Learning Through Examples.
The pdf includes:
  • Useful links
  • Duck typing explained with example.
  • Examples with appropriate comments and explanation.
  • Ruby resources links.

Friday, December 7

Ruby on Rails - What is Ruby?

So, I am not just going to stop by providing the Ruby on Rails course structure.
I am here to start sharing the concepts what I understood about Ruby on Rails.
A gentle disclaimer, Nobody is perfect and in my attempt to become close to perfection I relied on world wide web to learn better and to understand the concepts clearly.

So let's start today with Introduction topic and discuss more on What is Ruby? If you are in hurry you can download What is Ruby?


Initially Some History about Ruby:

The language was created by Yukihiro "Matz" Matsumoto, who started working on Ruby on February 24, 1993, and released it to the public in 1995. "Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to Perl's name.

Some useful links that come handy when you are going through the course material:

Scripting Language : http://en.wikipedia.org/wiki/Scripting_language

Compiled Language : http://en.wikipedia.org/wiki/Compiled_language

Compilers : http://en.wikipedia.org/wiki/Compiler

Interpreters : http://en.wikipedia.org/wiki/Interpreter_%28computing%29

Object Oriented Programming : http://en.wikipedia.org/wiki/Object-oriented

Jargon to watch out:
Ruby, Interpreters, Compilers, Scripting Language, Compiled Language, Mixins, Operating System, Unix, Linux, Modules, Closures, Threads, Exceptions, Garbage Collectors,

Download the detailed Ruby on Rails Course contents.

Reach me @ tosumanthkrishnaATgmailDOTcom for more discussions.

Ruby is "an interpreted scripting language for quick and easy object-oriented programming".

Don’t be alarmed. We will take one by one:

Interpreted Scripting Language:

  • Ability to make operating system calls directly
  • Powerful string operations and regular expressions
  • Immediate feedback during development
  • Ruby programs can be executed from source code.(means to say need not be compiled)
Object Oriented Programming:
  • Everything is an object
  • Classes, inheritance, methods, etc.
  • Singleton methods
  • Mixin by module
  • Iterators and closures

Portable:

  • Runs on many different operating systems.
  • Windows 95 through XP, Linux, UNIX...

Simple and Fast:

  • Variable declarations are unnecessary (remember: everything is an object... including primitives)
  • Variables are not typed
  • Syntax is simple and consistent (like you are expressing something)
  • Automatic memory allocation and garbage collection

More...

  • Exception processing model
  • Dynamic loading
  • Threads


Download the detailed Ruby on Rails Course contents.

Download What is Ruby?

Reach me @ tosumanthkrishnaATgmailDOTcom for more discussions/tips/suggestions.