Software Engineer, Wellist
Click here to access Railsbridge's Installfest instructions to get set up.
Railsbridge is an organization that holds a day long Ruby on Rails workshop several times a year. You should check them out! They are a national organization with a Boston chapter.
Using the command line and working in the terminal can be really intimidating at first!
With practice, navigation and file manipulation is significantly faster in the terminal than in the GUI (graphical user interface).
Professional software developers use the terminal all the time,
and this class will require some use of it.
(plus, you get to feel like a stealthy hacker)
Mac & Linux users: Open Terminal
Windows users: Install & Open Git-Bash
We will not be using Windows "cmd" program,
as it uses a different syntax than *NIX systems.
The line that appears in the terminal when you open it is called
the prompt.
It usually contains information about the user and current directory.
It can be customized.
Terminal instructions often start a line with a $.
This just represents the last character in the prompt in the bash shell, you don't have to type it.
. |
the current directory- ex: touch ./wow.txt |
.. |
the parent of current directory - ex: cd ../RubyParty |
~ |
the root directory- ex: cd ~/Pictures |
cd [location] |
"change directory" to [location] |
pwd |
"present working directory" - where am I? |
ls -al |
"list all" of the contents of current directory, including invisible ones |
touch [filename.extension] |
create a file called [filename.extension] in the current directory |
mkdir [directoryname] |
create a directory called [directoryname] in the current directory With great power comes great responsibility. Be very careful with this one. |
rm [filename] |
"remove" (delete) the file called [filename] |
rm -rf [directoryname] |
"remove recursively with force" the directory called [directoryname] |
clear OR cmd+k |
clear the terminal screen |
help |
lists all possible commands |
man [command] |
displays the manual for [command] |
# Java
for(int i = 0; i < 5; i++)
# Ruby
5.times do
irb
quit
and then press enter
Try out some calculator functions
3 + 4
2 * 4
6 - 2
4 / 2
4 /* 2
=> SyntaxError: (irb):10:syntax error, unexpected *
Other Ruby Math Operators
11 % 5
=> 1
2 ** 3
=> 8
irb> hi
NameError: undefined local variable or method `hi' for main:Object
# Everything after this pound sign will not be evaluated.
# These are called comments and I will use them to annotate code
age = 50
days_in_year = 365
days_alive = age * days_in_year
=> 18250
# variables
age = 50
_age = 50
_my_age = 50
# constants
PI = 3.14159
# literals
3
'hi'
# create and assign in one line
age = 0
# access the value in age
age
# replace value in age
age = 40
# good
occupation = "software developer"
# bad
occupation_i_always_dreamed_of_having_in_seattle = "software developer"
o = "software developer"
1st_occupation = "software developer"
# error
name
# defined, initalize, create
name = "KC"
defined?(name)
Numbers | Strings | Symbols | Booleans
Regular Expressions | Arrays | Ranges | Hashes
irb> 1.class
=> Fixnum
irb> "Hello".class
=> String
irb> 1.0022.class
=> Float
irb> [1,2,3].class
=> Array
Numeric data comes in two types: Integers and Floats
Integers are either Fixnum or Bignum. They do not have decimals.
irb> 1_000_000_000_000_000_000.class
=> Fixnum
irb> 1_000_000_000_000_000_000_000.class
=> Bignum
Floats have at least one number to the left of a decimal point.
irb> 1.001.class
=> Float
7/8
7.0/8.0
3.14.to_s
3.14.to_i
1 + "2"
1 + "2".to_i
(1 + 2) * 3
1 + (2 * 3)
How many seconds are in an hour?
How many minutes are in a week?
How many years old are you if you've been alive 1 million seconds?
Strings are characters inside double or single quotes.
a = 'Hello '
b = "World"
c = a + b
c.reverse
=> "dlroW olleH"
a = "Spam "
# Here multiplying a by 4 concatenates (links) four strings together
b = a * 4
=>"Spam Spam Spam Spam "
"Heather".upcase
"Heather".downcase
"heather".capitalize
"Hello".reverse
"Heather".length
"Heather Moore".swapcase
"".empty?
What is the reverse of your name?
How many characters long is your name?
Can you repeat the word hello 100 times?
What is the 5th character of my name?
irb> puts "hello"
hello
=> nil
irb> "2".to_i
=> 2
irb> 2.to_s
=> "2"
irb> "2" / 5
NoMethodError: undefined method `/' for "2":String
gets
puts
Put the code below in a file and save it as name.rb
puts 'Hello there, and what\'s your name?'
name = gets
puts 'Your name is ' + name.chomp! + '? What a lovely name!'
puts 'Pleased to meet you, ' + name + '. :)'
Run your program from the command line:
ruby name.rb
puts
and gets
to ask a user for their age and then tell them how old they are in dog years.gets
method returns a string. To do math on it, convert it to an integer with the .to_i
method.
#1 dog year = 7 human years
user_age = gets.to_i
Update your code to return a message in all capital letters.
# YOU ARE 5 YEARS OLD IN DOG YEARS
Update your code to return a message in all capital letters, reversed with a count of the characters returned in parens.
# YOU ARE 5 YEARS OLD IN DOG YEARS (32 characters)
@gdiBoston
Thats all, folks!
This is a lot of info, please ask lots of questions!
Send us emails if you don't want to ask here!