I Love Ruby
Free

I Love Ruby

By Karthikeyan A K
Free
Book Description

Ruby is an easy to learn programming language, it was invented by a guy named Matz in Japan. Ruby is a free software and can be used by any one for zero cost. Ruby's popularity was initially confined to Japan, later it slowly trickled out to rest of the world. Things changed with the emergence of Ruby on Rails which is a popular web-development framework written with Ruby.



I was thrilled when I started to program in Ruby. One of my first application was a student ranking software for my mom who was a teacher. I was able to write the console based application in just 32 lines. This opened my eyes and made me realize the power of Ruby. The language was simple, easy to learn and nearly perfect. Currently I am an professional Ruby on Rails programmer working in TechArtUs.



This book is written for GNU/Linux (Debian distro) users, thats because I think GNU/Linux will conquer desktops of programmers in near future. Almost all who have Debian GNU/Linux based distro should feel at home while trying to learn Ruby using this book. If you are using other operating systems like Solaris, OSX or Windows please contact your Operating System help channels to learn how to install or get started with Ruby.

Table of Contents
  • I Love Ruby
  • Copyright
  • Getting this book
    • Contacting the author
  • Installing Ruby
    • Installing Ruby on Debian flavor GNU/Linux
    • Installing IDE
  • Online Resources
    • Ruby Website
    • Twitter
  • Getting Started
    • Interactive Ruby
    • Doing some Math
      • Space doesn't matter
      • Decimals
    • Variables
      • Naming Convention
      • The underscore – a special variable
    • Constants
    • Strings
      • String Functions
      • Escape sequence
    • Using Text Editor
    • Printing Something
    • Getting Input
    • Comments
  • Comparison and Logic
    • Logical Operators
      • true != “true”
    • ===
    • if
    • if else
    • elsif
    • if then else
    • unless
    • unless else
    • case when
    • case when, checking the class type
    • case when and ranges
    • case when and regular expressions
    • case when and lambdas
    • case when and matcher classes
    • ? :
    • Assigning logic statement to variables
  • Loops
    • downto
    • times
    • upto
    • step
    • while
    • until
    • break
    • next
    • redo
    • loop
  • Arrays
    • More on Array
    • Array dig
    • Set operations
    • Empty array is true
    • Compacting Arrays
    • Transforming array values
      • Collect
      • keep_if
      • delete_if
    • Read the ruby doc
  • Hashes and Symbols
    • Default values in Hash
    • Looping hashes
    • More way of hash creation
    • Using symbols
    • String, frozen string & symbol, their memory foot print
    • Compacting Hashes
    • Transforming hash values
    • Read the rubydoc
  • Ranges
    • Ranges used in case .. when
    • Checking Intervals
    • Using triple dots …
  • Functions
    • Argument Passing
    • Default Argument
    • Passing array to a function
    • Returning Values
    • Keyword arguments
    • Recursive function
    • Variable number of arguments
    • Hashes to functions
  • Variable Scope
    • Global Variables
  • Classes & Objects
    • Creating a Square
    • Functions in Class
    • Initializers or Constructors
    • Unexposed instance variables
    • Private Methods
    • Class variables and methods
    • Inheritance
    • Overriding Methods
    • The super function
    • Private, public and protected in inheritance
    • Extending class
    • Reflection
    • Encapsulation
    • Polymorphism
    • Class Constants
    • Function alias
  • Safe Navigation
  • Breaking large programs
  • Struct and OpenStruct
  • Rdoc
    • Reading Ruby Documentation
    • Creating Documentation
  • Ruby Style Guides
  • Modules and Mixins
    • Calling functions without include
    • Classes in modules
    • Mixins
  • Shebang
  • Date and Time
    • Days between two days
    • How many days have you lived?
  • Files
    • Storing output into files
    • Taking file as input
    • File copy – a kind of
    • Displaying a file
    • Reading file line by line
    • Open and new – the difference
    • Defining our own line endings
    • Reading byte by byte
    • Reading single character at a time
    • Renaming files
    • Finding out position in a file
    • Writing into files
    • Appending content into files
    • Storing objects into files
      • Pstore
      • YAML
  • Proc, Lambdas and Blocks
    • Passing parameters
    • Passing Proc to methods
    • Returning Proc from function
    • Proc and Arrays
    • Lambda
    • Passing Argument to Lambda
    • Proc and Lambdas with Functions
    • The second difference
    • Lambda and Arrays
    • Blocks and Functions
  • Multi Threading
    • Scope of thread variables
    • Thread Exclusion
    • Deadlocks
    • Creating multiple threads
    • Thread Exception
    • Thread Class Methods
    • Thread Instance Methods
  • Exception Handling
    • Exception and Threads
    • Raising Exceptions
  • Regular Expressions
    • Creating an empty regexp
    • Detecting Patterns
    • Things to remember
    • The dot
    • Character classes
    • Scanning
    • Captures
    • MatchData class
    • Anchors and Assertions
      • Anchors
      • Assertions
    • Ignoring Cases
    • Ignore Spaces
    • Dynamic Regexp
  • Gems
    • Searching a gem
    • Installing gem
    • Viewing Documentation
    • Using gem
    • The Gemfile
    • Creating a gem
    • Uninstalling a Gem
  • Network Programming
  • Meta Programming
    • Send
    • Method Missing
    • Define Method
    • Class Eval
    • Instance Eval
  • Benchmark
  • Test Driven Development
  • Underscore
  • An important Math Discovery
    No review for this book yet, be the first to review.
      No comment for this book yet, be the first to comment
      You May Also Like
      Also Available On
      App store smallGoogle play small
      Categories
      Curated Lists
      • Pattern Recognition and Machine Learning (Information Science and Statistics)
        by Christopher M. Bishop
        Data mining
        by I. H. Witten
        The Elements of Statistical Learning: Data Mining, Inference, and Prediction
        by Various
        See more...
      • CK-12 Chemistry
        by Various
        Concept Development Studies in Chemistry
        by John Hutchinson
        An Introduction to Chemistry - Atoms First
        by Mark Bishop
        See more...
      • Microsoft Word - How to Use Advanced Algebra II.doc
        by Jonathan Emmons
        Advanced Algebra II: Activities and Homework
        by Kenny Felder
        de2de
        by
        See more...
      • The Sun Who Lost His Way
        by
        Tania is a Detective
        by Kanika G
        Firenze_s-Light
        by
        See more...
      • Java 3D Programming
        by Daniel Selman
        The Java EE 6 Tutorial
        by Oracle Corporation
        JavaKid811
        by
        See more...