Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Ruby

概要

Ruby関連情報

Ruby導入

内容 リンク
Windows7環境にruby1.9.3-p0をインストール http://d.hatena.ne.jp/tbpg/20120115/1326608400
AptanaStudio3をインストールしてRubyの開発環境を構築 http://d.hatena.ne.jp/tbpg/20120312/1331570441

Javaプログラマーが学ぶRuby基礎

基礎
内容 リンク
Rubyの実行 http://d.hatena.ne.jp/tbpg/20120504/1336138684
riで標準ライブラリのドキュメント参照 http://d.hatena.ne.jp/tbpg/20120504/1336141682
コメント http://d.hatena.ne.jp/tbpg/20120128/1327764891
RDocによるドキュメンテーション
内容 リンク
RDoc http://d.hatena.ne.jp/tbpg/20120129/1327852287
RDocの編集機能 http://d.hatena.ne.jp/tbpg/20130403/1365003198
RDocでドキュメントコメントの一部を出力対象外にする http://d.hatena.ne.jp/tbpg/20130918/1379513486
YARDによるドキュメンテーション
内容 リンク
YARDのインストールについて http://d.hatena.ne.jp/tbpg/20130719/1374247300
Ruby/TKによるGUI
内容 リンク
TKでRubyからGUIを表示 http://d.hatena.ne.jp/tbpg/20131112/1384272011
定数
内容 リンク
定数 http://d.hatena.ne.jp/tbpg/20120203/1328282590
条件分岐
内容 リンク
if文 http://d.hatena.ne.jp/tbpg/20120203/1328282632
unless文 http://d.hatena.ne.jp/tbpg/20120203/1328282780
条件分岐 case http://d.hatena.ne.jp/tbpg/20120206/1328540839
条件その他 三項演算子・if修飾子 http://d.hatena.ne.jp/tbpg/20120206/1328541230
繰り返し/その1 while・untile・for http://d.hatena.ne.jp/tbpg/20120207/1328625518
繰り返し/その2 Range・each http://d.hatena.ne.jp/tbpg/20120207/1328625560
繰り返し/その3 times・upto・downto http://d.hatena.ne.jp/tbpg/20120207/1328625604
繰り返し/その4 loop・break・next・redo・while修飾子 http://d.hatena.ne.jp/tbpg/20120207/1328625621
breakに戻り値を指定 http://d.hatena.ne.jp/tbpg/20131108/1383922905
属性
内容 リンク
属性の設定 http://d.hatena.ne.jp/tbpg/20120505/1336242063
Module
内容 リンク
Module http://d.hatena.ne.jp/tbpg/20120227/1330356532
ActiveSupport::Concernによってモジュールのクラスメソッドincludeを簡潔にする http://d.hatena.ne.jp/tbpg/20130714/1373806263
ブロック
内容 リンク
ブロック http://d.hatena.ne.jp/tbpg/20120512/1336837653
ブロック 二種類のブロック記述の使い分け http://d.hatena.ne.jp/tbpg/20120504/1336144555
対話型インターフェース
強化版irbことpryについて http://d.hatena.ne.jp/tbpg/20130515/1368625737
事前定義変数
内容 リンク
事前定義変数 例外、パターンマッチ、入出力変数 http://d.hatena.ne.jp/tbpg/20130414/1365959113
事前定義変数 実行環境変数、標準オブジェクト、グローバル定数 http://d.hatena.ne.jp/tbpg/20130421/1366557383

Bundler

内容 リンク
Bundlerで開発環境ごとのgemインストールを統一 http://d.hatena.ne.jp/tbpg/20130530/1369925448

ライブラリ

内容 リンク
Rubyのライブラリに関して http://d.hatena.ne.jp/tbpg/20120509/1336576656

秀丸Ruby

内容 リンク
秀丸Rubyのコーディングを行う準備 http://d.hatena.ne.jp/tbpg/20120115/1326623398
秀丸の範囲選択内容をRubyで処理して置換する方法 http://d.hatena.ne.jp/tbpg/20120115/1326633970
Ruby-秀丸マクロ連携 日付減算 http://d.hatena.ne.jp/tbpg/20120124/1327415055
秀丸マクロ+RubyRubyコメントアウトマクロを作成 http://d.hatena.ne.jp/tbpg/20120131/1328029243

