Ruby

RubyのIntegerを拡張してFizzBuzzを問題をやってみた

FizzBuzz問題というのをやったことが無かったので、Rubyでやってみた。「ある整数がある整数で割り切れるか?」という部分を抽象化すると、少し汎用的になってよいかと思った。 class Integer def dividable?(n) self % n == 0 end end (1..100).each do |n|…

ネーミングに困ったとき、RailsのAPIが参考になった

最近ちょっとしたORMを書いていて、SQLのプレースホルダに「紐付ける値」をなんと命名したらよいか悩んでいたのだけど、こういう定石的な命名は、自分でウンウン悩むよりフレームワークのAPIを参照するのが早いと思ったRubyのORMをざっと調べてみたところ、…

PHPを愛する試み 〜調教編〜

PHPを愛する試みというのを個人的にやっている。最近仕事でPHPをガリガリ使わなければならない状況になってしまった。そのため可及的速やかにPHPを愛する必要がある。 tap ときに、Rubyにはtapという素敵なメソッドがある。tapかわいいよtapPHPでも$obj->tap…

unshift, shift, pop, pushが混乱するので、絵で整理した

配列の追加・取り出しに関する4つのメソッド(unshift, shift, pop, push)がいつも混乱するので絵で整理した。絵にすれば覚えられそう!いちお練習のため、自分がよく使うRuby, PHP, JavaScriptでコードも書いた。・いずれの言語においても上記4つのメソッ…

一瞬で「今日のディレクトリ」を作成・移動できるRuby/Bashスクリプト

ちょっとしたファイルを作成・保存しておきたい時、自分にとっては「今日の日付のディレクトリ」にまとめておくのが丁度よい。これまでは毎日手作業で「今日の日付のディレクトリ」を作成・移動していたのだけど、これを毎回やるのが面倒臭い。ということで…

PHPを愛する試み

僕はRubyが好きだ。プライベートではRubyばっかり使っている。でも、仕事ではPHPを使わなければならない。これまでPHPは書きにくいーと思い込んでいてあまり好きではなかったのだけど、仕事で使う以上PHPを好きになった方がきっと幸せになれる。何かを好きに…

Rubyで内部DSLっぽいのやってみる

少し前に仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプトというRubyスクリプトを書いたのだが、スクレイピング対象サイトをハッシュで持ってるあたりが使いづらい。良い機会なので内部DSLってのに挑戦してみた。しかし、内部DSLに…

Rubyワンライナー入門

先日仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプトというネタエントリを書いたのだが、その際Rubyのワンライナーをもう少しまともに理解したいと思ったので入門してみた。手元のRubyは1.9.2 はじめに Rubyのワンライナーは、ruby…

仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト

情報収集はビジネスマンとしての基本である。しかし普段シェルで作業する者としては、毎回ブラウザを立ち上げる時間すら不毛である。よって、シェルから一瞬で情報収集できるRubyのワンライナーを書いた。 上からYahoo, はてな, Naverまとめ, 2ちゃん $ ruby…

RackとERBを使って、超シンプルなRubyのWebアプリを作る

Railsで使われているRackとERB。いつもRailsにお任せだから、たまにはRailsの皮をはいで生で触ってみたい!ということで、超基本的な部分(通常表示, リダイレクト, not found)だけいじったのでメモ。・/にアクセスすると、/hogeにリダイレクトされる ・/ho…

Rubyの多重代入におけるto_aとto_aryの挙動

先日のエントリでRubyの多重代入についてふれたのだが、教科書によってto_aryが呼ばれると書いてあったりto_aが呼ばれると書いてあったりで、なにが本当なのか分からなくなった。 回答らしきもの 調べてみたら、こちらに回答らしきものがあった。 OK, to_a m…

Rack::Responseオブジェクトを多重代入すると、暗黙的にfinishが呼ばれる

環境:ruby-1.9.2、rack-1.4.1RAILSCASTのRackの章を見ていたら、以下のような構文が出てきて、不思議に思った。 def call(env) Rack::Response.new("hoge") end Rackアプリの呼び出し側(例えば、lintミドルウェア)では、このように書かれている status, h…

RubyのFile.expand_path('相対パス', __FILE__)の意味

RailsなどのRubyライブラリのソースコードを見ていると、よく File.expand_path('相対パス', __FILE__) という一文を目にする。ちょっと調べてみた。 File.expand_pathとは riコマンドで調べてみる $ ri File.expand_path (from ruby core) ----------------…

rbenvのメモ

備忘のためメモ。必要に応じて編集予定。 ヘルプ $ rbenv -h主要コマンドの説明はこれで 特定のrbenvコマンドのヘルプを表示 $ rbenv help <コマンド> 現在のRubyバージョンを表示 $ rbenv version rbenvが管理している全てのRubyバージョンを表示 $ rbenv v…

誰得スクリプトで学ぶOAuthとRack(Rubyだよ)

元ネタ ゆーすけべー先生が先日、以下のような誰得スクリプトを書いておられました。Facebookのポスト内容をWebアプリケーションとして実行する - ゆーすけべー日記まじ誰得w しかしよく見てみると勉強になる要素満載で、Rubyで書いたらOAuthとRackの勉強に…

Rubyで「正規表現でマッチした部分を抽出する」を書いたのだが、なんかしょぼかったので復習

Rubyで「文字列から正規表現にマッチする部分だけぶっこ抜く」ってのをやろうとしてこんな風に書いたのだけど、もっとシンプルに書けるはずだったので復習。 str = 'http://instagram.com/p/hoge/' #hogeを抜き出したい m = str.match(/http:\/\/instagram.c…

Rubyのclass << selfとクラスメソッド、ならびに特異メソッドと特異クラス

Rubyライブラリのソースコードを読んでいると、よく class ↓こんなの class C class << self def foo puts 'foo' end end end C.foo #foo

Sinatraのソースコードを読む(1)

Rubyの軽量フレームワークSinatraのソースコードがイケテルらしいので、がんばって読む事にしました。

Rubyで「ハッシュの配列」を「ハッシュのキー」でソートする

備忘メモ

Rubyで文字列を日時に変換する方法

前提 ruby 1.9.2 やりたいこと 文字列を日時に変換(空ならnilにする) しかし、文字列はどのような形式で来るか分からない 方法 標準ライブラリのdateを使う まずDateTime.parse()し、それで処理しきれなければDateTime.strptime() それでだめなら、nil req…