Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
わたしの Ruby の楽しみかた
@flada_auxv
富山合同勉強会2016 2016/01/30(土)
http://agile.esm.co.jp/news/2016-01-06-new-year.html
http://agile.esm.co.jp/news/2016-01-06-new-year.html
https://twitter.com/flada_auxv/status/678058119147180032
興味のある人は => https://goo.gl/BGrOVn
2015年は合計19名で29回の活動がありました!
3分で紹介する
プログラミング言語 Ruby
Ruby の主な特徴
• オブジェクト指向
• ブロック
• Mix-in
• メタプログラミング
オブジェクト指向
• すべてがオブジェクト(Javaのプリミティブ型
のようなものは存在しない)
• たとえば、クラスは Class クラスのインスタンス
> 'hi'.class
=> String
> 'hi'.class.class
=>...
ブロック
• イテレータとして
• より広く、制御構造の抽象化として
['toyama', 'ishikawa', 'fukui'].each {|ken| p ken }
def open(path)
file = new(path)
yie...
Mix-in
• 制限された多重継承のようなもの
• クラスはひとつのみ継承できる
• モジュール(クラスをインスタンス化できな
くしたようなもの)は複数インクルードでき
る
メタプログラミング
• オープンクラス
• 定義済みのクラスを拡張できる
• eval族(instance_eval, class_eval, define_method…)
• 動的に文字列(or ブロック)を評価できる
• method_mi...
なによりストレスが多いとプロ
グラミングが楽しめないじゃな
いですか。
“Enjoy programming” が Ruby
の真のモットーです。
❝
Matz says:
http://srad.jp/story/03/03/14/02582...
簡潔さ + 柔軟さ = 美しさ
キレイに書けると楽しい!
わたしの Ruby の楽しみかた
“面白そう” と思ったモノを作る
大抵はくだらないやつ;-)
例:その1
重い知る
flada-auxv/omoishiru
重い知るの機能
• Twitter で認証して利用を開始すると、
• Withings の体重計に乗ったら、
• Twitter の名前が体重になる。
http://www.slideshare.net/yuusakuiwamoto/perfect-body-48193674
例:その2
Twitter のアイコンをランダムで
YRYR するやつ
flada-auxv/yryr-icon
yryr-icon の機能
• Twitter で認証して利用を開始すると、
• ランダムでYRYRなアイコン画像を設定できたり、
• 定期的に変更できる。
http://yryr-icon.herokuapp.com
実 演
Live coding
Twitter のアイコンをランダムで
富山するやつ
1. bundler で使う gem の用意
2. 最もシンプルな rack アプリケーション
3. rack ミドルウェアの登録
1. OmniAuth::Builder
2. Rack::Session::Cookie
4. Rack::R...
require 'rack'
require 'omniauth-twitter'
require 'twitter'
use Rack::Session::Cookie
use OmniAuth::Builder do
provider :t...
わたしのRubyの楽しみかた
わたしのRubyの楽しみかた
わたしのRubyの楽しみかた
Prochain SlideShare
Chargement dans…5
×

わたしのRubyの楽しみかた

わたしの Ruby の楽しみかた @flada_auxv
富山合同勉強会2016 http://toyama-eng.connpass.com/event/24840/

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir
  • Soyez le premier à commenter

わたしのRubyの楽しみかた

  1. 1. わたしの Ruby の楽しみかた @flada_auxv 富山合同勉強会2016 2016/01/30(土)
  2. 2. http://agile.esm.co.jp/news/2016-01-06-new-year.html
  3. 3. http://agile.esm.co.jp/news/2016-01-06-new-year.html
  4. 4. https://twitter.com/flada_auxv/status/678058119147180032
  5. 5. 興味のある人は => https://goo.gl/BGrOVn 2015年は合計19名で29回の活動がありました!
  6. 6. 3分で紹介する プログラミング言語 Ruby
  7. 7. Ruby の主な特徴 • オブジェクト指向 • ブロック • Mix-in • メタプログラミング
  8. 8. オブジェクト指向 • すべてがオブジェクト(Javaのプリミティブ型 のようなものは存在しない) • たとえば、クラスは Class クラスのインスタンス > 'hi'.class => String > 'hi'.class.class => Class
  9. 9. ブロック • イテレータとして • より広く、制御構造の抽象化として ['toyama', 'ishikawa', 'fukui'].each {|ken| p ken } def open(path) file = new(path) yield(file) file.close end open(path) {|file| file.write('hi') }
  10. 10. Mix-in • 制限された多重継承のようなもの • クラスはひとつのみ継承できる • モジュール(クラスをインスタンス化できな くしたようなもの)は複数インクルードでき る
  11. 11. メタプログラミング • オープンクラス • 定義済みのクラスを拡張できる • eval族(instance_eval, class_eval, define_method…) • 動的に文字列(or ブロック)を評価できる • method_missing • メソッド探索に失敗したときの振る舞いを定義できる
  12. 12. なによりストレスが多いとプロ グラミングが楽しめないじゃな いですか。 “Enjoy programming” が Ruby の真のモットーです。 ❝ Matz says: http://srad.jp/story/03/03/14/0258247/
  13. 13. 簡潔さ + 柔軟さ = 美しさ キレイに書けると楽しい!
  14. 14. わたしの Ruby の楽しみかた
  15. 15. “面白そう” と思ったモノを作る 大抵はくだらないやつ;-)
  16. 16. 例:その1 重い知る flada-auxv/omoishiru
  17. 17. 重い知るの機能 • Twitter で認証して利用を開始すると、 • Withings の体重計に乗ったら、 • Twitter の名前が体重になる。
  18. 18. http://www.slideshare.net/yuusakuiwamoto/perfect-body-48193674
  19. 19. 例:その2 Twitter のアイコンをランダムで YRYR するやつ flada-auxv/yryr-icon
  20. 20. yryr-icon の機能 • Twitter で認証して利用を開始すると、 • ランダムでYRYRなアイコン画像を設定できたり、 • 定期的に変更できる。 http://yryr-icon.herokuapp.com
  21. 21. 実 演 Live coding
  22. 22. Twitter のアイコンをランダムで 富山するやつ
  23. 23. 1. bundler で使う gem の用意 2. 最もシンプルな rack アプリケーション 3. rack ミドルウェアの登録 1. OmniAuth::Builder 2. Rack::Session::Cookie 4. Rack::Request オブジェクトを作る 5. コールバックURLへのアクセスをハンドリング 6. env からアクセストークンを読み出す 7. Twitter API クライアントのインスタンス化 8. 画像アップロード API の実行 { 'omniauth.auth' => { 'credentials' => { 'token' => xxx, 'secret' => xxx } } } burisyabu kitokito_kun kurobe_dam
  24. 24. require 'rack' require 'omniauth-twitter' require 'twitter' use Rack::Session::Cookie use OmniAuth::Builder do provider :twitter, 'xxx', 'xxx' end run -> (env) { req = Rack::Request.new(env) case req.path when '/auth/twitter/callback' token, secret = env['omniauth.auth']['credentials'].values_at('token', 'secret') client = Twitter::REST::Client.new do |config| config.consumer_key = "xxx" config.consumer_secret = "xxx" config.access_token = token config.access_token_secret = secret end toyama = %w(burisyabu kitokito_kun kurobe_dam).sample client.update_profile_image(File.open("./#{toyama}.jpeg")) [200, {"Content-Type"=>'text/plain'}, [toyama]] end }

×