SlideShare a Scribd company logo
シュッとふりかえる
Ruby 2.0 以降
2015/02/20 第65回 Ruby関西 勉強会
西村 友裕 a.k.a Sixeight
Sixeight
(@tomohi_ro)
近況:Perl
ざっくりと変更点を
ふりかえります。
ただし、理解出来たところや、
興味でフィルタしています。
2013年2月25日
(Ruby生誕20周年)
Ruby 2.0
キーワード引数
!
def meth(foo: “bar”, hoge: “piyo”)
[foo, hoge]
end
!
p meth(foo: “cat”) #=> [“cat”, “piyo”]
Refinements
• (誤解を恐れずにいうと)特定のスコープの中でのみ
有効なメソッドを定義する方法
• Experimental な機能として入りました
Module#prepend
module Awesome
def greet
"awesome " + super
end
end
!
class Person
prepend Awesome
def greet
"hi!"
end
end
!
puts Person.new.greet
#=> awesome hi!
• 継承の先頭に挿し込める機能
!
• include Awesome
• Person -> Awesome
• prepend Awesome
• Awesome -> Person
!
• R.I.P #alias_method_chain
デフォルトエンコーディング
が UTF-8 になった
• # encoding: utf-8 が不要になった!!!!
Enumerable#lazy
users = [ 5億件のデータ ]
p users.each.lazy.
map {|u| u.newbie? }.
map {|u| u.rubyist? }.
map {|u| u.age < 20 }.
to_a
その他
• %i
• __dir__
• Hash(), nil#to_h, Hash#to_h
• const_get( Foo::Bar::Baz )
• Array#bsearch
• TracePoint
• gem ̶no-document
2013年12月25日
Ruby 2.1
RGenGC になった
• パフォーマンス向上!
キーワード引数の拡張
!
def meth(foo:, hoge:)
[foo, hoge]
end
!
p meth(foo: “cat”)
#=> `meth': missing keywords: hoge
(ArgumentError)
メソッド定義が
シンボルを返すように
class A
private def method
# ...
end
end
つまり def hoge; end #=> :hoge
Binding#local_variable_(get¦set)
def span(body, class: "")
html_class = binding.local_variable_get(:class)
%q!<span class="%s">%s</span>! % [html_class, body]
end
!
p span("hoge", class: “right”)
!
#=> "<span class="right">hoge</span>"
ローカル変数を取得したり設定できる
= 予約語もキーワード引数として使える
Refinements
module Bangable
refine String do
def !
self + "!"
end
end
end
!
class Person
using Bangable
!
def greet(name)
puts "Hi #{name}".!
end
end
!
Person.new.greet("cat")
#=> Hi cat!
!
puts "Hi dog".!
#=> false
• Experimental が取れた!
!
• クラス/モジュール のス
コープにも有効に
• eval 族の対応は入らな
かった
Module#include/prepend が
public なメソッドになった
A.include AwesomeModule
A.prepend AwesomeModule
A.__send__(:include, AwesomeModule)
A.__send__(:prepend, AwesomeModule)
freeze
• 全ての Symbol がフリーズされるようになった
• フリーズされた文字列が同じ object_id を返すよ
うになった
• ハッシュのキーに文字列を指定するとフリーズされ
るようになった = Symbol と同じ扱い
その他
• Array#to_h
• 0.5r, 0.5i, 0.5ri
• Exception#cause
• Kernel#singleton_method, Kernel#singleton_method?
• String#scrub
• eval 族が環境を引き継がなくなった
• lambda Proc からの return の挙動の統一
• and more ...
2014年12月25日
Ruby 2.2
{ symbol-key : value }
{:"symbol-key" => "value"}
{“symbol-key": "value"}
GC
• インクリメンタル GC の導入
• シンボルが GC の対象になった
Binding
• Binding#local_variables
• Binding#receiver class A
def context
x = 1
y = 2
binding
end
end
!
a = A.new
p a.context.local_variables
#=> [:x, :y]
p a.context.receiver
#=> #<A:0x007fa450833dc0>
Method#super_method
class Parent
def meth
end
end
!
class Child < Parent
def meth
end
end
!
p Child.new.method(:meth).super_method
#=> #<Method: Parent#meth>
super で呼び出せるメソッドを取得出来るようになった
Method#curry
def add(a, b)
a + b
end
!
add_ten = method(:add).curry.(10)
p add_ten.(5)
#=> 15
Proc#curry と同じことが出来るようになった
Enumerable
• #slice_after
• #slice_before の逆
• #max, #max_by, #min, #min_by
• 引数を取れるようになった
counts = [1, 2, 3, 4, 5]
!
counts.slice_before(&:even?)
#=> [[1, 2], [3, 4], [5]]
!
counts.max(2) #=> 5, 4
counts.min(3) #=> 1, 2, 3
Object#itself
state = state.presence_in(AVAILABLE_STATES)
Book.public_send(state || :itself).order(desc: :price)
自分自身を返すメソッド
例えばこう使う
指定されたステートが有効なものであればその中から、
無効なものであれば全体から検索する。
Book.sale.order(desc: :price) もしくは Book.order(desc: :price)
Comparable#==
class Person
include Comparable
!
attr_reader :age
!
def initialize(age)
@age = age
end
!
def <=>(other)
self.age <=> other.age
end
end
!
a = Person.new(20)
b = Person.new(18)
!
p a > b
#=> true
!
p a == nil
#=> warning: Comparable#== will no more rescue exceptions of #<=> in the next release.
#=> warning: Return nil in #<=> if the comparison is inappropriate or avoid such comparison.
#=> false
注) 次のバージョンから <=> の例外を隠 してくれなくなります。
その他
• nil/true/false が frozen に変更
• Pathname( cute )/ cat / dog
• File#birthtime
• Float#(next¦prev)_float
• Matrix#first_minor, Matrix#cofactor
• Digest#HMAC がなくなった (OpenSSL::HMAC)
• C API の Deprecated が消えてる
• 細かい変更がたくさんある
ご清聴ありがとう
ございました。

