Questions about this topic? Sign up to ask in the talk tab.

Ruby

From NetSec
Revision as of 18:20, 12 August 2012 by Ohdazed (Talk | contribs) (Local)

Jump to: navigation, search

Ruby is an interpreted language, dynamically, reflective, semi-Functional and Object Orientated scripting language written in C. Ruby is said to be semi-Functional because it supports higher-order functions (aka lambdas) and closures (aka blocks). Ruby was created by Yukihiro "Matz" Matsumoto and was first released in 1995.

Matz's goal was to combine powerful features from various other programming languages, and create a programming language maximized for developer happiness; as opposed to computational efficiency. Ruby's Object Model mirrors that of Smalltalk, the syntax shares some similarities with Bash, Perl, Python, and the scoping rules for closures was taken from LISP.

Basics

Development Environment

Your first program

Code

#!/usr/bin/ruby
puts "Hello world\n"

Explanation

Variables and Data Types

Local

A local variable is a variable that can only be used within the block it was initialized in. It can be created by making an object that starts with a lowercase letter or an underscore.

 
foo = 'bar'
 

Global

Global variables can be accessed from anywhere within the entire program. They can be created by prefixing your variable the the '$' symbol. Editting the assignment of a global variable will change the status of that variable globally and is generally avoided when writing Ruby scripts.

$woot = 1337
=> 1337

Instance

Instance variables begin with the '@' symbol. Creating an uninitialzed instance will have a nil value.

>> @instance
=> nil
>> @instance = 'ohdae'
=> "ohdae"

Class

Class variables are shared by all methods within that class. These are created by using two '@' symbols at the beginning of your variable. Trying to initialize a class variable outside of a class will throw an error.

>> @@classvar
NameError: uninitialized class variable @@classvar in Object
	from (irb):5
	from :0
>> class Blackhat
>>   @@classvar = 'ohhai'

Pre-defined

Certain variables are pre-defined into Ruby. The values of these variables cannot be changed.

self
nil
true
false


Scalars

Arrays

Hashes or Associative Arrays

References and Pointers

Casting

Boolean Logic

Operators

Statements

Helper natives

Bitwise Manipulations

Loops

While

Until

For

Iterators

User Input

CGI

Command-line Options

STDIN / Standard Input

User-defined

Functions

Objects

Helpful Libraries

.....