Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

2014-01-01から1ヶ月間の記事一覧

Ruby | 標準入力からパスワードをechoせずに入力する

概要 標準入力からパスワードをechoせずに入力する 詳細 標準入力からパスワードをechoせずに入力します。 サンプル # encoding: utf-8 require 'io/console' require 'tbpgr_utils' print "Enter password: " password = STDIN.noecho(&:gets).chop puts pu…

TbpgrUtils | 追加要件 Array#together_selectを追加

概要 追加要件 Array#together_selectを追加 詳細 追加要件 Array#together_selectを追加します 仕様 ・Enumerable#select(find_all)のtogether版。 ・together_selectはN個の配列のイテレーションから1個の配列の結果を返却する。 N個の配列に対して、N個の…

TbpgrUtils | 追加要件 Kernel#alias_methods を追加

概要 追加要件 Kernel#alias_methodsを追加 詳細 追加要件 Kernel#alias_methodsを追加します 仕様 ・alias_methodの一括設定版 ・1つのメソッドに対して複数のエイリアスを一気に設定したい場合に利用※より詳細についてはGitHubのREADMEおよびテストケース…

ActiveSupport | Module#parent

概要 Module#parent 詳細 Module#parentについて Module#parent 親モジュールを取得する。 トップレベルまで到達した場合はObjectを返却する。 サンプル # encoding: utf-8 require 'active_support/core_ext/module/introspection' require 'tbpgr_utils' m…

ActiveSupport | Module#alias_attribute

概要 Module#alias_attribute 詳細 Module#alias_attributeについて Module#alias_attribute Attributeにエイリアスを付与する。 サンプル # encoding: utf-8 require 'active_support/core_ext/module/aliasing' require 'tbpgr_utils' require 'attributes…

SublimeSunippetter | 追加要件 ブロックのスニペットを生成可能にする

概要 追加要件 ブロックのスニペットを生成可能にする 詳細 追加要件 ブロックのスニペットを生成可能にします。 仕様 ・Rubyのブロックのスニペットを生成可能にする ・指定方法は下記(最後にblock@d or bがあればブロックを出力) add :hoge, :args1, :args…

TbpgrUtils | 追加要件 Array#together_mapを追加

概要 追加要件 Array#together_mapを追加 詳細 追加要件 Array#together_mapを追加します 仕様 ・Enumerable#map(collect)のtogether版。 ・together_mapはN個の配列のイテレーションから1個の配列の結果を返却する。 N個の配列に対して、N個の配列を返却し…

Ruby | File | size

概要 File.size 詳細 ファイルサイズを取得する。 サンプル コード # encoding: utf-8 def create_file(filename, contents) File.open(filename, 'w:utf-8') {|f|f.print contents} end create_file 'hoge.txt', "test" puts File.size('hoge.txt') 出力 4

Ruby | File | rename

概要 File.rename 詳細 ファイル名を変更する サンプル コード # encoding: utf-8 def create_file(filename, contents) File.open(filename, 'w:utf-8') {|f|f.print contents} end create_file 'old_hoge.txt', "test" system('ls *.txt') File.rename 'ol…

書籍 Rubyベストプラクティス | 動的な機能を使いこなす | BlankSlate

概要 BlankSlate 内容 BlankSlate=空白状態。 Ruby1.8以前はBasicObjectがなかったため、動的な機能を利用する際に既存のメソッドと衝突を避けるために メソッドを根こそぎ非定義に設定する手法があった。 その手法はメタプログラミングRubyでも触れているBl…

ActiveSupport | Module#alias_method_chain (公式サイトに載っていないブロック呼び出しのサンプル付)

概要 Module#alias_method_chain 詳細 Module#alias_method_chainについて Module#alias_method_chain メソッドにエイリアスを付与する際に、old_with_new,old_without_new という名称のエイリアスを生成する。(メソッド名の衝突防止) ※old=古いメソッド名…

ActiveSupport | Object#in?

概要 Object#in? 詳細 Object#in?について Object#in? 対象オブジェクトのinclude?を呼び出し、結果を真偽値で返却します。 配列、文字列、範囲など種類を問わず指定した値が含まれているか判定したい場合に有用です。 サンプル # encoding: utf-8 require "…

ActiveSupport | reporting

概要 reporting 詳細 reportingについて 一覧 method 内容 Kernel#enable_warnings $VERBOSEをtrueにしてブロックを実行する。ブロック実行後、$VERBOSEは処理前の値に戻す Kernel#slice_warnings $VERBOSEをnilにしてブロックを実行する。ブロック実行後、$…

TbpgrUtils | 追加要件 Array#together_with_indexを追加

概要 追加要件 Array#together_with_indexを追加 詳細 追加要件 Array#together_with_indexを追加します 仕様 ・基本仕様はArray#togetherと同じ ・ブロック内でindexを利用可能にする※より詳細についてはGitHubのREADMEおよびテストケース参照 GitHub https…

TbpgrUtils | 追加要件 Kernel#bulk_puts_evalを追加

概要 追加要件 Kernel#bulk_puts_evalを追加 詳細 追加要件 Kernel#bulk_puts_evalを追加します 仕様 ・puts_evalの複数行対応版。 ・ヒアドキュメントでコード文字列を指定すると1行ずつputs_evalする※より詳細についてはGitHubのREADMEおよびテストケース…

