• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Let's Learn Ruby - Basic
 

Let's Learn Ruby - Basic

on

  • 670 views

 

Statistics

Views

Total Views
670
Views on SlideShare
670
Embed Views
0

Actions

Likes
2
Downloads
11
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Let's Learn Ruby - Basic Let's Learn Ruby - Basic Presentation Transcript

    • Let’s Learn Ruby - Basic
    • Ruby Tuesday photo by othree https://www.facebook.com/groups/142197385837507/
    • RubyConf Taiwan http://rubyconf.tw/
    • Rails Girls Taipei https://www.facebook.com/railsgirlstw
    • WebConf Taiwan 2014
    • 750+ attendees
    • all tickets sold out in 4 mins
    • Let’s Learn Ruby What I want?
    • Let’s Learn Ruby Problem Solving
    • Let’s Learn Ruby Active Ecosystem
    • Let’s Learn Ruby Scenario
    • Let’s Learn Ruby open source projects on Github
    • Let’s Learn Ruby History
    • Let’s Learn Ruby まつもと ゆきひろ (Matz)
    • Let’s Learn Ruby
    • Let’s Learn Ruby first released at 1995
    • Let’s Learn Ruby 2.0 released at 2013
    • Let’s Learn Ruby 2.1 released at 2013.12
    • Let’s Learn Ruby Why Ruby? free, open source, easy to learn
    • Let’s Learn Ruby Ruby != Rails
    • Let’s Learn Ruby Happy, and Fun
    • Let’s Learn Ruby Rubies CRuby(MRI), REE, mRuby, MacRuby, JRuby, IronRuby, Rubinius..etc
    • Let’s Learn Ruby Version 1.8, 1.9, 2.0, 2.1
    • Let’s Learn Ruby Ruby 1.8 has no future
    • Let’s Learn Ruby RVM Ruby Version Manager https://rvm.io/
    • Let’s Learn Ruby Editors Vim, Emacs, Sublime Text... etc
    • Let’s Learn Ruby coding style https://github.com/styleguide/ruby
    • Let’s Learn Ruby But Ruby is Slow..?
    • Let’s Learn Ruby What can Ruby do?
    • Let’s Learn Ruby Rake Make, but Ruby version. Rack http://rake.rubyforge.org/
    • Let’s Learn Ruby Rack it’s a specification (and implementation) of a minimal abstract Ruby API that models HTTP. such as Sinatra, Ruby on Rails Rack http://rack.rubyforge.org/ Sinatra http://www.sinatrarb.com Ruby on Rails http://rubyonrails.org/
    • Let’s Learn Ruby developing MacOS and iOS app
    • Let’s Learn Ruby drawing, image processing, music..
    • Let’s Learn Ruby Install Ruby now!
    • Let’s Learn Ruby http://tryruby.org
    • Let’s Learn Ruby Interactive Ruby, irb
    • Let’s Learn Ruby Gem
    • Let’s Learn Ruby gem install PACKAGE_NAME
    • Let’s Learn Ruby gem env
    • Let’s Learn Ruby gem list
    • Let’s Learn Ruby Variables and Constants
    • Let’s Learn Ruby local variable variable
    • Let’s Learn Ruby global variable $variable
    • Let’s Learn Ruby instance variable @variable
    • Let’s Learn Ruby class variable @@variable
    • Let’s Learn Ruby virtual variable true, false, self, nil
    • Let’s Learn Ruby variable assignment a=1 x, y, z = 1, 2, 3
    • Let’s Learn Ruby Constant begins with a capital letter, and it can be changed
    • Let’s Learn Ruby Reserved word and Keyword
    • Let’s Learn Ruby Reserved word and Keyword
    • Let’s Learn Ruby Logic and Flow Control
    • Let’s Learn Ruby only false and nil are false
    • Let’s Learn Ruby true v.s TrueClass false v.s FalseClass nil v.s NilClass
    • Let’s Learn Ruby if..elsif..end
    • Let’s Learn Ruby unless = not if
    • Let’s Learn Ruby if modifier
    • Let’s Learn Ruby case .. when..
    • Let’s Learn Ruby BEGIN{} and END{}
    • Let’s Learn Ruby a = true ? 'a' : 'b'
    • Let’s Learn Ruby a ||= 'a'
    • Let’s Learn Ruby Comment # single line
    • Let’s Learn Ruby Comment =begin .. =end
    • Let’s Learn Ruby Loop and Iteration
    • Let’s Learn Ruby for.. in..
    • Let’s Learn Ruby while .. end
    • Let’s Learn Ruby until .. end
    • Let’s Learn Ruby until = not while
    • Let’s Learn Ruby times
    • Let’s Learn Ruby upto, downto
    • Let’s Learn Ruby each, each_with_index
    • Let’s Learn Ruby Integer http://www.ruby-doc.org/core-2.1.0/Integer.html
    • Let’s Learn Ruby Fixnum and Bignum
    • Let’s Learn Ruby 10 / 3
    • Let’s Learn Ruby String http://ruby-doc.org/core-2.1.0/String.html
    • Let’s Learn Ruby single and double quotes
    • Let’s Learn Ruby %q v.s %Q
    • Let’s Learn Ruby "%s" % "eddie"
    • Let’s Learn Ruby string interpolation
    • Let’s Learn Ruby Exercise please calculate how many “characters” and “words” of a section of a random article with Ruby.
    • Let’s Learn Ruby Exercise please convert string “abcdefg” to “gfedcba” without using String#reverse method.
    • Let’s Learn Ruby Array http://ruby-doc.org/core-2.1.0/Array.html
    • Let’s Learn Ruby Array.new v.s []
    • Let’s Learn Ruby %w
    • Let’s Learn Ruby Exercise please sort a given array [1, 3, 4, 1, 7, nil, 7], and remove nil and duplicate number.
    • Let’s Learn Ruby Exercise please covert a given array [1, 2, 3, 4, 5] to [1, 3, 5, 7, 9] with Array#map method.
    • Let’s Learn Ruby Exercise please draw 5 unique random number between 1 to 52.
    • Let’s Learn Ruby Hash http://ruby-doc.org/core-2.1.0/Hash.html
    • Let’s Learn Ruby Hash.new v.s {}
    • Let’s Learn Ruby a = { :name => 'eddie' } a = { name: 'eddie' }
    • Let’s Learn Ruby Range http://ruby-doc.org/core-2.1.0/Range.html
    • Let’s Learn Ruby (1..10) v.s (1...10)
    • Let’s Learn Ruby Exercise please calculate the sum from 1 to 100 with Range.
    • Let’s Learn Ruby Methods
    • Let’s Learn Ruby def method_name(param) ... end
    • Let’s Learn Ruby parentheses can be omitted
    • Let’s Learn Ruby ? and !
    • Let’s Learn Ruby return value
    • Let’s Learn Ruby Singleton Method
    • Let’s Learn Ruby class Cat def walk puts "I'm walking" end end ! cat = Cat.new def cat.fly puts "I can fly" end cat.fly
    • Let’s Learn Ruby Method Missing
    • Let’s Learn Ruby def method_missing(method_name) puts "method: #{method_name} is called!" end ! something_not_exists()
    • Let’s Learn Ruby Exception Handling begin .. rescue.. else.. ensure.. end
    • Let’s Learn Ruby def open_my_file(file_name) File.open file_name do |f| puts f.read end end begin open_my_file("block_demo.r") rescue => e puts e else puts "it's working good!" ensure puts "this must be executed, no matter what" end
    • Let’s Learn Ruby Block
    • Let’s Learn Ruby Proc
    • Let’s Learn Ruby my_square = Proc.new { | x | x ** 2 } ! # how to call a proc puts my_square.call(10) puts my_square[10] puts my_square.(10) puts my_square === 10 # # # # 100 100 100 100
    • Let’s Learn Ruby lambda, ->
    • Let’s Learn Ruby my_lambda = lambda { | x | x ** 2 } ! # new style in 1.9 my_lambda = -> x { x ** 2 } ! # how to call a lambda? puts my_lambda.call(10) puts my_lambda[10] puts my_lambda.(10) puts my_lambda === 10 # # # # 100 100 100 100
    • Let’s Learn Ruby Proc v.s lambda
    • Let’s Learn Ruby def proc_test puts "hello" my_proc = Proc.new { return 1 } my_proc.call puts "ruby" end def lambda_test puts "hello" my_lambda = lambda { return 1 } my_lambda.call puts "ruby" end
    • Let’s Learn Ruby {} v.s do..end http://blog.eddie.com.tw/2011/06/03/do-end-vs-braces/
    • Let’s Learn Ruby Yield
    • Let’s Learn Ruby Object-Oriented Programming
    • Let’s Learn Ruby everything in Ruby is an Object
    • Let’s Learn Ruby object = state+ behavior
    • Let’s Learn Ruby root class = Object root class would be BasicObject in Ruby 1.9
    • Let’s Learn Ruby class ClassName < ParentClass ... end
    • Let’s Learn Ruby Naming Convention
    • Let’s Learn Ruby initialize
    • Let’s Learn Ruby ClassName.new
    • Let’s Learn Ruby self = current object
    • Let’s Learn Ruby instance and class variable
    • Let’s Learn Ruby instance and class method
    • Let’s Learn Ruby Exercise please create a Dog class and Cat class, which are both inherited from Animal class, and implement “walk” and “eat” methods.
    • Let’s Learn Ruby public, protected and private method
    • Let’s Learn Ruby getter and setter
    • Let’s Learn Ruby attr_reader, attr_writer and attr_accessor
    • Let’s Learn Ruby Open Class
    • Let’s Learn Ruby Module
    • Let’s Learn Ruby module ModuleName ... end
    • Let’s Learn Ruby module has no inheritance
    • Let’s Learn Ruby module has no instance
    • Let’s Learn Ruby Naming Convention
    • Let’s Learn Ruby require v.s load
    • Let’s Learn Ruby Priority?
    • Let’s Learn Ruby Exercise please create a Bird class, which is also inherited from Animal class, but include a Fly module.
    • Let’s Learn Ruby Mixin
    • Let’s Learn Ruby Ruby is single inheritance
    • Let’s Learn Ruby Duck Typing
    • Let’s Learn Ruby include v.s extend
    • Let’s Learn Ruby Bundle
    • Let’s Learn Ruby Gemfile
    • Let’s Learn Ruby http://rubygems.org/
    • Let’s Learn Ruby gem "nokogiri", :git => "git://github.com/ tenderlove/nokogiri.git" gem "secret_gem", :path => "~/my_secret_path"
    • Let’s Learn Ruby bundle install
    • Let’s Learn Ruby pack your own gem!
    • Let’s Learn Ruby 1. bundle gem NEW_NAME 2. gem build NEW_NAME.gemspec 3. gem push NEW_NAME.gem http://guides.rubygems.org/make-your-own-gem/
    • Let’s Learn Ruby Exercise please try to create a Gem spec with bundle command, modify, build and push to rubygems.org.
    • Let’s Learn Ruby Rake
    • Let’s Learn Ruby desc "mail sender" task :sendmail do puts "grap mailing list from database..." sleep 3 puts "mail sending..." sleep 3 puts "done!" end
    • Let’s Learn Ruby task :goto_toliet do puts "goto toliet" end ! task :open_the_door => :goto_toliet do puts "open door" end
    • Let’s Learn Ruby TDD
    • Let’s Learn Ruby require “minitest/autorun" ! class TestMyBMI < MiniTest::Unit::TestCase def test_my_calc_bmi_is_ok assert_equal calc_bmi(175, 80), 26.12 end end ! def calc_bmi(height, weight) bmi = ( weight / (height/100.0) ** 2 ).round(2) end
    • Let’s Learn Ruby require "minitest/autorun" describe "test my bmi calculator" do it "should calc the correct bmi" do calc_bmi(175, 80).must_equal 26.12 end end def calc_bmi(height, weight) bmi = ( weight / (height/100.0) ** 2 ).round(2) end
    • Let’s Learn Ruby Ruby Koans http://rubykoans.com/
    • Let’s Learn Ruby Ruby Object Model
    • Let’s Learn Ruby At last..
    • photo by redjar
    • Let’s Learn Ruby pick up one scripting language
    • photo by Quality & Style
    • Let’s Learn Ruby @eddiekao https://www.ruby-lang.org/zh_tw/
    • Let’s Learn Ruby Ruby is fun!
    • Let’s Learn Ruby The only limitation is your imagination.
    • Contacts ⾼高⾒見⻯⿓龍 Website http://www.eddie.com.tw Blog http://blog.eddie.com.tw Plurk http://www.plurk.com/aquarianboy Facebook http://www.facebook.com/eddiekao Google Plus http://www.eddie.com.tw/+ Twitter https://twitter.com/eddiekao Email eddie@digik.com.tw Mobile +886-928-617-687 photo by Eddie