• About Cosense
  • Help
  • Log in
Ruby on Browser Samples
Card
  • Display by
  • Card
  • Table
Modified
  • Sort by
  • Modified
  • Created
  • Last visited
  • Most linked
  • Most viewed
  • Title
  • Ruby on Browser

    https://rubyonbrowser.ongaeshi.me で動かすことのできるサンプルコード集です。


    各ページ内の ▶Run をクリックするとサンプルコードを実行することができます。


  • 任意個のランダムな配列を作る

    https://rubyonbrowser.ongaeshi.me/?q=IYAgvCAUCMB0sFYAMBKWAXA9gfWAKACIBvEAkAahGFgGdgBbABwBsBTSatgOwHN0ALNACtMASy6QCAGlIoKpEAF8CQA


  • HTMLアンエスケープ

    任意のHTMLをアンエスケープして表示する文字列をURLに渡せる形式に変換する。 ▶


    CGI.unescapeHTML


  • 文字数カウンタ

    文字をUTF-8で読み込んでString#length。文章はRubyとはより。


    [** [▶Run https://rubyonbrowser.ongaeshi.me/?q=MQUwdgxg9gJglmA5gLgAQFUAqAxAtADgCgBnAFwCdUBeVAHloFEB5AZUICUBXAIwE9ALBkD2DICsGQDoMXPoMDKDIGSGYYGsGQF1ygdBthgOwZA5gyB1BkDhDIDEGQNIMgfH%2BOPXmsCrDIEKGQM8Mgw


  • UUIDの生成

    https://docs.ruby-lang.org/ja/latest/class/SecureRandom.html#S_UUID


    ▶Run


    require 'securerandom'


  • JSONの読み書き

    https://docs.ruby-lang.org/ja/latest/class/JSON.html のサンプルコードを実行。


    [** [▶Run https://rubyonbrowser.ongaeshi.me/?q=E4UwjgrglqAEBEArAzgewHbwFDIC7CnQHMBeAHjICkBlAeQDksBvBAQ3gC4BGAGgQCNOAJj7wAxpwDMsAL5YaDLAAtWyJbBKwWrDrF6x%2BukbDG7pc%2BXXoBtPAWIBdAHRiANquSwv3n758BiDQA%2B


  • Runボタンを生成するRubyスクリプト

    このRunボタンのURLをブックマークなどに保存しておき、make_run_buttonの引数を任意のものに置き換える。出力ウィンドウの結果をコピペしてScrapboxに貼り付け。


    [** [▶Run https://rubyonbrowser.ongaeshi.me/?q=CYUwZgBAtghg1iA%2BgJwK4DtECNUBdcD26AFKsgDYCUAUBBAEQDaAVMxI4G2kAShhAMQBvMuQC%2BAXTH1qIdMGrVYCFBmx5CJegAt8ABwDOALgD0RtFgCeRLMgIB3PSGQA6IgHMYIPZoCWTqCCMAfgB


  • ローカル変数

    変数と定数より。


    1. ローカル変数のスコープは、宣言した位置からその変数が宣言されたスコープやブロックの終わりまで。


    2. 宣言は、たとえ実行されなくても宣言したことになる(例: 後置if)


    [** [▶Run https://rubyonbrowser.ongaeshi.me/?q=MQAgjAdCi3DIPwyNUMhrhkJCagHU0HYMhOhkM0MtDrDIPYMggAyDF2oABRg6gyD6DILLygdv6DSDIJEMgugzpqAyDOYKoMgMQxUAoUIDWGaIGGGQPUMRQIcMgXoYxgSYZAWdqBK-yKA-BioEJgS4ZMAek


  • アナグラム

    文字を実行するたびに並び替え。文字列の配列を作るときは%wを使うと便利。 ▶Run


    puts %w(あ か い し ゅ う い ち)


    .sample(8)


  • Hello

    Hello [** [▶Run https://rubyonbrowser.ongaeshi.me/?q=MYGwhgzhAEASCmIQHsBQ1oBN4DNoEsA7fAF3zBHwC94AKQ6AXmgGYAaaMAJy7AE8m0ANoAiBEmQiOIwMoMgZIZA1gyBDBkD2DFOgjAvBuAAPZEBdAJToM0AAINmhYxlPdeA5nf7H4hTMePY8AC0


    class Hello


  • File APIのサンプルコードがそのまま動く

    File#delete のサンプルコードがそのまま実行できる。(ブラウザ上の仮想ファイルシステムに対して実行するので実際のファイルにはアクセスできません) [** [▶Run https://rubyonbrowser.ongaeshi.me/?q=JIeQdA7gTg


    IO.write("test.txt", "test")


  • Runボタンのデザイン検討

    こんな感じかなぁ。アイコンはRubyのやつに変更するけど。


    [/icons/Google.icon [Run https://rubyonbrowser.ongaeshi.me/?q=E4UwjgrglqAEDkFhXgKBAOwMawLywFUAlASQDpMsB7AExAH0B3Z%2BgMyuAFt7rOAHKhkwAXABTwiEAEYBPWICuGQKsMgQoZANwyBnhkCdDID2GQNMMgU4ZARQyBrhngBKV


  • 今日の時刻を取得

    inで時差を設定する。 ▶Run


    Time#at


  • byteからKiB, MiB, GiBに変換

    KiB(2^10)、MiB(2^20)、GiB(2^30)、TiB(2^40) ... なので階乗演算子を使うと分かりやすい。計算式が違うだけで10進数を16進数、2進数に変換とやっていることは大体同じ。 [** [▶Run https://rubyonbrowser.ongaeshi.me/?q=CYUwZgBARgTA1gCigTwC4gDQQHYEoBQEESaIEA9MTBAFQ064


    def b2k(byte, n)


  • 10進数を16進数、2進数に変換

    to_s(16)で16進数、to_s(2)で2進数形式に変換した文字列を出力する。 [** [▶ https://rubyonbrowser.ongaeshi.me/?q=CYUwZgBGAUB2CuBbAlAKAhADvALgZwgUXS1wICIAGAD3IgGpCkA6HAewH09oBGANjQZs%2BCFQBGdRkVaduAJjQhYwVKhhyArBrQxKYnpUPIgA


    def f(num)


  • ベンチマークをとる

    Benchmarkモジュールを使う。ベンチマークを使いたい処理をブロックに渡して実行する。 [** [▶ https://rubyonbrowser.ongaeshi.me/?q=E4UwjgrglqAEDkAjEA7AxgCwLYENgGt4AoIlWAXlgFYAGOmkgY


    require 'benchmark'


  • RubyVMの情報を取得

    RubyVMのスタックサイズや命令シーケンスの名前の一覧、ビルドオプションなど内部情報へのアクセス手段を提供する。 ▶


    class RubyVM


  • URLエンコード

    任意の文字列をURLに渡せる形式に変換する。 [** [▶ https://rubyonbrowser.ongaeshi.me/?q=E4UwjgrglqAEDkFhXgKAA6wKoCUCSAdCAHYDGA9gCYgD6A7gzQGbnAC2NFb65xJALgAp4OCACMAnrEBXDIFWGQIUMgG4ZAzwyBOhkB7DIGmGQKcMgIoZA1wzwAlKgDEsALwA%


    URI.encode_www_form_component


  • URLデコード

    URLエンコードされた文字列を元に戻す。[** [▶ https://rubyonbrowser.ongaeshi.me/?q=E4UwjgrglqAEDkFhXgKBAOwMawLywFUAlASQDpMsB7AExAH0B3Z%2BgMyuAFt7rOAHKhkwAXABTwiEAEYBPWICuGQKsMgQoZANwyBnhkCdDID2GQNMMgU4ZARQyBrhngBKVAGI


    URI.decode_www_form_component


  • 任意回数の繰り返しにはtimes

    [Run on Ruby on Browser https://rubyonbrowser.ongaeshi.me/?q=MwOgLglgtgpgzgAgN4IA4FcyIEQAkYA2BA9gDQIDqxATgQCYCE2CAvgggMQL5FmU30GCQBYMwQDIRgLN9AIgyAzBkAWEYC5PQKoMgGIZA0QyAgBgBQABnDR4yNJhw8S5KrUbM2nBIFV


    https://docs.ruby-lang.org/ja/latest/class/Integer.html#I_TIMES


  • マインスイーパ風に文字をランダムに並べる
  • カードは1枚110円で、全部で55種類、全てゲットするまでのシミュレーション
  • 文字列を任意のケースに変換
  • スネークケース

    foo_bar_baz のように全て小文字で単語区切りをアンダーバーで繋いだもの。Rubyのファイル名や変数名は基本スネークケース。


  • バイナリファイルの読み書き
  • zip(テスト中)
  • 文字列を含む行を抽出
  • Method << callable -> Proc
  • マジックコメント設定すると文字列がUTF-8で扱える
  • settings

    .line .image {


    box-shadow: 4px 4px 12px -4px #000;


    }


    .line .strong-image {


    box-shadow: 4px 4px 12px -4px #000;


  • ファイルを読むときにUTF-8で読み込む

    Encoding.default_external=を設定。(Ruby 3.0なので、本当はデフォルトで設定されているのが望ましい)


    Encoding.default_external = "utf-8"


    File.read("foo.rb")


    .gsub(/Foo/, "Bar")


    関連: マジックコメント設定すると文字列がUTF-8で扱える


  • ファイルの内容をハッシュに格納する

    files = {}


    Dir.entries(".").map do |f|


    files[f] = File.read(f)


    end


    files


32 pages
  • Ruby on Browser
  • 任意個のランダムな配列を作る
  • HTMLアンエスケープ
  • 文字数カウンタ
  • UUIDの生成
  • JSONの読み書き
  • Runボタンを生成するRubyスクリプト
  • ローカル変数
  • アナグラム
  • Hello
  • File APIのサンプルコードがそのまま動く
  • Runボタンのデザイン検討
  • 今日の時刻を取得
  • byteからKiB, MiB, GiBに変換
  • 10進数を16進数、2進数に変換
  • ベンチマークをとる
  • RubyVMの情報を取得
  • URLエンコード
  • URLデコード
  • 任意回数の繰り返しにはtimes