読者です 読者をやめる 読者になる 読者になる

モンモンブログ

Ruby, Python, PHP, JavaScript/jQuery などなど気分に応じて

Rails5 の or クエリがバグを誘発しそうで超怖い

Rails5 になって ActiveRecord に or クエリが導入されました。早速、既存のコードを書き換えようとしたんですが、かなり慎重に使わないと結合順序のワナに嵌ってバグりそうで怖いです。 このような(間の抜けた)コードがあったとします。 Country. where(i…

DelayedJob による非同期処理の失敗を exception_notification でエラー通知させる

delayed_jobs による非同期処理時に、exception_notification によるエラー通知メール送信を行う - Qiita こちらの記事を参考に DelayedJob のエラー通知を実装していたんですが、 Rails5 で alias_method_chain が Deprecated になってしまったので Module.…

Rubyで2項演算子が単項演算子に化けて悪さする話

DateTime.now + 1.hour と DateTime.now +1.hour は異なる値を返します。 何を言ってるのかわからねーと思うがこの実行結果を見てくれ。こいつをどう思う? [10] pry(main)> DateTime.now + 1.hour Fri, 29 Jan 2016 11:38:52 +0900 # こっちだと 11:38 [11]…

ActionMailerのメール本文がログに出力されるのを抑制

メール本文がログに出力されるとログ容量を圧迫するので(あとウザいので)出力を抑制しました。 環境 $ ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin13] $ rails -v Rails 4.2.5 事象 メーラーでメールを送信すると、デフォルトでメー…

ActiveRecordのscope,validatorでの意図せぬキャッシュに要注意

クリティカルなバグの原因になりえます(なりました)。 環境 少々古いです。activerecord の最近のバージョンでは未確認です。 ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-darwin13.3.0] rails-3.2.11 activerecord-3.2.11 MacOSX Mavericks 現象…

Action Mailerのマルチパートメールでファイル形式の優先順位が変わっちゃう件

