タグ

ブックマーク / qiita.com/scivola (5)

  • Ruby に xor は無かった - Qiita

    Ruby で条件式として XOR(eXclusive OR;排他的論理和)演算を書く必要ができた。 えっと,xor なんて演算子あったっけ?と思ったら無かった。 そうか,じゃあ &&, || があるんだから ^^ かな? 見たことないけど。と思ったらこれも無かった。 ええーっ!! 無いんかい。 め,めどい。 えっと,eq1, eq2 を何らかの式とする。評価値を論理値として使い,

    Ruby に xor は無かった - Qiita
  • 強欲な量指定子(絶対最大量指定子)の使いどころ - Qiita

    正規表現の量指定子には「強欲な量指定子」とか「絶対最大量指定子」と呼ばれるものがあります。 この記事では,どのような場合にこれを使うのか,一例を挙げます。 コード例は Ruby で記述しますが,Ruby をご存知ない方にも分かるよう説明を加えます。 強欲な量指定子に至るまでに,ちょっと遠回りをしますが,ご容赦を。 テキスト中から〈数字列+"円"〉を拾う まずは,テキスト中から,〈数字列+"円"〉をすべて拾い出したいとします。 Ruby では以下のように書けます。 1 行目はローカル変数への文字列代入です。 /\d+円/ は正規表現リテラルです。 正規表現を / / で囲むと正規表現リテラルになります。 str のあとにピリオドを置いて何かを書いているのは str に対するメソッド呼び出しです。 scan は,文字列に対して使えるメソッドです。引数で与えられた正規表現にマッチする部分文字列を

    強欲な量指定子(絶対最大量指定子)の使いどころ - Qiita
  • Rails モデル名の i18n のもう一つの方法 - Qiita

    やりたいこと Ruby on Rails で,モデル名の日語を表示したいとする。 例えば会員情報を担う Member というモデルがあって,これを「会員」と表示させたい。 「会員一覧」「会員の新規追加」「会員を削除しました。」といったように。 ふつうのやり方 Rails に備わっている i18n(internationalization;国際化)の仕組みでそれは簡単にできる。 モデルの名前は翻訳ファイル(config/locale/*.yml)に

    Rails モデル名の i18n のもう一つの方法 - Qiita
  • Ruby でベンチマークを取る方法 - Qiita

    のように表示される。 bm メソッドの引数 10 は,「Nantoka」「Kantoka」というラベル部分に確保すべき桁数(文字数)だ。一番長いラベルの文字数にするか,ちょっと多めの値にしておけばいい。 結果の見方 数値の単位は秒だ。小数点以下 6 桁もあるが,有効数字はそんなにない。その件はあとでまた触れる。 でも user, system, total, real と四つもあって,一体どれを見たらいいの? 冒頭で「初心者向けの良い記事がない」と書いたのはこのこと。これらの数値の意味を書かなければしょうがないよね。 まず real からいこう。これは処理の開始から終了までの時間。経過時間とも言う。だから,CPU がぼーっとしていたり,他の仕事をやっている時間も含まれる。これは見なくていい。 なぜ real と呼ぶかというと,たぶん我々が暮らしているこの世界における現実の時間だからだろう。

    Ruby でベンチマークを取る方法 - Qiita
  • Ruby のココがダメ - Qiita

    タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基的に同じだけど,削除が行われなかっ

    Ruby のココがダメ - Qiita
  • 1