Ruby

Rubyで全角空白も対象としたstrip(trim)

rubyではtrimじゃなくてstripというそうです。 stripは先頭と末尾の半角空白やタブ、改行などを除去するメソッドです。 全角空白は除去されないので、独自で定義する必要があります。 うまくいく例 class String def strip_all_space! gsub!(/(^[[:space:]]+…

Rubyでは、式の途中で改行するときは、算術オペレータを一番後ろに置いてから改行する

Javaの人間がRubyでやってしまった失敗を1つ紹介します。 意図した通りに動かないコード こんなコードを書きました sum = 100 + 200 + 300 + 400 puts sum #=> 300 100+200+300+400 (=10000)のつもりで書いていましたが、最初の2つしか足されていません。 デ…

Rubyでは、メソッド引数のカッコはメソッド名の直後に書くこと。空白を入れちゃだめ

引き続き、『プロを目指す人のためのRuby入門』(伊藤淳一[著])を読んでいます。 問題発生 本の中のコードを(間違って)写して、下記を実行したところ、 class DeepFreezableTest < Minitest::Test def test_deep_freeze_to_hash # ハッシュの値は正しいか ass…

RubyでArrayをHashに変換する

前回の記事で、ArrayをHashに変換するのにArray#mapとArray#to_hを使用して、ArrayをHashに変換しました。 yucatio.hatenablog.com オブジェクトの配列を、オブジェクトのIDをハッシュのキー、オブジェクト自身をハッシュのバリューとして登録したい場合があ…

Rubyでクラス宣言直下に書かれたメソッドの実行時期

Railsのスコープ定義文を見ていたら、クラス宣言直下に書かれたメソッドはいつ実行されるのかという疑問がわいてきたので調べました。 Rubyはクラス宣言直下に任意の式が書ける railsのコードでは、クラス宣言直下でscopeメソッドを呼び出しています。 class…

Rubyでの動的なクラスメソッドの追加方法

メソッドの実行でクラスメソッドが追加される 以下はrailsのscope定義文です。このように書くと、Book.costlyでレコードが取得できます。 メソッド呼び出しでメソッドが動的に追加されます。 メソッドの引数が新しいメソッドのメソッド名になるのです。不思…

Rubyのバージョンアップ方法(rbenv使用) - うまくいく場合

PCにインストールされているRubyのバージョンが古かったので、最新の安定板にアップデートしました 開発環境 OS : Mac OS X バージョン 10.8.4 gitのクライアントアプリとして Sourcetree - 無料の Git & Mercurial クライアント | アトラシアン (バージョン…