Ruby
最近ちょっと興味をもったテスト手法(技法?)があって、ちょこっとだけ調べたので書いてみます。 まえがき テストを書いていて何を指標にテスト書いたらいいか分からない、ということがありませんか? うん?コードカバレッジ 100% を目指してテストを書く?ええ…
最高に面白かった。軽く紹介したいと思う。結論から書くと掛け値なしに良い本でした。 Rails 書く人は Railser と揶揄されがちですが、 Rails を普段書いてるけど Ruby はよく分からんという人にもオススメです(無粋なツッコミする人がいるので少し補足する…
仕事で今まで奇跡的に動いていたコードが突然動かなくなるバグに遭遇して調べていたら、 Ruby の定数に関する仕様のせいだということが判明した。 class Hoge X = 'X' end という風に定義されている定数があるのを class Fuga puts X # 本来なら動かない end…
class Hash def nested_symbolize_keys self.reduce({}) do |memo, (k, v)| v = v.nested_symbolize_keys if v.is_a?(Hash) memo[k.to_sym] = v memo end end end 例外とか考えてない愚直なコード。ちょっと今日こんなのほしいなって思ったから、思いつきで…
Slack で動く bot を作る(とりあえず発言だけ) - (define -ayalog '()) ということで今回もサクッと。Slack で bot 作ってという無茶ぶりを某 naoiwata-san に言われたので、とりあえず API とか調べてたら思いの外簡単に出来そうだったのでやってみたという…
なんか今ふたつ方法があるぽくて、以下に並べてみる。 anthonator/tilt-jbuilder · GitHub andrewjanssen/padrino-jbuilder · GitHub tilt-jbuilder といわれる gem と padrino-jbuilder というまんまな名前の gem 、このふたつが今 Sinatra/Padrino でアプ…
って思ったんだけど、これが少し事情が複雑で単純に Helper を Controller に include するのはあまりよろしくないらしく出来れば AbstractController で定義されている helper を使う方が良いらしい。helper (AbstractController::Helpers::ClassMethods) -…
例えば Ruby ではこういうことが出来る。 a, b = [1, 2] a+b #=> 3 便利ですね。そして Clojure ではこういうことが出来る。 (def m {:a 1, :b 2, :c 3}) (let [{a :a, c :c} m] (+ a c)) ;=> 4 (def v [100, 200, 300]) (let [{a 0, b 2} v] (+ a b)) ;=> 4…
はい、半年前に書いたコードをちょいちょい弄ってるんですが、テストコードが腐ってました。いやー、当時 FactoryGirl を触ろうとしていて使い方分からないし、色々分からないし諦めてたんですが、改めて fixture 使ってるコード読むとなんか辛い。あと、直…
リンクを入力したら、タイトルを取得するって「はてなブログ」とかでよくある感じですが、それがまんま欲しかったので調べたら、まぁ gem あるよねってことで。 pismo っていうんですがかなりさくっと使えたので好感触でした*1。 peterc/pismo · GitHub usag…
書く必要あんのかって感じもありつつ、なんとなくこう書きたいから書いた!っていう感じ。例えばこんな感じ。 subject { FactoryGirl.build(:people, params) } 0.step(100, 10) do |n| context "#{n}の場合" do let(:params) { {age: n} } it '正常に更新出…
gregbell/active_admin · GitHub なんとなーく、 ActiveAdmin あたりが賑やかでいいなぁと思ったので入れたかったんだけど、現在開発中のアプリでは既に認証の機能を実装してあるから*1、そのまま入れちゃうと Devise あたりと競合してしまってしんどいので…
require 'spec_helper' describe Group do describe '#add_member' do subject { group.add_member member } context 'ユーザーを追加した場合' do let(:group) { FactoryGirl.build(:group) } let(:member) { FactoryGirl.build(:member) } it 'グループの…
そんな夢のようなスクリプトを書いてくれている人がいた。最高。 Uninstall all rbenv gems #!/usr/bin/env bash uninstall() { list=`gem list --no-versions` for gem in $list; do gem uninstall $gem -aIx done gem list gem install bundler } #rbenv v…
って今日思ったよ。 頑張ってテスト書いてるよ!
Rubyで作る奇妙なプログラミング言語 ?ヘンな言語のつくりかた?作者: 原悠出版社/メーカー: マイナビ発売日: 2014/01/16メディア: Kindle版この商品を含むブログを見るほい。読みました。Esoteric Languageを題材にした珍しい本ですね。前々からずっと読んで…
let(:user) { FactoryGirl.create(:user) } って書いてたら全然テスト通ってくれなくて、カナシミだったんだけど下のように感嘆符を付けるだけでテストが通るようになった。 let!(:user) { FactoryGirl.create(:user) } letは必要なときにしか評価されないか…
(): found a tab character that violates indentation while scanning a plain scalar at line 815 column 15 って言われて気付く、ハードタブダメだったね…って。
Middleman: Hand-crafted frontend development ちょっと静的な*1webサイトを作ろうと思ったときに、これ使うの最高に良いと思う。いいなって思った機能が2つあるんだけど*2 ファイルの変更を監視してコンパイルしてくれる 自動的にリロードしてくれる(LiveR…
Searchableっていう名前のmoduleが定義されていて、まさか自作のmoduleだなんて思わなくてすっげー紛らわしかった。なんかいかにもそんなクラス名のクラスがRailsならありそうだなーって思うじゃん><2014-02-25 18:25:34 via webなんというか、Javaのimpor…
今年、一番最初に書いたプログラムです。 Rubyでユーザーストリーム取得して、自分に対する空リプに対して問答無用で「くけっ」と返すプログラムです(ぇ # -*- coding: utf-8 -*- require 'twitter' Process.daemon config = { :consumer_key => "YOUR_CONS…
たまになのでブログ書く。 最近、Railsで開発してみてハマったこと ここ1週間で2回OSを入れなおすというミラクルが起こり、なんというか、それに伴って当然のことながら環境を2回も作りなおすはめになり、そのたびに地味にハマったので(というか、以前ハマっ…
やったこと Jadeで書いたソースコードを保存したら自動でコンパイルして、自動で生成したHTMLを適当なブラウザで開く&自動でコミットする。 普通にHTML書いているだけなら、上書きする度にCtrl+rをブラウザで押して更新すればいいけど、テンプレートエンジン…
12月1日快晴(たぶん) 地域Ruby会議ということで、福岡Ruby会議01に参加して、しかもLTまでしてきました。 僕はLispの国(くまもと)からの参加でいつも通り新幹線で、朝から移動でしたよっと。 開始前のできごと… GuildCafe Costaで行われた福岡Ruby会議01。で…