Elasticsearchを使ったテストを書くときにsleep 1するのはやめましょう

井原(@ihara2525)です。 以前RSpecでElasticsearchを使ったテストを書くというエントリの中で、 before do Post.__elasticsearch__.create_index! force: true Post.__elasticsearch__.refresh_index! page Post.import # Wait test cluster to index the …

GulpでSVGスプライトとアイコン一覧を一発生成

出口 (@dex1t) です。 ベクター素材をSVGスプライト化し、インラインSVGとして利用する仕組みを作ったので紹介します。 アイコンフォントかSVGか アイコンフォントとSVGの違いは、ググるとたくさん出てくると思うのですが、 現在開発中のサービスはモダンブ…

Apartment::TenantNotFoundをrescueするElevatorを使う

井原(@ihara2525)です。 apartmentを使ってサブドメインでテナントを切り替える場合、存在しないテナントのサブドメインにアクセスするとApartment::TenantNotFoundが投げられるのですが、これはApplicationController等のレベルではrescueできません。 と…

CircleCI上のCapybara::Poltergeist::JavascriptErrorを回避する

井原(@ihara2525)です。 CircleCIでPoltergeistを使ってテストを回しているのですが、PhantomJSのバージョンが古いため(2015/7/27現在1.9.8)、以下のようなエラーが出てしまいました。 Capybara::Poltergeist::JavascriptError: One or more errors were…

ActiveJob#perform_laterにモデルのインスタンスを渡すテストを書く

井原(@ihara2525)です。 以下のような、インスタンスが変更されるとActivejobでElasticsearchのインデックスを更新する処理があり、そのテストを書きたい!ということでやってみました。 after_commit -> { ElasticsearchIndexerJob.perform_later('index'…

Gyazoでキャプチャした画像をS3に保存するSinatraサーバを書いてみた

井原(@ihara2525)です。 会社はできましたが画像を共有する仕組みがない!というわけで、 画像はS3に保存する 鍵等の共有を各クライアントでやりたくないのでHerokuでサーバを動かす サーバは画像の一覧表示等できなくて良いので、とにかくS3に上げてくれ…

Hound CIを自前でホスティングする

エンジニアの出口 (@dex1t)です。 プルリクエスト毎に、コードの品質をチェックしてくれるHound CIですが、 Privateリポジトリ毎に、$12/Monthとちょっとお高い 自前のカスタムCopを使いたい ということで、自前でホスティングしてみました。Hound自体は、こ…

RuboCopのカスタムCopをつくるときの注意点

井原(@ihara2525)です。 自社の文法チェックのためにRuboCopのカスタムCopをつくりたいと思い調べていたところ、RuboCopのCustom Copを作るという良い記事があるのですが、2015/6/16時点で若干気をつけないといけない点がありました。 rubocop-0.29.1まで…

予約語を管理するgemをつくりました

井原(@ihara2525)です。 先日apartmentを使ってマルチテナントを実装するというエントリを書いたのですが、取得されたくないサブドメインをどうやって管理しようかということで、予約語をためておくだけのgemをつくってみました。 bitjourney/reserved_wor…

ruboty-trelloをつくりました

井原(@ihara2525)です。 弊社にはjourneyさんというrubotyでできたボットがいて、ごみの日を教えてくれたりします。 そんなjourneyさんにTrelloのカードを追加してもらいたく、ありそうでなかったrubotyのプラグインをつくってみました。 bitjourney/rubot…