+ All Categories
Home > Technology > A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Date post: 07-May-2015
Category:
Upload: tchelinux-slides
View: 796 times
Download: 5 times
Share this document with a friend
Description:
Sobre o palestrante: Formado na UFPel no início do ano corrente, trabalhou com desenvolvimento de hardware para TV digital durante a graduação. Entretanto, sempre foi apaixonado por belas linguagens de programação, e destas, Ruby é a que mais se destaca. Atualmente aguarda o mês de junho, quando começa a trabalhar na ThoughtWorks, em Porto Alegre.
22
Transcript
Page 1: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles
Page 2: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

puts “Hello Ruby!”

Page 3: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Clean, Elegant and

Meaningful Syntax

Page 4: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

test_string = 'string for test'puts 'matched' if test_string.match 'string'

files = Dir['*.txt']for file in files file_ref = open file file_ref.each_line { |line| puts line.reverse.upcase }end

Page 5: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Everything is an Object

10.times { puts “Hello World!” } “Hello World!”.methods

Page 6: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Dynamic Typing, Duck Typing

andOpen Classes

Page 7: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

a_variable = 'a b c'.split(' ') #=> ['a','b','c']a_variable = a_variable.join(' ') #=> 'a b c'

def a_function object_parputs object_par.crazy_method

end

a_function [1,2,3] #=> error: undefined method 'crazy_method' for class Array

class Arraydef crazy_method

return 'crazy method for an array'end

end

a_function [1,2,3] #=> puts 'crazy method for an array'

Page 8: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

a_variable = 'a b c'.split(' ') #=> ['a','b','c']a_variable = a_variable.join(' ') #=> 'a b c'

def a_function object_parputs object_par.crazy_method

end

a_function [1,2,3] #=> error: undefined method 'crazy_method' for class Array

class Arraydef crazy_method

return 'crazy method for an array'end

end

a_function [1,2,3] #=> puts 'crazy method for an array'

Page 9: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

def a_function object_parputs object_par.crazy_method

end

some_obj = SomeClass.new

a_function some_obj #=> error: undefined method 'crazy_method' for class SomeClass

def some_obj.crazy_methodreturn 'this is a crazy feature'

end

a_function some_obj #=> puts 'this is a crazy_feature'

Page 10: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

def a_function object_parputs object_par.crazy_method

end

some_obj = SomeClass.new

a_function some_obj #=> error: undefined method 'crazy_method' for class SomeClass

def some_obj.crazy_methodreturn 'this is a crazy feature'

end

a_function some_obj #=> puts 'this is a crazy_feature'

Page 11: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

"if it walks like a duck and quacks like a duck, then it is a duck”

Page 12: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Blocks

Page 13: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

def square an_arrayreturn an_array.map { |e| e*e }

end

lines_of_a_doc.each_with_index do |line,i|if i.even? then

puts 'even line: #{line}'else

puts 'odd line: ' + lineend

end

Page 14: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

[1,2,3,4].select { |e| e.even? } #=> [2,4]

[1,2,3,4].collect { |e| e.even? } #=> [true,false,true,false]

[1,2,3,4].inject(0) { |sum,e| sum += e } #=> 10

Page 15: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

def my_for nn.times { |n| yield(n) }

end

my_for 3 { |i| puts i }

#=> 1#=> 2#=> 3

Page 16: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Mix-in

Page 17: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

class Books < Collectiondef initialize

@books = SomeReader.new('some_file_with_books').get_booksend

include Enumerable

def [email protected] { |book| yield(book) }

endend

Class Books now havemap, select, inject, grep, find_all, include?

and more

Page 18: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Testing

Page 19: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

require 'test/unit'

class TestHtmlParser < Test::Unit::TestCase

must “find all imgs” doparser = HtmlParser.new '<div class='a'> <br/> <img src='img1.jpg'>\n

<p><img src='img2.jpg'></body>'assert_equal parser.parse_imgs, ['img1.jpg','img2.jpg']

endend

class HtmlParser

def initialize html_doc@content = html_doc

end

def [email protected](/img\s+src=\'(.+?)\'/)

endend

Page 20: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Standard Library

● erb - .rhtml● sockets● threads● html/xml parser● ftp, http, imap, pop3, smtp● tk● pstore

Page 21: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

And Gems!

$ gem install rails

$ gem install rspec

$ gem search twitter

13,007 gems and counting!

Page 22: A linguagem de programação Ruby - Robson "Duda" Sejan Soares Dornelles

Productivity and fun

And that's it!

Duda [email protected]


Recommended