実装サンプル

内容 リンク
日付減算処理 http://d.hatena.ne.jp/tbpg/20120115/1326638950
日付減算処理のクラス化 http://d.hatena.ne.jp/tbpg/20120120/1327082337
CSS3のベンダープリフィックス付与スクリプトを作成する http://d.hatena.ne.jp/tbpg/20120205/1328458875
郵便番号の正規表現 http://d.hatena.ne.jp/tbpg/20120219/1329663215
Rubyファイル操作 http://d.hatena.ne.jp/tbpg/20120226/1330267242
閏年の判定 http://d.hatena.ne.jp/tbpg/20120301/1330622757
ファイルの一括置換機能の実装 http://d.hatena.ne.jp/tbpg/20120326/1332783503
ファイル内の指定文字列で始まる行の削除 http://d.hatena.ne.jp/tbpg/20120430/1335754657
複数項目のor比較。SQLのinをJavaで再現 をRubyで書いてみた http://d.hatena.ne.jp/tbpg/20120812/1344787603
Rangeを利用したcase文 http://d.hatena.ne.jp/tbpg/20130101/1357014093
Webスクレイピング http://d.hatena.ne.jp/tbpg/20130302/1362254513
htmlからpdfファイルを出力 http://d.hatena.ne.jp/tbpg/20130812/1376318999

ワンライナー

内容 リンク
カレントディレクトリに連番のフォルダを作成 http://d.hatena.ne.jp/tbpg/20120210/1328885450
カレントディレクトリのファイル名に含まれる特定文字列を置換 http://d.hatena.ne.jp/tbpg/20120225/1330186115

Rails

内容 リンク
Ruby on Rails3 http://d.hatena.ne.jp/tbpg/20120318/1332089705

周辺技術・ライブラリ等

内容 リンク
AndroidスマートフォンにRuboto IRBをインストールしてモバイルRubyistに! http://d.hatena.ne.jp/tbpg/20120301/1330619599
pikでWindows環境に複数バージョンのRubyをインストール http://d.hatena.ne.jp/tbpg/20130610/1370876204

rbenv

内容 リンク
rbenv http://d.hatena.ne.jp/tbpg/20131109/1384019539

スティング

内容 リンク
Selenium WebDriverを利用して画面の自動テストを行う http://d.hatena.ne.jp/tbpg/20130501/1367423666
CucumberとSelenium WebDriverを組み合わせてWebアプリケーションの自動受け入れテストを行う http://d.hatena.ne.jp/tbpg/20130505/1367771027
cucumberの進化系、turnip。キュウリの次はカブ http://d.hatena.ne.jp/tbpg/20130531/1370013257
WatirでWebの自動テスト http://d.hatena.ne.jp/tbpg/20130530/1369928011
WatirでWebの画面キャプチャを自動取得 http://d.hatena.ne.jp/tbpg/20130612/1371053897
RubySeleniumによるページ操作の検証を効率よく行う手順 http://d.hatena.ne.jp/tbpg/20131120/1384952052

パターン

内容 リンク
RubyでProxyパターン/Matzは松江から来るのに時間がかかるのでProxyRubyistを置く!(Forwardable版) http://d.hatena.ne.jp/tbpg/20121202/1354463011
RubyでFutureパターンを実装する http://d.hatena.ne.jp/tbpg/20130622/1371917891
RubyでFutureパターンを実装する(シンプル編) http://d.hatena.ne.jp/tbpg/20130622/1371919413

自作ライブラリ・共通処理

内容 リンク
標準入出力処理時のValidationをクラスマクロで共通化 http://d.hatena.ne.jp/tbpg/20130625/1372165415

自作ツール

