etc
- Ruby プログラムをエラーメッセージ付きで終了
- module function Kernel.#abort
- いわゆるprint文デバッグと併用するのに便利
- エンコードした文字列を返す
- encode, encode! (String)
- Windows 上で Shift-JIS を取り扱う際は Winodws-31J を指定すること
例外処理
Windowsで起動させる方法いろいろ
Ocraでexe化してあるのを前提として…
- バッチファイル
- スクリプトに渡す引数は、バッチファイルの先頭に変数で書いておけばいい
- 配列が無いので、不特定数の引数が設定しにくい
- 慣れている人にはこれで十分だが、初心者にはハードルが高い
- WSH(VBScript,JScaript)
- GUIで引数が書き込める
- ウィンドウのレイアウトは設定できない
- 複数の引数を指定しようとしたら、引数ごとにウィンドウを出すので、引数入力がわかりにくい
- WSHで誰でも簡単プログラミング(WSH入門)
- GUIで引数が書き込める
- Powerscript
- バッチファイルよりもできることが多い
- Powerscriptを起動するのに実行許可を求められるのが手間
- Ruby/Tk
- Ruby/TkでGUIを作るのが、CUIに慣れていない人には適している
- RubyGnomeでもいいが、わかりやすい日本語資料が少ない…
- 参考リンク
map
- 要素ひとつひとつにブロックを実行する
- リファレンス→ map, map! (Array)
- 配列の中の要素すべてを文字列→数値にしたり、数値を演算したりするのに便利
-
mojiretsu.map!{|m| m.to_i}
で、文字列→数値に換えられる- もっと短く書くと
mojiretsu.map!(&:to_i)
- もっと短く書くと
-
文字コード
-
Rubyでの日本語対応スクリプトの基本スタイル
- Ruby1.8系とRUby1.9系以降では、コード冒頭の文字コード指定部分の書き方が異なる
- Windows で使用している Shift-JIS は、一般的な Shift-JIS とは微妙に異なる
- Windows で Shift-JIS : Windows-31J
- 一般的な Shift-JIS : shift_jis
-
Rubyでの日本語対応スクリプトの基本スタイル
- スクリプトファイルの頭に書いておくべき文字コード指定の役割を説明
delete
- 配列から指定したものと同じ要素をすべて削除
-
"flag"
という要素をすべて消したい時はmojiretsu.delete("flag")
のように書く - リファレンス→ delete (Array)
RubyGem
Ruby用のパッケージ管理システム。
色んなものがアップロードされていて、実に便利。
車輪の再発明を防止する意味でも、積極的に使いたい。
-
初心者は覚えておきたいRubygemsのコマンドまとめ
- 使い方はここを読んでおけば困らない
-
RubyGems.org
- ここで欲しい機能を英単語で検索すると、色々出てくる
- xlsx や csv や twitter など、自分が欲しいと思っているものは、何かしらの形で既に作られている
- インストールできない?
- 職場の環境によっては、プロキシを通す必要がある
- gemコマンドを使う前に、「set http_proxy=プロキシのURL」「set https_proxy=プロキシのURL」を実行しておく
- 環境変数で設定しておいてもいい
- Ruby Gem のプロキシを設定する (Windows)
- 職場の環境によっては、プロキシを通す必要がある
標準搭載デバッガ
Windows 上だと文字コードの関係なのか、デバッガがまともに動かなかった。
Cygwin 上だと問題なく動いた。謎。
多次元配列の初期化方法
[[0,0,0],[0,0,0]]
のような多次元配列を作る時は、
arr = Array.new(2){ Array.new(3,0) }
のように、ブロックを使って書くこと。
arr = Array.new( 2, Array.new(3,0) )
のように書くと、
要素への変更が、本来変更する予定でない要素にも影響してしまう。
詳しくは→Rubyで二次元配列の初期化
コマンドプロンプト上でちょっと試す
-
ruby
でrubyを起動 - rubyスクリプトを書いていく
- 書き終わったら
Ctrl-z
- 結果が出て終わり
rcairo
2次元画像描画ライブラリの cairo を Ruby で使う為のライブラリ。
GUI
Ruby/GNOME
-
Ruby-GNOME2 Project
- ↑ここのチュートリアルをひと通りやると、大体わかる
- ドラッグ&ドロップの例
-
複数行テキスト表示ウィジェットの概要
- 複数行のテキストバッファ(ビュー)にスクロールバーを付ける例
-
『入門GTK+』のPDF
- Rubyではないので、書き方に注意
- Ruby/GNOMEをocraでexe化
-
ocra hogehoge.rb
で問題なし - 簡単なスクリプトでも、ビルドはかなり時間が掛かる
- GNOMEの基本的な機能一式を含んでいるからか、exeのサイズは結構大きめ
-
-
Gemのgtk3ライブラリ紹介ページ
- 最新バージョンの履歴が見られる
-
GTK+ 3 Reference Manual
- 全編英語でRubyの書き方ではない
- GTK2とAPIの書き方が結構異なるので、参考にならないかも
- いっそのこと、GTK3を使ってみるべき?
-
Ruby-GNOME2 の開発メーリングリスト
- 過去ログを読むと、GTK+ 3の機能をすべて使えるようになっているらしい
- もうGTK+3でいいか…
Ruby/Tk
- Ruby de GUI
- Ruby/Tk入門
- RubyでGUIを作る (Tcl/Tk)
- 逆引き Ruby/Tk
- 永井氏のRuby/Tk
- Ruby/Tk の動向
-
Ruby/TkでTk拡張を使っているRubyスクリプトをexe化
-
ocra hoge.rb C:\Ruby193\lib\tcltk\ --windows --no-autoload
のように書く - ↑の書き方は Windows の Ruby Installer をインストールする時に、一緒に Ruby/Tk をインストールした場合の書き方かも
-
- Ruby/Tk でドラッグ&ドロップをするには、標準の Ruby/Tk だけでは実現できない?
- Ruby/GNOMEを使うべきか…
Rabbit
-
gem install rabbit
-
Markdown形式でテキスト書く
-
rabbit hoge.md
- いきなりウィンドウが表示されて、プレゼンができる
-
rabbit -p -o hoge.pdf hoge.md
- pdfを出力
- これだとpdfをConfluenceに貼り付けた時、文字化けする
- おそらくPDFに文字コードをそのまま格納しているから
- 全ページ画像化して、pdf_asでPDFにまとめる(煩雑)
- うさぎが歩くのをやめさせたい
- rabbit-slideで変えるのか?
- うさぎが歩くのをやめさせたい
-
16:9にする
- サイズの -w と -h を変える
-
rabbit -w 1280 -h 720 hoge.md
などのようにすると 16:9 になる - フルHDだとプレビューが大きすぎるので
-w 640 -h 360
などでプレビューするといい
-
rabbit のコマンドを使うたびに
DL is deprecated, please use Fiddle
と表示される- 表示されてていても、今のところは実害無し
- Ruby2.0 から dll や so などのライブラリを使うのが非推奨(desprected)になり、Fiddle を使うよう Ruby 側から勧められている
- Windows の Ruby 環境で Rabbit を使うから?
- Ruby2.0 から dll や so などのライブラリを使うのが非推奨(desprected)になり、Fiddle を使うよう Ruby 側から勧められている
- 参考→ https://teratail.com/questions/1411
- 表示されてていても、今のところは実害無し
ReVIEW
テキストマークアップ型の原稿フォーマット。
ReVIEW 記法でテキストファイルを作成し、
それらを ePUB だけでなく
PDF(LaTeX)、XHTML、XML といったマルチフォーマットに出力可能。
Emacs 用の支援モードがあるらしい。
MS-Excel
xlsx や xlsm といったファイルの中身を取り扱うのに用いる。
使うライブラリは roo が評判良いが、
xlsx/m のデータの中身だけを使いたいのであれば、
一旦 csv に変換してから、後述の CSV ライブラリを使った方が楽。
というのも roo でセル内容を直接読もうとすると、
セルの内容が浮動小数点型、文字列型、日付型、日時、関数型、などの型によって
実際に Excel 上で見る時と異なる値を取得してしまう。
例えば、数値は実数型なのに浮動小数点型ですべて取り扱ってしまうので、
「.0」を付けてほしくないのに付けてしまう。
roo の csv 出力はここら辺を慮って作られているのか、
Excel で表示されるままで出力してくれることが多い。
但し Ruby が 0.0001 より小さい数値を 1.0e-04 のように表記してしまうので、
それが嫌な人は csv に出力してから、別途加工する。
-
roo-rb
- roo の本家ページ
- README.md に、インストール方法と使い方のほとんどが簡潔に書かれている。英語が苦手でも、そんなに難しい内容ではないので、目を通しておくのがオススメ
-
roo-1.2.3 Documentation
- roo のリファレンス
- コマンドに迷ったらここを参照
- 英語だとよくわからない場合の日本語参考ページ
CSV
読み込み、書き出し、共に楽で便利。
使わない手は無い。
- Windows で使う場合は Shift-JIS で
- Windows だと、読み込む CSV ファイルを一旦 Shift-JIS に変換する必要がある
- もし Shift-JiS に変換しないと、読み込めない
- nkf で変換してから読み込むのが、確実で楽
- CSV を文字コード変換しつつロード
- Rubyで日本語の入ったcsv(utf-8)を使おうと思ったらinvalid byte sequence in Windows-31Jエラーが出たのでメモ
- TSVやCSVファイルの読み込み方法の例
- CSV.table を使うとヘッダが取得できて便利
-
Hash から文字列でもシンボルでも値を取り出す
- 一緒に使うと便利
- class CSV
JSON
読み込んでハッシュにするのが、とても楽。
書き出しはまだ使ったこと無し。
XML
XML を読み書きする標準ライブラリ rexml が便利。
Windowsでのexe化
パソコンに Ruby をインストールしていない人にも使ってもらえるように、
実行ファイル(exe)化するのに ocra を用いる。
-
larsch/ocra
- ocra の本家ページ
- インストールや使い方は README.md を参照
- Ruby2.1.1 にて ocra でexe化が正常に行えなかった
- 別のインストーラパッケージで 2.0.0 をインストールしたら、ocra でexe化は問題なく行えた
- Ruby のバージョンが問題なのではなく、インストーラに問題があるような気がする
- http://qiita.com/t_oginogin/items/9f989f9b5dc5b3e08994