2013-02-01から1ヶ月間の記事一覧
概要 method_missingでゴーストメソッドを定義 詳細 Rubyではメソッドが見つからなかった場合にmethod_missingが呼び出されます。 その際の動作をオーバーライドしておくことで、本来存在しないメソッド=ゴーストメソッドを 呼び出すことができます。 サン…
パンくず Ruby Cookbook alias 概要 alias 内容 Rubyではメソッドに別名をつけることが可能です サンプルコード 改行付きで標準出力を行うKernel#putsに 「改行付表示」というエイリアスをつけてみます。 # encoding: Windows-31J require "pp" module Kerne…
パンくず Ruby Cookbook 文字列評価によるメタプログラミング 概要 文字列評価によるメタプログラミング 内容 method_defineで定義したメソッドと同様のことが文字列評価で定義可能です。 利用するメソッドは Module#module_eval です。method_defineと異な…
パンくず Ruby Cookbook メタプログラミングでコードのボイラープレートを避ける 概要 メタプログラミングでコードのボイラープレートを避ける 内容 メソッド名・処理内容がメソッドがある場合は、 define_methodによるメタプログラミングで簡潔に記載可能で…
パンくず Ruby Cookbook メンバー変数の自動設定 概要 メンバー変数の自動設定 内容 レシーバのインスタンス変数に値を設定 instance_variable_set サンプルコード # encoding: UTF-8 require "pp" class Object private def set_instance_variables(binding…
パンくず Ruby Cookbook Classの変更をListenする 概要 Classの変更をListenする 内容 undef,remove_methodの利用時は、各メソッドをオーバーライドした際に 特定の処理を実行することが可能です。 Listenメソッド名 内容 method_added メソッドの追加,オー…
概要 演算子 詳細 Rubyの主な演算子は以下です。 演算子 意味 == 等価性の確認 === case文のwhenで利用されている。例えばcase文でRange 1..3が2と一致するのはこのため 汎用比較演算子。レシーバーが引数より小さければ-1等しければ0大きければ+1 =,> 未満,…
パンくず Ruby Cookbook メソッドの参照の取得 概要 メソッドの参照の取得 内容 callでメソッドの呼び出し arityで引数の数を確認できます。 サンプルコード # encoding: Windows-31J require "pp" class Hoge def hoge(txt) return "#{txt} hoge" end end h…
パンくず Ruby Cookbook 自身で定義したメソッドのリストを取得 概要 自身で定義したメソッドのリストを取得 内容 各アクセスレベルごとのメソッドリストは XXXX_methods(false) で取得可能です。 ※XXXXはアクセスレベルただし、methodsの自メソッド取得版は…
パンくず Ruby Cookbook オブジェクトのメソッドリスト 概要 オブジェクトのメソッドリスト 内容 <メソッドリストの取得> メソッドのリストの取得はObject#methods クラスメソッドのリストの取得は Object#singleton_methods<メソッドの保持確認> インス…
パンくず Ruby Cookbook オブジェクトのクラスと基底クラス 概要 オブジェクトのクラスと基底クラス 内容 オブジェクトのクラスはObject#class 基底クラスはClass#superclass 祖先のリストはModule#ancestors で取得出来ます。 サンプルコード # encoding: W…
概要 書籍 入門bashに関するメモ。 網羅はせず任意の箇所のみ抜粋する。 各章 章1. bashの基礎 No Sub 内容 詳細 01 00 シェルとは何か ユーザーのコマンドラインをOSの命令に変換するためのもの 02 00 本書の適用範囲 略 03 00 UNIXシェルの歴史 略 03 01 b…
パンくず 入門bash テキスト補完 概要 テキスト補完 内容 コマンド 説明 \ テキスト補完を行う * 複数の補完を行う = 補完対象の一覧を標準出力する サンプルコード カレントディレクトリの状態 $ls 0.txt 00.txt cat 0まで入力後、制御モードに変更して\を…
パンくず 入門bash 文字検索コマンド 概要 文字検索コマンド 内容 コマンド 説明 fx 次のxの右へ移動する Fx 前のxの右へ移動する tx 次のxの右へ移動し、1つ戻る Tx 前のxの右へ移動し、1つ進む ; 最後の文字検索コマンドを繰り返す , 最後の文字検索コマン…
パンくず 入門bash 履歴ファイル内での移動 概要 履歴ファイル内での移動 内容 履歴を移動するための制御コマンドは以下です。 コマンド 説明 k 後方に1行移動 j 前方に1行移動 G 指定された回数だけ行を移動 /string 後方検索 ?string 前方検索 n 前と同じ…
パンくず 入門bash コントロールによる編集機能 概要 コントロールによる編集機能 内容 viモードの編集コマンドは以下 コマンド 説明 BACKSPACE 前の文字を削除 CTRL+W 前のワードを削除 CTRL+V 次の文字をクォーティングする ESC(CTRL+[) 制御モードに移る
概要 cut 入力から特定の文字範囲、列を取り出す コマンド cut [オプション] オプション -b, --bytes=LIST バイトで数えた LIST を選択する -c, --characters=LIST 文字で数えた LIST を選択する -d, --delimiter=DELIM フィールドの区切り文字として TAB の…
パンくず Effective Java 詳細メッセージにエラー記録情報を含める 概要 詳細メッセージにエラー記録情報を含める 内容 例外の詳細メッセージは実際に問題が起こった場合の解析が容易になるように エラーの原因と関わるパラメータのすべてを出力するべきです…
パンくず 入門bash コマンドラインの継続 概要 コマンドラインの継続 内容 長いコマンドを改行したい場合は改行文字をクォーティングする。 バックスラッシュでクォーティング可能です。 サンプルコード 長いコマンドをワンライナーで書いた場合 $echo {2..1…
パンくず Ruby Cookbook Mixing in Class Methods 概要 Mixing in Class Methods 内容 クラスメソッドのMixinをする場合、 サブモジュールを作成し,メインのモジュールのself.includedメソッドで レシーバを拡張する。 サンプルコード # encoding: Windows-3…
パンくず Ruby Cookbook 後から特定のオブジェクトのみにModuleを追加 概要 後から特定のオブジェクトのみにModuleを追加 内容 特定のオブジェクトのみにModuleの機能を追加したい場合は extendメソッドを利用します。 サンプルコード # encoding: Windows-3…
パンくず 入門bash ブレース展開 概要 ブレース展開 内容 ブレース展開は所定の書式に基づいて任意の文字列を展開する。 サンプルコード $ ls 0.txt 6_3.txt createNumberTxt.rb test.js $ ls *.{txt,js} 0.txt 6_3.txt test.js $ echo {1..5} 1 2 3 4 5 $ e…
概要 書籍 入門bashに関するメモ。 網羅はせず任意の箇所のみ抜粋する。 各章 章1. bashの基礎 No Sub 内容 詳細 01 00 シェルとは何か ユーザーのコマンドラインをOSの命令に変換するためのもの 02 00 本書の適用範囲 略 03 00 UNIXシェルの歴史 略 03 01 b…
概要 文字列の行単位処理について 内容 文字列の行単位処理時はeach_lineメソッドとブロックで行います。 サンプルコード # encoding: Windows-31J dragon_quest_subtitle =<
概要 Rubyのクラス継承元一覧の取得について 内容 Classのancestorsメソッドにより、継承元のリストを取得可能です。 サンプルコード # encoding: Shift_JIS require "pp" module Hogeable def hoge puts "hoge" end end class BaseHige def hige "hige" end…
パンくず Ruby Cookbook Automatically Loading Libraries as Needed 概要 Automatically Loading Libraries as Needed 内容 利用する時に初めて対象ファイルをロードしたい場合には autoloadを利用します。 サンプルコード サンプル中で、ロード有無の確認…
パンくず Effective Java 標準例外を使用する 概要 標準例外を使用する 標準例外を使用する利点 ・APIの利用が用意になる ・見慣れた例外で統一されるため可読性が上がる ・例外のクラス数が少なくなるためメモリ量が節約される 頻出例外 例外 使用する機会 …
Ctrl+Uで入力内容を削除
パンくず Ruby クラスメソッド 概要 Rubyのクラスメソッドについて 内容 クラス名+メソッド名でクラスメソッドを定義できます。 def ClassName.method_name # logic end サンプルコード # encoding: Windows-31J class Hoge def Hoge.print_hoge puts "Hoge…
パンくず Ruby Cookbook オブジェクトの凍結 概要 オブジェクトの凍結 内容 freezeメソッドによって、オブジェクトを凍結できます。 破壊的な操作を防ぐことはできますが、参照自体を置き換えることを防げません。 サンプルコード # encoding: Windows-31J r…