Action Mailer でマルチパートメールを送るようにしていて、かつ mail メソッドにブロックを渡す場合は注意が必要です。html 版、text 版の優先順位が意図せず変わってしまう場合があります。 環境 MacOSX Mavericks ruby 1.9.3p547 (2014-05-14 revision 45…

Rails + Grape 構成で Grape API ファイルを自動再読み込みさせるには

RESTful な API が楽ちんに書ける grape。 rails との組み合わせで使う場合も README に従うだけで簡単に出来ますが、なぜか自動再読み込み (auto reloading) されないって問題にぶち当たります。 development 環境だと model や controller への修正はブラ…

vimeoの埋め込み動画が表示されなくて困ったけどプロトコルをhttpsにしたら解決した

動画を埋め込む時は動画URLのプロトコルは https にしておきましょうというお話。 このvimeoの動画は下のようなHTMLで埋め込んでます。 <iframe src="http://player.vimeo.com/video/69996517" ↑動画URLのプロトコルはhttp width="480" height="360" ></iframe> 動画URLのプロトコルは http です。これで何の問題もなく再生できますよね。 ですが、動画を埋め込んでるページ(この…

jQuery プラグインを bower のレジストリに登録してみた

表題の通り、jQuery プラグイン jquery.narrows を bower のレジストリに登録してみた時の記録です。 bower とは? Bower入門(基礎編) - from scratch Bower入門(応用編) - from scratch こちらが非常に分かりやすかったです。 基礎編の冒頭から(勝手に)引…

JSON 形式で設定ファイル書かせるの、やめてもらえません?

設定ファイルを JSON 形式で記述するライブラリやフレームワークって、 PHP のパッケージ管理システム composer の composer.json node のモジュール管理システム npm の package.json クライアントサイド JavaScript のパッケージ管理システム bower の bow…

jasmine + スクリーンショット作成サービスでWebアプリを複数ブラウザで一括動作確認!

この投稿は JavaScript - Client Side - Advent Calendar 2013 の13日目の参加記事です。 JavaScript のテスティングフレームワーク jasmine でテストを書いておくと、コードをいくらいじってもブラウザのリロード一発で動作確認できてそれだけでもステキで…

jasmine のテストをページロード時ではなくボタンクリックで実行するには

jasmine テストに時間かかりすぎ!キー! あるプロジェクトで、600行の JavaScript コードのテストを jasmine で書いたら、テストコードだけで700行を超えてしまいました(笑) で、テストにかかる時間も、およそ30〜40秒。長い! コードでもテストでもDOM要…

5分で分かる jasmine テストフレームワーク

JavaScript のテストフレームワーク jasmine がゴキゲンだぜ。書きやすいしテスト結果も見やすいしかわいいよちゅっちゅ。 そんな jasmine ちゃんをまだ触ったことない人のために、出来るだけ取っ付き易くなるように解説してみたいと思います。拙作の jQuery…

Symfony2 + Monolog でのロギングについて(その1)

Symfony2 のロギングでデフォルトで使われてる Monolog について調べたので忘れないうちにまとめておく。 何回かに分けて書きます。今回は Monolog イットセルフについて。 Monolog のバージョンは 1.7.0。 Monolog の構造 Monolog は4つのコンポーネントか…

ローカルでの git push 時にサーバ上で自動で git pull

ローカルで git push した時にサーバ上で自動で git pull してくれるスクリプト gitpull_server.py を公開しました。 とりあえず Github, Backlog に対応しています。 使い方、注意点などは README に書きましたのでそちらをご覧下さい。 みんな大好き Pytho…

Symfony2 のログを見やすく設定する

symfony2 のログってなんか汚くて見難いです。 $ tail -f app/logs/dev.log [2013-08-08 21:53:41] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest". [] [] [2013-08-08 21:53:41] …

php5.3 以前で mixin 的なものを実装

php

php5.4 以降であれば Trait で mixin は実現できますが、 php5.3 以前で mixin 的なことをやるにはどうするか。 こうです。 実行するとこう。 % php mixin.php // $foo->mixin_method MixinClass のインスタンスメソッド yahoooooo! 2013-10-11 // $foo->mix…

(jQuery) select 要素の選択結果で別の select 要素の選択肢を絞り込む jQuery プラグイン "Select Narrowing Plugin"

ある select の選択結果で、別の select の選択肢を絞り込む jQuery プラグインを作りました。 こういうの、「Hierselect」(hierarchy + select, 階層select)っていうらしいです。 ググると同じ目的のライブラリはいくつか見つかるけども、 HTML_QuickForm…

(php) 日付を1日ずつインクリメントして出力

php

php で 2013-01-01, 2013-01-02, ..., 2013-12-31 って具合に、日付をインクリメントしながら文字列として出力したいような場合 DateTime クラス + DateInterval クラス による実装と、 date 関数 + strtotime 関数 による実装と、 2通り考えられるかなーと…

(symfony1.4) フォームクラスの生成で Fatal error: Call to a member function setTableName() とかなんとか

symfony1.4 で、モデルのコンストラクタのオーバーライドをトチったら厄介なエラーに悩まされたのでメモ。 "Customer" モデルクラスのコンストラクタをこんな風に書きました。parent::__construct を呼ぶのを忘れてます。いっぱしの phper なら鼻で笑っちゃ…

(php) いろんな形式の電話番号を統一形式に変換

php

いろんな形式の電話番号の文字列を、000-0000-0000 のような統一された形式に変換したい時ありますよね。こんな風に。 090 1234 5678 → 090-1234-5678 +81 90-1234-5678 → 090-1234-5678 +81 (90) 1234 5678 → 090-1234-5678 ユーザー入力の電話番号でDB検索…

(Symfony2/Doctrine2) Entity の OneToMany のアノテーションを自動生成させる

Symfony2 で、Entity の OneToMany アノテーションを自動生成させる方法についてです。Doctrineのライブラリに手を加えて実現します。 対象バージョンは Doctrine2.3.2。 じゃーいくよ。 まず基本から。Symfony2 での Entity の生成の仕方はこう。 DBのスキ…

わたしは

JavaScript jQuery 糞PHP 糞Symfony Pythonさん Rubyさん などについて書こうと思う

こ・・・

ここがはてなブログか・・・