Tbpgr Blog

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

2014-04-11から1日間の記事一覧

Ruby | Ruby2.1の新規要素

概要 Ruby2.1の新規要素 詳細 Ruby2.1の新規要素について 一覧 項目 URL キーワード引数のデフォルト値省略 http://d.hatena.ne.jp/tbpg/20140411/1397227685 Rational型リテラル http://d.hatena.ne.jp/tbpg/20140411/1397227718 Complex型リテラル http://…

Ruby | Ruby2.1新規要素 | Rational型のリテラルの追加

概要 Rational型のリテラルの追加 詳細 Rational型を表す新たなリテラル表記が追加されました。 サンプルコード # encoding: utf-8 require 'tbpgr_utils' bulk_puts_eval binding, <<-EOS 1/3r (1/3r).class ((1/3r)*3).to_i EOS 出力 1/3r # => (1/3) (1/3…

Ruby | Ruby2.1新規要素 | キーワード引数のデフォルト値省略

概要 キーワード引数のデフォルト値省略 詳細 Ruby2.0で導入されたキーワード引数ですが、デフォルト値を省略したいという 要望が多かったため、Ruby2.1で機能追加されました。 サンプルコード # encoding: utf-8 require 'tbpgr_utils' def show_charactor(…

Ruby | Ruby2.1新規要素 | Complex型のリテラルの追加

概要 Complex型のリテラルの追加 詳細 Complex型を表す新たなリテラル表記が追加されました。 サンプルコード # encoding: utf-8 require 'tbpgr_utils' require 'complex' v1 = Complex(0, 2) v2 = Complex(2, 2) bulk_puts_eval binding, <<-EOS 2i 2i.cla…

Ruby | Ruby2.0新規要素 | Module#prepend

概要 Module#prepend 詳細 Module#prependはクラスの手前にモジュールを追加します。モジュールの機能を追加するという点についてはincludeと似ています。 includeはクラスに対して機能を追加する。 prependはクラスの既存機能を変更する。 という使い分けが…

Ruby | Ruby2.0の新規要素

概要 Ruby2.0の新規要素 詳細 Ruby2.0の新規要素について ※2014/04/11時点で、すでにRuby2.1がリリースされていますが順を追って確認するために2.0についてまとめます 一覧 Language core features 項目 URL キーワード引数 http://d.hatena.ne.jp/tbpg/2014…

Ruby | Ruby2.0新規要素 | __dir__で実行ファイルのディレクトリを取得

概要 __dir__で実行ファイルのディレクトリを取得 詳細 __FILE__のディレクトリ版。 これでわざわざFile.dirname(__FILE__)のように取得する必要がなくなりました。 サンプルコード 実行ファイルがWindows環境のD:\hoge\__dir__.rbだとします。__dir__.rbの…

Ruby | Ruby2.0新規要素 | Nil#to_hの追加

概要 Nil#to_hの追加 詳細 Nil#to_hの追加されたことによって to_hメソッドによってハッシュへの変換を期待するクラスがある場合に、 対象がnilでもエラーにならなくなった。 サンプルコード # encoding: utf-8 require 'tbpgr_utils' require 'attributes_i…

Ruby | Ruby2.0新規要素 | %iによるシンボル配列の作成

概要 %iによるシンボル配列の作成 詳細 文字列配列を作成する際は%wが便利ですが、そのシンボル版が%iです。 サンプルコード # encoding: utf-8 require 'tbpgr_utils' hoges = %i{hoge hige hage} print hoges 出力 [:hoge, :hige, :hage] 参照 http://docs…

Ruby | Ruby2.0新規要素 | lines、chars、bytes、codepointsの戻り値のデータ型変更

概要 lines、chars、bytes、codepointsの戻り値のデータ型変更 詳細 lines、chars、bytes、codepointsはRuby1.9ではEnumeratorを返却していたが、 Ruby2ではArrayを返却するようになった。そのためRuby1.9までは print "hoge".chars.to_a.last のように書い…

Ruby | Ruby2.0新規要素 | lazy

概要 lazy 詳細 Enumerable#lazyによって遅延評価が可能になりました。 これによって、普通に処理すると無限ループしてしまうような内容に 対応することが可能になる。 サンプルコード # encoding: utf-8 require 'prime' # 1から始まる整数の最初の10個の奇…

Ruby | Ruby2.0新規要素 | キーワード引数

概要 キーワード引数 詳細 Ruby1.9までは引数の最後にHashを利用することで擬似的にキーワード引数を 再現していたが、文法としてサポートされました。 どの引数がどの値を示しているか一目瞭然でわかります。 サンプルコード # encoding: utf-8 require 'tb…

Ruby | 様々な標準出力の書き方

概要 様々な標準出力の書き方 詳細 「$>,$stdout」は標準出力です。出力先はデフォルトで Object::STDOUT定数 になっています。 Object::STDOUT定数は IO のインスタンスです。 IOクラスは出力のためのインスタンスメソッド「 下記のような記述で標準出力が…

Ruby | Integer | ceil

概要 Integer#ceil 詳細 小数点以下を繰り上げる サンプルコード # encoding: utf-8 require 'tbpgr_utils' bulk_puts_eval binding, <<-EOS 1.ceil 1.1.ceil 1.0.ceil EOS __END__ 下記はTbpgrUtils gemの機能 bulk_puts_eval attr_accessor_init https://r…

Ruby | Integer

概要 Integer 詳細 整数の抽象クラス。整数は数値の大きさによってFixnumかBignumになるが Integerはその基底クラスとなる。 サンプルコード 継承階層を確認します。 # encoding: utf-8 require 'tbpgr_utils' require 'test_toolbox' puts 1.class.aa_ances…

Ruby | 二次元配列の各要素を一括クリアする

概要 二次元配列の各要素を一括クリアする 詳細 tbpgr_utils gemのArray#together_clear。(別名でtclearもあり) 二次元配列の各要素を一括クリアします。 事前準備 gem install tbpgr_utils 主な用途 二次元配列の内部の配列のみを全てクリアしたい場合。 …

Ruby | 二つ以上の配列の任意のインデックスの値を配列として取得する

概要 二つ以上の配列の任意のインデックスの値を配列として取得する 詳細 tbpgr_utils gemのArray#together_at 二つ以上の配列の任意のインデックスの値を配列として取得します。 事前準備 gem install tbpgr_utils 主な用途 二つ以上の配列の任意のインデッ…

TbpgrUtils | 追加要件 String#unescape_quote 追加

概要 追加要件 String#unescape_quote 追加 詳細 追加要件 String#unescape_quote 仕様 ・エスケープされたシングルクォートを元に戻す ※より詳細についてはGitHubのREADMEおよびテストケース参照 GitHub https://github.com/tbpgr/tbpgr_utils Rubygems htt…