Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Beginning Ruby with Markdown and more

wtnabe
August 18, 2012

Beginning Ruby with Markdown and more

テキストフォーマッタで始めるRubyとGemの基礎 2012-08-18(Sat) kanazawa.rb meetup #1

wtnabe

August 18, 2012
Tweet

More Decks by wtnabe

Other Decks in Programming

Transcript

  1. テキストフォーマッタで学ぶ
    RubyとGemの基礎
    2012-08-18 ( Sat )
    @wtnabe
    ITビジネスプラザ武蔵

    View Slide

  2. お品書き
    Markdown の紹介
    Ruby / Rubygems / GitHub and more
    Rubyの動かし⽅ / リファレンス
    ライブラリを使おう
    Markdown の変換

    View Slide

  3. Markdown

    View Slide

  4. Markdown
    Daring Fireball: Markdown
    blog::2310 » Markdown⽂法の全訳

    View Slide

  5. Markdown
    メールでも使える簡単な書式からHTML
    への変換ルールを決めたもの
    テーブルなどいろいろ⾜りない
    最近よく聞くけどけっこう古い

    View Slide

  6. ⾒出し
    ======
    1. Ordered List
    * Unordered List
    - Unordered List
    よく bullet list と呼ぶ。- でも * でもよい
    階層はインデントで表現

    View Slide

  7. Markdownは亜種に注意
    PHP Markdown Extra
    GitHub Flavored Markdown - Introduction
    etc
    それぞれできることが異なる。

    View Slide

  8. Markdownを使える場所
    GitHub
    Stack Overflow
    Tumblr
    ⼀部エディタやメモアプリなど

    View Slide

  9. Rubyと関連⽤語

    View Slide

  10. Rubygems
    Gem
    GitHub
    Git

    View Slide

  11. Ruby
    純粋オブジェクト指向
    ⽂字 'a' も 数字の 1 もオブジェクト
    多少スピリチュアルな⾔語
    「たのしい」とか「気持ちいい」

    View Slide

  12. Rubygems
    Rubyのパッケージ管理システム
    パッケージホスティングサイト
    rubygems.org
    いっぱいあるパッケージ(Gem)の総称

    View Slide

  13. Gem
    パッケージそのもの
    ex) rails gem, nokogiri gem
    パッケージ管理コマンド
    gem -v
    ※ Ruby 1.9から標準なのでインストール⽅法などは割愛

    View Slide

  14. 「gemを⼊れる」
    gemパッケージを
    gemコマンドなどを使って
    インストールする

    View Slide

  15. GitHub
    Railsで⼀気に有名に
    Gitリポジトリのホスティングサービス
    Rubyistはみんな使ってる
    つまり便利なものはここにある
    つまり便利なものはここにある

    View Slide

  16. Git
    Linux開発のために作られたDVCS
    branchingとmergeが速くて優秀
    多くの操作がcommitとして残り、そのcommitを編集
    できる
    コマンド体系や考え⽅が独特 ...
    などなどあるけど、

    View Slide

  17. 要するに

    View Slide

  18. Git
    GitHubを使うために必要
    を使うために必要
    Gitを使いたいだけならGitHub以外にも
    Rubyist的にはGitHubありき

    View Slide

  19. Rubyの動かし⽅

    View Slide

  20. Rubyコマンド
    $ ruby -v
    ruby 1.9.2p290 (2011-07-09 revision 32553) [i3

    View Slide

  21. スクリプトを実⾏
    $ ruby scriptfile

    View Slide

  22. ヘルプを⾒る
    $ ruby --help
    Usage: ruby [switches] [--] [programfile] [arg
    -0[octal] specify record separator (\0
    -a autosplit mode with -n or -p
    -c check syntax only
    -Cdirectory cd to directory, before exec
    -d set debugging flags (set $DE
    -e 'command' one line of script. Several
    ....

    View Slide

  23. よく使うオプションを抜粋
    -c check syntax only
    -d set debugging flags
    (set $DEBUG to true)
    -e 'command' one line of script.
    Several -e's allowed.
    Omit [programfile]
    -rlibrary require the library,
    before executing your script

    View Slide

  24. 具体的なRubyコード

    View Slide

  25. 基本形
    オブジェクト.メソッド()
    JavaScriptと同じです!
    ※ 細かい⽂法はやりません!

    View Slide

  26. クラスを使う
    t = Time.new()
    # 現在の⽇時を持つTimeオブジェクト
    t + 1
    # => 1秒後のTimeオブジェクト

    View Slide

  27. クラス
    ⼤⽂字から始まる
    いろんな機能とデータのカタマリ
    new クラス() じゃない

    View Slide

  28. クラスの例
    String
    Array / Hash
    Fixnum, Bignum, Float, ...
    Time, Date, DateTime
    ...

    View Slide

  29. どうやって調べるの!?

    View Slide

  30. リファレンス

    View Slide

  31. リファレンスの準備⽅法
    るりま ( Ruby Reference Manual )
    ri
    chm
    yard / pry

    View Slide

  32. るりま
    基本は Web
    ドキュメント (本家サイト)
    最速Rubyリファレンスマニュアル検索!
    | るりまサーチ

    View Slide

  33. ri
    標準で⼊ってる
    rvm docs generate
    今度からrvmでruby⼊れるとき
    はdocument忘れないであげたい - あー
    ありがち(2012-01-21)

    View Slide

  34. ri
    $ ri Array.include\?
    = Array.include?
    (from ruby site)
    -----------------------------------------
    ary.include?(obj) -> true or false
    ---------------------------------------
    Returns true if the given object is
    present in self (that is, if any
    object == anObject), false otherwise.
    ...

    View Slide

  35. chm
    ドキュメント
    Rubyリファレンスマニュアル chm版リミ
    ックス

    View Slide

  36. ライブラリを使おう

    View Slide

  37. もう⼀度Time
    初期化⽅法
    Time.now()
    Time.at( unix time )
    Time.local( year, mon, day, hour, ...)
    Time.local( sec, min, hour, min, ...)

    View Slide

  38. 現在時刻以外は不便

    View Slide

  39. timeライブラリ
    標準添付
    様々な書式の⽇時情報を⼊出⼒できる

    View Slide

  40. require 'time'
    t = Time.parse('2012-08-18 14:00')
    t.httpdate()
    # => "Sat, 18 Aug 2012 05:00:00 GMT"

    View Slide

  41. 読みやすい!

    View Slide

  42. ここまでのまとめ
    プログラムの実⾏
    ruby scriptfile
    基本の書式
    オブジェクト.メソッド()

    View Slide

  43. ここまでのまとめ
    オブジェクトの⽣成
    Klass.new()
    ライブラリの読み込み
    require

    View Slide

  44. テキストフォーマッタと
    実際のgemの使い⽅

    View Slide

  45. gemの探し⽅
    gem search -r KEYWORD
    「github ruby キーワード」でググる
    ruby-toolbox.com
    Rubyistのブログ探す
    Rubyistに聞く

    View Slide

  46. gemの探し⽅
    rubygemsはキラキラネーム
    ⼀度聞けば忘れないが探しにくい
    特にPerlの⼈にdisられます :-)

    View Slide

  47. gemの探し⽅
    ruby-toolboxは便利だけどRails寄り
    地味なやつは地味に探すことになる

    View Slide

  48. Markdown⽤のgem

    View Slide

  49. 実際に探してみよう
    gem search -r markdown
    ruby-toolbox で markdown

    View Slide

  50. Markdown
    redcarpet ( github / C )
    rdiscount ( C )
    kramdown
    maruku
    BlueCloth

    View Slide

  51. コマンドとして使う

    View Slide

  52. ライブラリとして使う

    View Slide

  53. #! /usr/bin/env ruby
    # -*- coding: utf-8 -*-
    require "redcarpet"
    puts Redcarpet::Markdown.
    new(Redcarpet::Render::HTML).
    render(<ここに
    ======
    * markdownの⽂法で
    * テキストを書くことができます
    EOD

    View Slide

  54. Now, You can
    Markdown で書く練習
    つまり GitHub で書く練習

    View Slide

  55. Come on, join us :-)

    View Slide

  56. Thank you

    View Slide

  57. Appendix

    View Slide

  58. Gemのある場所
    Rubygems.org
    Github
    ⾃前ホスティング
    実はGemサーバは簡単に作れる

    View Slide

  59. Gemのホスティング先の追加
    $ gem sources -a RESOURCE_URI

    View Slide

  60. リファレンス
    るりまを利⽤するアプリ
    yhara/myrurema
    hibariya/ruremai

    View Slide

  61. リファレンス
    yard-doc-core gem
    YARD - A Ruby Documentation Tool
    pry-doc gem
    Pry - an IRB alternative and runtime
    developer console

    View Slide

  62. Textile
    もう⼀つRubyで有名な書式
    これまた古い(開発開始2001年/正式アナ
    ウンス2003年)
    HTMLっぽい⽣々しさがだいぶ残ってる

    View Slide

  63. Textile
    h1. ⾒出し
    p(class) 段落
    "リンクテキスト":url

    View Slide

  64. Textileを使える場所
    GitHub
    Redmine
    atnd.org beta

    View Slide

  65. Textileのgem

    View Slide

  66. RedCloth
    BlueCloth
    textile なんとかは軒並み RedCloth 依存

    View Slide

  67. RedCloth
    事実上の標準
    native extension
    redcloth コマンドが⼊る

    View Slide

  68. Resources
    Rubyist Magazine - るびま
    Stack Overflow
    QA@IT
    Qiita[キータ]

    View Slide

  69. Resources
    Rails Hub - @IT
    Ruby on Rails Screencasts - RailsCasts
    ASCIIcasts - Recent Episodes

    View Slide

  70. Resources
    O'Reilly, 技術評論社, オーム社, ソフトバ
    ンククリエイティブ, ...
    達⼈出版会
    The Pragmatic Bookshelf

    View Slide