kei-p3’s blog

kei-pによる技術共有と思考整理

Ruby

Rakeを徹底解剖 - その4 "タスクの実行"

過去3回のソースリーディングに続き、今回はついにタスクの実行について調べていきます。 def run standard_exception_handling do init load_rakefile top_level ## 今回のキモになる部分 end end なお、まだその1, その2、その3を読んでない方はこちらから…

Rakeを徹底解剖 - その3 "タスクの定義"

前回はタスクの読み込みについて調べたが、今回は読み込んだrakefileをどう解釈し、タスクとして定義しているのかについて調べていく。 前回よりタスクの読み込みは、Rake.load_rakefile によって行われていることがわかりました。 ## rake/rake_module.rb d…

Rakeを徹底解剖 - その2 "タスクの読みこみ"

前回に引き続き、rakeの仕組みを知るべく、ソースリーディングをして処理を解読していく。 前回では、initの中身を調べて行ったが今回は、タスクの読み込みおよびタスクの定義に焦点を当てて、読み込んでいく。 ## rake/application.rb def run standard_exc…

Rakeを徹底解剖 - その1 "Rakeの実行から初期化まで"

はじめに 先日とあるハッカソンに参加した際に、rake の task を拡張したメソッドを追加する必要がありました。 単なるメソッド追加だろうと思っていたら、それが思いの外大変。 なかなかうまくいかず、どうやったら拡張できるのかを探るために rake の仕組…

rspecのdescribe, context, subject, letなどの書き分け

Everyday Railsを読んでみて、rspecの利便さに改めて気付かされました。 特にAPI周りの実装をすることの多かった自分としては、capybaraによるfeatureテストなんかはこんなことがこんなに簡単にできるのかと驚きました。 しかし、自分としては知りたかった、…

Chefでbundlerなどのgemをinstallさせる

アプリケーションだけでなく、インフラ部分も触るのでその構築によくChefを使っているのですが、bundlerのinstallもChefでやろうとしたらなかなかinstallされずはまってしまったので解決方法とはまりポイントを共有です。 要約 はまりポイントを要約すると以…

2次元配列をCSVのような座標系で値を取得するGemを公開しました

データを表現する手段として、エンジニアであればJSONやXMLといった形式のものを使いますが、 プランナーやデザイナーでは扱い慣れてるエクセルのような形式を扱うことがあります。 そのときに、csv上の座標とパースした二次元配列を対応させるのですが、 "2…

CSVのような二次元配列からHashの配列を生成

csvをパースしたときのように1行目にキー情報があり、 2行目以降に各レコード情報が複数あるようなデータをハッシュに置き換える方法です。 lines = [["num", "char", "hira", "char2"], [1, "a", "あ", "aa"], [2, "b", "い", "bb"], [3, "c", "う", "cc"]]…