おふくろさまより愛をこめて

mmmpa ふとしです。誠実なプログラミングを心がけたい。

2016/07 entries

2016/07/30 06:14:54

Capybaraのウェイト時間で足りない場合、さらに待たせる。

Capybaraはfindなどの要素検索メソッドで、見つかるまである程度の時間待ってくれます。 時間が足りない場合は Capybara.default_max_wait_time = 30 などとすることで時間を増やせます。 all('hoge')[0].clickだとおなじみのundefined method `click' for nil:NilClassで終わる

2016/07/28 06:38:08

Access-Control-Allow-Originが設定されてないWeb APIを叩くために中継サーバー書いた。

大げさなタイトルみがありますがただのRailsです。 github.com うすうす実装なのでさがせばあるんでしょうけど、人が書いたもの使いたくない場合ってあるじゃないですか。 起動 $ TARGET=http://you-want-to-ajax.server.com ALLOW=http://your-local-js.server.com rails s つか

2016/07/27 16:26:06

vue-routerのroutesを全部出すやつ

だいたい見れる。 log(dig(router)) function digState (state, path = []) { state.nextStates.forEach((nextState) => { if (nextState.handlers) { nextState.handlers.forEach((handler) => p

2016/07/26 13:28:10

ActiveAdmin辺りでCircular dependency detected while autoloading constant Fooが出る場合の措置。

Rails 4.2.7、ActiveAdmin 1.0.0.pre4で発生しました。 普通にやってる分には出ないんですけど、下の記事みたいに外からRails.application.require_environment!すると、models関連でCircular dependency detected while autoloading constant Fooが出ます。 mmmp

2016/07/25 01:36:14

ベーシック認証が必要なサイトにアクセスするテストで、ダイアログをシカトするためにNginxでProxyする。

Phantomjsじゃ動いてくれないJavaScriptライブラリがありまして(よくある)、Selenium + Firefoxでスクリーンショットおじさんになっています。 nginx.conf 実際はRubyではないのでこのようなコードではないんですけど、概念的にこんな感じです。 server { listen 8080; server_name

2016/07/24 16:00:27

Rails開発でリポジトリには入れたくないんだけどローカルではやっておきたいテストがある場合の取りあつかい

自明だったり、すごく重かったり、細かすぎるテストたちがいます。 重いテストは短期的にも長期的にもコストになり、細かすぎるテストは実装変更時のコストが必要以上に高く、よくありません。 しかし、たまにやっときたいんですよというテストがありますので、本体に影響がないようにやっていきます。 Railsのディレクトリの外にもう一層つくる 以下のような構成になりました。 - /

2016/07/24 00:09:38

Authlogicに関するメモ

認証機能再発明するべからずは有名な鉄則ですが、まるで知らないままというのもマズイので実装を読むことでお茶を濁していきたい。 saltやSCryptの運用、persistence_tokenの更新などで比較的安全にいけるのでは。 パスワード salt Authlogic::Random.friendly_token def friendly_token # us

2016/07/20 22:54:56

AWS Lambdaで使う関数をローカルでテストするサーバーを建てる。

AWS Lambda + AWS Api Gateway + AWS DynamoDBでなにかをつくることにはまっています。 AWS Lambdaで使う関数自体はmochaなどでテストできますが、実際にブラウザから叩くテストをローカルでしたいと思いました。 そこでNode.jsで簡単なサーバーを建てます。 まず、AWS Lambdaはこのような関数です "use stri

2016/07/20 12:06:33

`Regexp`などActiveRecordでメソッドが用意されていない標準SQLの演算子を清く正しく使う。

清く正しくとは、生SQL文字列を書かない程度の意味です。 下の方の長いやつはRails 4までの話です REGEXPはRails 5もしくはArel 7からmatches_regexpとしてメソッドが用意されました。 Writer.where(Writer.arel_table[:email].matches_regexp('.*@gmail.com')) # SELECT

2016/07/17 23:45:04

AWS Lambdaを使って、ブラウザ側とサーバー側で同じバリデーションをするということをやった。

日記です。今日の日記コードはこれ。 github.com qiitaにはさすがにもうAWS Lambdaでフォームなんていう記事は山盛りあったのでこっちで。 日記 Node.jsはサーバーとして動かせるので、ブラウザ側とサーバー側で同じスクリプトを用いることが可能です。(アイソモーフィック?) しかし動かすとなるとサーバーを用意して〜、など色々と難関がありました。そ

2016/07/05 15:44:13

HerokuにSymbolic Link入りを投げるとき気をつけること

リソースを再利用しようとしました。 そこでディレクトリに対してln -sで作成しますが、例えば同ディレクトリ内の何がしかへ張る場合、 $ ln -s development staging とする必要があり $ ln -s ./development staging これだと辿れなくなります。 セキュリティかなにかの都合でスラッシュアクセスがブロックされている

2016/07/05 02:34:47

レールズにプルリクエストがマージされてハッピーだった

ので、思いつく限りのSNSやブログに書いています。 ここにも書きます。 どれ 以下の記事のやつを作ってる時に「バグかしら?」と思ってモンキーパッチで回避してて、せっかくだからとpull requestを飛ばしてみたら忘れた頃にマージされたという話です。 qiita.com Rails5.0.0がつい先日リリースされましたが、その時には自分でも忘れていて、ほん今日、な