TbpgrUtils | 追加要件 attr_reader/writer + initializeの機能をAttributesInitializableモジュールに追加

概要 追加要件 attr_reader/writer + initializeの機能をAttributesInitializableモジュールに追加 詳細 追加要件 attr_reader/writer + initializeの機能をAttributesInitializableモジュールに追加 仕様 ・既に提供済みのattr_accessor + initializeの機能…

Ruby | File | join

概要 File.join 詳細 指定したリストを元にFile.SEPARATORで連結した文字列を返却する。 サンプル コード # encoding: utf-8 require 'tbpgr_utils' puts_eval 'File.join("dir1", "dir2", "dir3", "file.txt")', binding puts_eval 'File::SEPARATOR', bind…

Ruby on Rails | Controllerのテスト | Controllerが保持しているインスタンス変数の検証

概要 Controllerのテスト | Controllerが保持しているインスタンス変数の検証 詳細 ControllerのテストのControllerが保持しているインスタンス変数の検証をします。 検証対象 Controller実行時のインスタンス変数の内容はassignsに格納されています。 サン…

Ruby on Rails | Controllerのテスト | リクエストの成功確認

概要 Controllerのテスト | リクエストの成功確認 詳細 Controllerのテストのリクエストの成功確認を行います。 リクエストの呼び出し リクエストの実行はリクエスト種別の指定とメソッドの指定を行います。呼び出し方法 リクエスト種別 :method 例えば get:…

Ruby on Rails | Devise利用時のテスト

概要 Devise利用時のテスト 詳細 Devise利用時のController等のテストにおいて、認証以降のページが対称となる場合のテスト方法。まずDevise::TestHelpersをincludeします include Devise::TestHelpers あとは各ケースのbefore等でsign_inメソッドを呼び出し…

TbpgrUtils | 追加要件 boolへの変換メソッドObject#to_boolを追加

概要 追加要件 boolへの変換メソッドObject#to_boolを追加 詳細 追加要件 boolへの変換メソッドObject#to_boolを追加 仕様 ・Object#to_boolを追加 ・中身は「!!」のシンタックスシュガー。慣習として慣れている人は良いのかもしれませんが、「!!」が分かり…

ActiveSupport | Object#instance_values/instance_variable_names

概要 Object#instance_values/instance_variable_names 詳細 Object#instance_values/instance_variable_namesについて Object#instance_values/instance_variable_names instance_values:インスタンス変数の値をハッシュで取得する。 instance_variable_na…

Ruby | File | ftype

概要 File.ftype 詳細 ファイルのタイプを取得します。 返却値は[file, directory, characterSpecial, blockSpecial, fifo, link, socket, unknown]のどれか。 サンプル コード # encoding: utf-8 def create_file(filename, contents) File.open(filename, …

Dslable | Dslableで作るコマンドラインツール形式 gemの作成手順 A to Z

概要 Dslableで作るコマンドラインツール形式 gemの作成手順 A to Z 詳細 Dslableで作るコマンドラインツール形式 gemの作成手順 A to Zを説明します。 前提 ・Ruby1.9以降の開発環境を用意しておいてください。 ・gitをインストールしておいてください。 ・…

TbpgrUtils | 追加要件 TemplateMethodパターンを利用するためのモジュールを追加

概要 追加要件 TemplateMethodパターンを利用するためのモジュールを追加 詳細 追加要件 TemplateMethodパターンを利用するためのモジュールを追加します 仕様 ・must_implクラスマクロにテンプレートとなるメソッド名をSymbolで指定(複数可) ・must_impl…

ActiveSupport | Object#with_options

概要 Object#with_options 詳細 Object#with_optionsについて Object#with_options オプションを受け取るメソッドに対して、一部のオプションは固定・一部のオプションは可変、 のような場合に固定部を繰り返し記述しない済む。 詳しくはサンプルを参照 サン…

TbpgrUtils | Sublime Text2ユーザー向けスニペットを公開

概要 Sublime Text2ユーザー向けスニペットを公開 詳細 Sublime Text2ユーザー向けスニペットを追加します。 基本 SublimeSunippetter gemで作成して、一部手動で変更しています。 利用される方は下記のGitHubからcloneしてコピーしてご利用ください。 GitHu…

ActiveSupport | Object#to_query

概要 Object#to_query 詳細 Object#to_paramについて Object#to_query クエリ文字列を作成する際に利用される。 Arrayはキーが空で "user=aaa&user=bbb"のようになる。 Hashはクエリー文字列を想定しているため、aaa='aaa'&bbb='bbb'&ccc='ccc'のような文字…

ActiveSupport | Object#to_param

概要 Object#to_param 詳細 Object#to_paramについて Object#to_param URLおよびクエリ文字列を作成する際に利用される。 基本はselfを返却する。 ArrayはURLを想定しているため、/区切りの文字列を返却する。 Hashはクエリー文字列を想定しているため、aaa=…

SublimeSunippetter | Sublime Text2の簡易スニペット生成ツール 2014/01/25更新

概要 Sublime Text2の簡易スニペット生成ツール 詳細 ライブラリやDSLを作成した際に開発者のコーディングを支援するために スニペットを生成するツール。 単純にメソッド名+引数を1行で表せるようなケースのみ対応。gemの名前がtypoなのはわざとなんです。…