フォルダ・ファイル生成
内容 リンク
Rubyでカレント日付+任意の文字列形式の定形フォルダを作成し、その中にtxtファイルを作成 http://d.hatena.ne.jp/tbpg/20121121/1353523617
RubyJavaのpackage-info.javaを一括生成するスクリプト http://d.hatena.ne.jp/tbpg/20120808/1344447924
YYYYMM_+任意の文字列形式のファイル名をインクリメントして新規ファイルを作成 http://d.hatena.ne.jp/tbpg/20130202/1359821789
Rubyで日付形式のファイル名をインクリメントして新規ファイルを作成 http://d.hatena.ne.jp/tbpg/20121121/1353522310
Excel
内容 リンク
Rubyを使ってExcelのテスト仕様書にymlのデータを設定する http://d.hatena.ne.jp/tbpg/20130521/1369155493
MySQLのDescからTSVの生成し、ExcelのDB定義書にコピペする http://d.hatena.ne.jp/tbpg/20130530/1369935213
Excelのシート名を一括取得し、標準出力する http://d.hatena.ne.jp/tbpg/20130625/1372169541
Word
内容 リンク
RubyによるWord文書生成 http://d.hatena.ne.jp/tbpg/20130627/1372345042
チェックツール
内容 リンク
Javaの例外処理チェック用スクリプト〜プロジェクト固有のルールで定義された例外処理の整合性をチェック http://d.hatena.ne.jp/tbpg/20130414/1365951586
RubyJavaのプロダクトコードとテストコードの対応有無チェック用のCSV生成 http://d.hatena.ne.jp/tbpg/20130109/1357758076
API利用
内容 リンク
はてなダイアリーAtomPubRubyから利用してブログ記事を投稿する http://d.hatena.ne.jp/tbpg/20130518/1368888091
Webスクレイピング
内容 リンク
YahooファイナンスをWebスクレイピングしてUSD/JPYのレートを取得 http://d.hatena.ne.jp/tbpg/20130625/1372168804
頓挫
内容 リンク
TTM(TODO管理ツール)=>頓挫 http://d.hatena.ne.jp/tbpg/20120208/1328712781
自作gem
gem名 内容 GitHubリンク Rubygemsリンク
sublime_snippetter Sublime Text2のスニペットを自動生成するためのRubyScript gem版 https://github.com/tbpgr/sublime_sunippetter http://rubygems.org/gems/sublime_sunippetter
denrei rubyで任意のタイトル・メッセージをダイアログ表示するgem。Ruby/tkが利用可能な環境が必要 https://github.com/tbpgr/denrei http://rubygems.org/gems/denrei
rspec_piccolo リスト構造のRSpecのテンプレート生成 https://github.com/tbpgr/rspec_piccolo https://rubygems.org/gems/rspec_piccolo
takuhai リモートサーバーから任意のファイルを取得して1アクション行うgemを公開しました https://github.com/tbpgr/takuhai https://rubygems.org/gems/takuhai
akapen 採点レポートツール https://github.com/tbpgr/akapen https://rubygems.org/gems/akapen
tudu タスク管理ツール https://github.com/tbpgr/tudu https://rubygems.org/gems/tudu
dslable コンソールで実行可能なgemのテンプレートを生成 https://github.com/tbpgr/dslable https://rubygems.org/gems/dslable
markun Markdown形式のファイルを一括でhtml形式に変換し、メニューリンクを追加 https://github.com/tbpgr/markun https://rubygems.org/gems/markun
tbpgr_utils 汎用ユーティリティ https://github.com/tbpgr/tbpgr_utils https://rubygems.org/gems/tbpgr_utils
happy_new_year 新年挨拶html生成 https://github.com/tbpgr/happy_new_year https://rubygems.org/gems/happy_new_year
templatable ERBのテンプレート処理を行うクラスを生成するCLIツール https://github.com/tbpgr/templatable https://rubygems.org/gems/templatable
git_cloner Gitリポジトリからcloneした内容を任意にディレクトリに配置する https://github.com/tbpgr/git_cloner https://rubygems.org/gems/git_cloner
gottani 様々なindent構造のテキストを扱う変換ツール https://github.com/tbpgr/gottani https://rubygems.org/gems/gottani
elevator_pitch_generator エレベーターピッチの定型文をREADMEとして出力する https://github.com/tbpgr/elevator_pitch_generator https://rubygems.org/gems/elevator_pitch_generator
issen Emmetライクな文法でディレクトリやファイルを生成する https://github.com/tbpgr/issen https://rubygems.org/gems/issen
line_head_washer 行頭の任意の文字列を削除するツール https://github.com/tbpgr/line_head_washer https://rubygems.org/gems/line_head_washer
kosi ターミナル用表フォーマットサポートツール https://github.com/tbpgr/kosi https://rubygems.org/gems/kosi
qiita_matome Qiitaまとめ記事ジェネレータ https://github.com/tbpgr/qiita_matome https://rubygems.org/gems/qiita_matome

