Slide 1

Slide 1 text

Getting started with ruby Eindhoven.rb #4 — 5 april 2011 Arjan van der Gaag

Slide 2

Slide 2 text

Getting started with Ruby Eindhoven.rb #4 — 5 april 2011 Arjan van der Gaag

Slide 3

Slide 3 text

Getting started with Ruby Eindhoven.rb #4 — 5 april 2011 Arjan van der Gaag

Slide 4

Slide 4 text

Getting started with ruby Eindhoven.rb #4 — 5 april 2011 Arjan van der Gaag

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

$ ruby app.rb

Slide 7

Slide 7 text

$ ruby app.rb $ ruby -r “mylib” app.rb

Slide 8

Slide 8 text

$ ruby app.rb $ ruby -r “mylib” app.rb $ ruby -rubygems app.rb

Slide 9

Slide 9 text

$ ruby app.rb $ ruby -r “mylib” app.rb $ ruby -rubygems app.rb $ ruby -I lib app.rb

Slide 10

Slide 10 text

# lib/post.rb class Post attr_accessor :title, :author end # app.rb require "post" get '/' do @posts = Post.all erb :index end $ ruby -rubygems -r sinatra -I lib app.rb

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

$ ruby -e ‘puts “Hello, world”’

Slide 13

Slide 13 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb

Slide 14

Slide 14 text

while gets # execute app.rb here end

Slide 15

Slide 15 text

while $_ = gets # execute app.rb here end

Slide 16

Slide 16 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb

Slide 17

Slide 17 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb $ ruby -p app.rb

Slide 18

Slide 18 text

while gets # execute app.rb here print end

Slide 19

Slide 19 text

while $_ = gets # execute app.rb here print $_ end

Slide 20

Slide 20 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb $ ruby -p app.rb

Slide 21

Slide 21 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb $ ruby -p app.rb $ ruby -lpe app.rb

Slide 22

Slide 22 text

while gets $_.chomp! # execute app.rb here print end

Slide 23

Slide 23 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb $ ruby -p app.rb $ ruby -lpe app.rb

Slide 24

Slide 24 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb $ ruby -p app.rb $ ruby -lpe app.rb $ ruby -pe “next unless /<{7}/../>{7}/” conflicted_file

Slide 25

Slide 25 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb $ ruby -p app.rb $ ruby -lpe app.rb $ ruby -pe “next unless /<{7}/../>{7}/” conflicted_file $ ruby -an -F, -e ‘puts $F[0]‘ csv_file

Slide 26

Slide 26 text

while gets $F = $_.split $, # execute app.rb here end

Slide 27

Slide 27 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb $ ruby -p app.rb $ ruby -lpe app.rb $ ruby -pe “next unless /<{7}/../>{7}/” conflicted_file $ ruby -an -F, -e ‘puts $F[0]‘ csv_file

Slide 28

Slide 28 text

$ ruby -e ‘puts “Hello, world”’ $ ruby -n app.rb $ ruby -p app.rb $ ruby -lpe app.rb $ ruby -pe “next unless /<{7}/../>{7}/” conflicted_file $ ruby -an -F, -e ‘puts $F[0]‘ csv_file $ ruby -i -p -e ‘$_.downcase!’ file

Slide 29

Slide 29 text

#!/usr/bin/env ruby -w # Example input: # # john,secret # graham,test require 'digest' while line = ARGF.gets("\n") do parts = line.split ',' next unless parts[1] print line.gsub parts[1], Digest::SHA1.hexdigest(parts[1]) end

Slide 30

Slide 30 text

#!/usr/bin/env ruby -wanp -r digest -F, next unless $F[1] gsub $F[1], Digest::SHA1.hexdigest($F[1])

Slide 31

Slide 31 text

# Read all values in ARGV as files as # a single stream OR read from STDIN puts ARGF.read puts $<.read

Slide 32

Slide 32 text

- $/ input record separator (default \n) - $\ output record separator (default \n) - $, output field separator (default nil) - $; input field separator (default nil) - $_ current line - $. number of current line - $F result of $_.split($;) Ruby globals

Slide 33

Slide 33 text

- OptParse - StrScanner - OpenStruct - Set - CSV - Find - FileUtils - Tmpfile - Zlib - Abbrev Know your StdLib

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

$ ruby -h

Slide 36

Slide 36 text

github.com/avdgaag @avdgaag