Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Tapl読書会やってみた
Next
Download to read offline and view in fullscreen.

Share

わたしのRubyの楽しみかた

Download to read offline

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

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

わたしの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 }
  • ryupechi

    Jun. 1, 2016
  • ssusere6ec98

    Feb. 1, 2016
  • marcarzei

    Jan. 31, 2016
  • 2011to

    Jan. 31, 2016
  • sportsgalaxy

    Jan. 31, 2016
  • minpoudai117

    Jan. 31, 2016
  • MasashiKitagawa1

    Jan. 31, 2016
  • HidekiSeimiya

    Jan. 31, 2016
  • malikabdulraufmalik

    Jan. 31, 2016
  • tacarz

    Jan. 31, 2016
  • YuukiMasuda

    Jan. 31, 2016
  • yuyawata

    Jan. 31, 2016
  • ssuser459a6d

    Jan. 30, 2016

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

Views

Total views

9,627

On Slideshare

0

From embeds

0

Number of embeds

1,463

Actions

Downloads

15

Shares

0

Comments

0

Likes

13

×