その他

内容 リンク
pretty_printメソッドで整形出力 http://d.hatena.ne.jp/tbpg/20120421/1335015173
Symbol.to_procを利用して簡潔なコードを記載する http://d.hatena.ne.jp/tbpg/20130425/1366910843
cygwinRubyを利用する際のalias設定 http://d.hatena.ne.jp/tbpg/20130514/1368548729
cygwinRubyを利用する際のgemのエイリアスを一括生成 http://d.hatena.ne.jp/tbpg/20131120/1384950683
Ruby 2.0.0p195のソースコード内でタブインデントを使っているソースを抽出してみた http://d.hatena.ne.jp/tbpg/20130628/1372439736
Kramdownを利用してマークダウンからHTMLの生成 http://d.hatena.ne.jp/tbpg/20130724/1374677265
Sublime Text2向けのSnippetを生成するDSL http://d.hatena.ne.jp/tbpg/20130823/1377273762
Arrayにindex取得をバイナリサーチで行うメソッドArray#bindexを追加する http://d.hatena.ne.jp/tbpg/20130831/1377968008
WSHを利用してsendkeyでGUIアプリケーションを自動操作 http://d.hatena.ne.jp/tbpg/20131115/1384542931
gemを作成して外部公開せずにlocal環境のみにインストールして利用する方法 http://d.hatena.ne.jp/tbpg/20131116/1384622732
gemを作成してGitHub + RubyGemsに公開するまで http://d.hatena.ne.jp/tbpg/20131117/1384702834
RMagickで画像の変換を行う(Ubuntu1204環境) http://d.hatena.ne.jp/tbpg/20131121/1385041557
i18nRuby単独で利用する http://d.hatena.ne.jp/tbpg/20131124/1385309806
ThorでRubyコマンドライン処理を実装する(自作gem用binに組み込み) http://d.hatena.ne.jp/tbpg/20131125/1385392568
複数Enumを同時にループさせたい時(雑談レベル) http://d.hatena.ne.jp/tbpg/20131126/1385476778
bundle gem で作成したgemをRubygemsに公開したくない時にreleaseタスクを封殺する http://d.hatena.ne.jp/tbpg/20131126/1385479438
Rubyとfigletを利用してタイマーを作成する http://d.hatena.ne.jp/tbpg/20131129/1385754741
ユーザーが拡張可能なライブラリを作成する http://d.hatena.ne.jp/tbpg/20131202/1386003784
Ohaiでサーバー情報の収集 http://d.hatena.ne.jp/tbpg/20131203/1386079553
RSpecPiccolo gemが1階層分のディレクトリ構成にしか対応していないので改修する http://d.hatena.ne.jp/tbpg/20131204/1386176563
Pathnameで相対パスを取得する http://d.hatena.ne.jp/tbpg/20131226/1388061270
Java使いの自分が独学で行ったRuby学習の道のり http://d.hatena.ne.jp/tbpg/20140101/1388554749
複数のor条件の判定の記述方法について http://d.hatena.ne.jp/tbpg/20140103/1388715775
Structを使ってCSVの情報を取り込んで見る http://d.hatena.ne.jp/tbpg/20140104/1388802696
splat展開で数値配列・アルファベット配列・ひらがな配列・カタカナ配列を取得してみる http://d.hatena.ne.jp/tbpg/20140104/1388806891
標準入力からパスワードをechoせずに入力する http://d.hatena.ne.jp/tbpg/20140123/1390484711
google_drive gem でGoogleDriveの情報を取得する http://d.hatena.ne.jp/tbpg/20140123/1390487268
encryptor gem で暗号化・復号化を行う http://d.hatena.ne.jp/tbpg/20140123/1390487756
可変長のリストとオプション(ハッシュ)の引数を共存させる場合 http://d.hatena.ne.jp/tbpg/20140127/1390829523
highline gem で標準出力に色をつける http://d.hatena.ne.jp/tbpg/20140128/1390917249
メタなコードを書く際に完成予想図をコメントに書く http://d.hatena.ne.jp/tbpg/20140129/1391001713
Selenium + Rubyでファイルのダウンロードを行う(FireFox, Ruby http://d.hatena.ne.jp/tbpg/20140203/1391431135
BOM付きUTF-8CSVファイルを出力してExcelで開けるようにする http://d.hatena.ne.jp/tbpg/20140204/1391517653
Windows環境でクリップボードを操作 http://d.hatena.ne.jp/tbpg/20140204/1391517861
変数へif文の結果を格納する場合の記述法の一例(Active::Supportのコードより) http://d.hatena.ne.jp/tbpg/20140207/1391780635
全く役に立たない3つの少し特殊な処理 http://d.hatena.ne.jp/tbpg/20140220/1392901564
1ファイルで完結する使い捨ての処理で__END__とERBを組み合わせる http://d.hatena.ne.jp/tbpg/20140220/1392904157
Rubyでエラトステネスの篩(ふるい)を実装してみる http://d.hatena.ne.jp/tbpg/20140401/1396352814
gnuplot + gnuplot gem でグラフを操作 http://d.hatena.ne.jp/tbpg/20140403/1396535793
CSV Table/Row/Field でCSVを操作 http://d.hatena.ne.jp/tbpg/20140404/1396621960
Timecop gemで日付をモックする http://d.hatena.ne.jp/tbpg/20140408/1396963463
様々な標準出力の書き方 http://d.hatena.ne.jp/tbpg/20140411/1397226643
Ruby2.0新規要素 http://d.hatena.ne.jp/tbpg/20140411/1397227318
Ruby2.1新規要素 http://d.hatena.ne.jp/tbpg/20140411/1397227746
Windows7環境 + コマンドライン + ワイルドカード展開の罠をきっかけに
RSpecのコードリーディングをした話
http://d.hatena.ne.jp/tbpg/20140417/1397741120
冗長なコードを記述=>メソッドの抽出=>動的メソッド定義 の流れのサンプル http://d.hatena.ne.jp/tbpg/20140423/1398259173
redcarpet gemでmarkdownからHTMLを生成する http://d.hatena.ne.jp/tbpg/20140424/1398363070
Proc/lambdaとcallとcase http://d.hatena.ne.jp/tbpg/20140508/1399563200
lambda と Array と Hash を同時に処理するメソッドを作ってみる http://d.hatena.ne.jp/tbpg/20140508/1399567346
配列の各要素に対してメソッドを実行するための簡易記法を作ってみた http://d.hatena.ne.jp/tbpg/20140511/1399819795
dRubyを試してみる http://d.hatena.ne.jp/tbpg/20140514/1400072023
nilやfalseを扱う三項演算子と && 演算子 http://d.hatena.ne.jp/tbpg/20140515/1400159088
Rubyの文字数、バイト数取得について http://qiita.com/tbpgr/items/d1ed617093609ccedbee
アノテーションコメント(TODO、FIXME、OPTIMIZE、HACK、REVIEW) http://qiita.com/tbpgr/items/1c046a877c6be4d89876
Rubyリファレンスマニュアル「るりま」の誤字などを見つけた時の貢献フロー http://qiita.com/tbpgr/items/2072a9a743918b8cfb34
RubyJava の列挙型(Enum)を使いたい場合 http://qiita.com/tbpgr/items/25b51656fa383f0f7a00
ディレクトリの一覧取得 http://qiita.com/tbpgr/items/88bdaffff8990c38d3de
RubyでBrainf*ckのコードを生成する http://qiita.com/tbpgr/items/bb80d1758c6218181f92
Ruby quine 入門 http://d.hatena.ne.jp/tbpg/20140819/1408452418