More Related Content

What's hot

CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
charsbar
 
Spectacular Future with clojure.spec
Spectacular Future with clojure.specSpectacular Future with clojure.spec
Spectacular Future with clojure.spec
Kent Ohashi
 
PHP7を魔改造した話
PHP7を魔改造した話PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
 
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
mametter
 
test
testtest
HHVM Hack
HHVM HackHHVM Hack
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
y-uti
 
PHP基本的関数QUIZ
PHP基本的関数QUIZPHP基本的関数QUIZ
PHP基本的関数QUIZ
Wataru Terada
 
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題Masahiro Nagano
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたMoriyoshi Koizumi
 
PHPの今とこれから2021
PHPの今とこれから2021PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
 
Clojureで作る"simple"なDSL
Clojureで作る"simple"なDSLClojureで作る"simple"なDSL
Clojureで作る"simple"なDSL
Kent Ohashi
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
 
第3回BDD勉強会
第3回BDD勉強会第3回BDD勉強会
第3回BDD勉強会zakihaya
 
サーバー実装いろいろ
サーバー実装いろいろサーバー実装いろいろ
サーバー実装いろいろkjwtnb
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...Naoya Ito
 

What's hot (20)

CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
 
Nginx lua
Nginx luaNginx lua
Nginx lua
 
Spectacular Future with clojure.spec
Spectacular Future with clojure.specSpectacular Future with clojure.spec
Spectacular Future with clojure.spec
 
PHP7を魔改造した話
PHP7を魔改造した話PHP7を魔改造した話
PHP7を魔改造した話
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
 
test
testtest
test
 
HHVM Hack
HHVM HackHHVM Hack
HHVM Hack
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
 
PHP基本的関数QUIZ
PHP基本的関数QUIZPHP基本的関数QUIZ
PHP基本的関数QUIZ
 
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
 
PHPの今とこれから2021
PHPの今とこれから2021PHPの今とこれから2021
PHPの今とこれから2021
 
Clojureで作る"simple"なDSL
Clojureで作る"simple"なDSLClojureで作る"simple"なDSL
Clojureで作る"simple"なDSL
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
第3回BDD勉強会
第3回BDD勉強会第3回BDD勉強会
第3回BDD勉強会
 
サーバー実装いろいろ
サーバー実装いろいろサーバー実装いろいろ
サーバー実装いろいろ
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 

Viewers also liked

Mike Watkins Design - Portfolio Sample
Mike Watkins Design - Portfolio SampleMike Watkins Design - Portfolio Sample
Mike Watkins Design - Portfolio Sample
mikewatkinsdesign
 
DSLについて語るときに僕の語ること
DSLについて語るときに僕の語ることDSLについて語るときに僕の語ること
DSLについて語るときに僕の語ることTomohiro Nishimura
 
逃げ道をなくすということについて、僕の持っている知見を話します。
逃げ道をなくすということについて、僕の持っている知見を話します。逃げ道をなくすということについて、僕の持っている知見を話します。
逃げ道をなくすということについて、僕の持っている知見を話します。
Tomohiro Nishimura
 
Kyotorb#4
Kyotorb#4Kyotorb#4
Presentación páxina web
Presentación páxina webPresentación páxina web
Presentación páxina webana rod
 
Atom ことはじめ
Atom ことはじめAtom ことはじめ
Atom ことはじめ
Tomohiro Nishimura
 

Viewers also liked (9)

Introduce the Hacobu
Introduce the HacobuIntroduce the Hacobu
Introduce the Hacobu
 
0006
00060006
0006
 
Mike Watkins Design - Portfolio Sample
Mike Watkins Design - Portfolio SampleMike Watkins Design - Portfolio Sample
Mike Watkins Design - Portfolio Sample
 
DSLについて語るときに僕の語ること
DSLについて語るときに僕の語ることDSLについて語るときに僕の語ること
DSLについて語るときに僕の語ること
 
逃げ道をなくすということについて、僕の持っている知見を話します。
逃げ道をなくすということについて、僕の持っている知見を話します。逃げ道をなくすということについて、僕の持っている知見を話します。
逃げ道をなくすということについて、僕の持っている知見を話します。
 
The way to the Kyoto.rb
The way to the Kyoto.rbThe way to the Kyoto.rb
The way to the Kyoto.rb
 
Kyotorb#4
Kyotorb#4Kyotorb#4
Kyotorb#4
 
Presentación páxina web
Presentación páxina webPresentación páxina web
Presentación páxina web
 
Atom ことはじめ
Atom ことはじめAtom ことはじめ
Atom ことはじめ
 

Similar to シュッとふりかえる Ruby 2.0 以降

プログラマ進化論
プログラマ進化論プログラマ進化論
プログラマ進化論
Sotaro Omura
 
Ruby 2.5
Ruby 2.5Ruby 2.5
Ruby 2.5
Masahiro Tomita
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Koichi Sasada
 
20110820 metaprogramming
20110820 metaprogramming20110820 metaprogramming
20110820 metaprogrammingMasanori Kado
 
怠惰なRubyistへの道 fukuoka rubykaigi01
怠惰なRubyistへの道 fukuoka rubykaigi01怠惰なRubyistへの道 fukuoka rubykaigi01
怠惰なRubyistへの道 fukuoka rubykaigi01
nagachika t
 
about Perl5.10
about Perl5.10about Perl5.10
about Perl5.10
Kazuki KOMORI
 
10分で分かる最近のCakePHP
10分で分かる最近のCakePHP10分で分かる最近のCakePHP
10分で分かる最近のCakePHPMasashi Shinbara
 
Weeklycms20120218
Weeklycms20120218Weeklycms20120218
Weeklycms20120218
Yoshi Sakai
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
 
Ruby 3のキーワード引数について考える
Ruby 3のキーワード引数について考えるRuby 3のキーワード引数について考える
Ruby 3のキーワード引数について考える
mametter
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
Masahito Zembutsu
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
 
EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発
Kentaro Ohkouchi
 
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」Hiromu Shioya
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
高広 内山
 
Active Support のコア拡張機能について
Active Support のコア拡張機能についてActive Support のコア拡張機能について
Active Support のコア拡張機能について
Tomoya Kawanishi
 
Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy toolYuki Shibazaki
 
Phpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakadaPhpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakadaJunpei Nakada
 
Ruby でつくる型付き Ruby
Ruby でつくる型付き RubyRuby でつくる型付き Ruby
Ruby でつくる型付き Ruby
mametter
 

Similar to シュッとふりかえる Ruby 2.0 以降 (20)

プログラマ進化論
プログラマ進化論プログラマ進化論
プログラマ進化論
 
Ruby 2.5
Ruby 2.5Ruby 2.5
Ruby 2.5
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
 
20110820 metaprogramming
20110820 metaprogramming20110820 metaprogramming
20110820 metaprogramming
 
怠惰なRubyistへの道 fukuoka rubykaigi01
怠惰なRubyistへの道 fukuoka rubykaigi01怠惰なRubyistへの道 fukuoka rubykaigi01
怠惰なRubyistへの道 fukuoka rubykaigi01
 
about Perl5.10
about Perl5.10about Perl5.10
about Perl5.10
 
10分で分かる最近のCakePHP
10分で分かる最近のCakePHP10分で分かる最近のCakePHP
10分で分かる最近のCakePHP
 
Weeklycms20120218
Weeklycms20120218Weeklycms20120218
Weeklycms20120218
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
 
Ruby 3のキーワード引数について考える
Ruby 3のキーワード引数について考えるRuby 3のキーワード引数について考える
Ruby 3のキーワード引数について考える
 
Haikara
HaikaraHaikara
Haikara
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
 
EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発
 
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
 
Active Support のコア拡張機能について
Active Support のコア拡張機能についてActive Support のコア拡張機能について
Active Support のコア拡張機能について
 
Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy tool
 
Phpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakadaPhpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakada
 
Ruby でつくる型付き Ruby
Ruby でつくる型付き RubyRuby でつくる型付き Ruby
Ruby でつくる型付き Ruby
 

More from Tomohiro Nishimura

KPTのすすめ
KPTのすすめKPTのすすめ
KPTのすすめ
Tomohiro Nishimura
 
2010年ふりかえる
2010年ふりかえる2010年ふりかえる
2010年ふりかえる
Tomohiro Nishimura
 
Rubyist のための HTML5 入門 -Content Models-
Rubyist のための HTML5 入門 -Content Models-Rubyist のための HTML5 入門 -Content Models-
Rubyist のための HTML5 入門 -Content Models-
Tomohiro Nishimura
 
NoSQL を Ruby で実践するための n 個の方法
NoSQL を Ruby で実践するための n 個の方法NoSQL を Ruby で実践するための n 個の方法
NoSQL を Ruby で実践するための n 個の方法Tomohiro Nishimura
 
Boys, do LiveCoding
Boys, do LiveCodingBoys, do LiveCoding
Boys, do LiveCoding
Tomohiro Nishimura
 
It's Mechanize for it. Ruby as a Finder.
It's Mechanize for it. Ruby as a Finder.It's Mechanize for it. Ruby as a Finder.
It's Mechanize for it. Ruby as a Finder.Tomohiro Nishimura
 
Termtter Refactoring Spa
Termtter Refactoring SpaTermtter Refactoring Spa
Termtter Refactoring Spa
Tomohiro Nishimura
 
Haml/Sassを使って履歴書を書くためのn個の方法
Haml/Sassを使って履歴書を書くためのn個の方法Haml/Sassを使って履歴書を書くためのn個の方法
Haml/Sassを使って履歴書を書くためのn個の方法Tomohiro Nishimura
 
RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会Tomohiro Nishimura
 

More from Tomohiro Nishimura (20)

Kyotorb#3
Kyotorb#3Kyotorb#3
Kyotorb#3
 
Kyotorb Meetup #2
Kyotorb Meetup #2Kyotorb Meetup #2
Kyotorb Meetup #2
 
Kyoto.rb
Kyoto.rbKyoto.rb
Kyoto.rb
 
KPTのすすめ
KPTのすすめKPTのすすめ
KPTのすすめ
 
2010年ふりかえる
2010年ふりかえる2010年ふりかえる
2010年ふりかえる
 
Rubyist のための HTML5 入門 -Content Models-
Rubyist のための HTML5 入門 -Content Models-Rubyist のための HTML5 入門 -Content Models-
Rubyist のための HTML5 入門 -Content Models-
 
NoSQL を Ruby で実践するための n 個の方法
NoSQL を Ruby で実践するための n 個の方法NoSQL を Ruby で実践するための n 個の方法
NoSQL を Ruby で実践するための n 個の方法
 
Boys, do LiveCoding
Boys, do LiveCodingBoys, do LiveCoding
Boys, do LiveCoding
 
Vim Text Object
Vim Text ObjectVim Text Object
Vim Text Object
 
Introduce the LiveCoding
Introduce the LiveCodingIntroduce the LiveCoding
Introduce the LiveCoding
 
2009年ふりかえり
2009年ふりかえり2009年ふりかえり
2009年ふりかえり
 
It's Mechanize for it. Ruby as a Finder.
It's Mechanize for it. Ruby as a Finder.It's Mechanize for it. Ruby as a Finder.
It's Mechanize for it. Ruby as a Finder.
 
Lazyselect
LazyselectLazyselect
Lazyselect
 
Rubyで始めるGTD
Rubyで始めるGTDRubyで始めるGTD
Rubyで始めるGTD
 
Introduce RSpec's Matchers
Introduce RSpec's MatchersIntroduce RSpec's Matchers
Introduce RSpec's Matchers
 
Termtter Refactoring Spa
Termtter Refactoring SpaTermtter Refactoring Spa
Termtter Refactoring Spa
 
Haml/Sassを使って履歴書を書くためのn個の方法
Haml/Sassを使って履歴書を書くためのn個の方法Haml/Sassを使って履歴書を書くためのn個の方法
Haml/Sassを使って履歴書を書くためのn個の方法
 
RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会RubyKaigi2009さんか報告会
RubyKaigi2009さんか報告会
 
Sinatra事始め
Sinatra事始めSinatra事始め
Sinatra事始め
 
今更はじめるCucumber
今更はじめるCucumber今更はじめるCucumber
今更はじめるCucumber
 

シュッとふりかえる Ruby 2.0 以降