Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

2014-07-01から1ヶ月間の記事一覧

railsにでてくるclass_optionなるものの正体

submitでモデルから挙動を判定してくれるアレですが... 3.0からの機能のようですね。 これで使われているのがclass_optionなるものに記録されたmodel名です。 実装をみたところBaseクラスに対してmethodを定義してあげているだけ...でした # File railties/l…

submitの挙動はモデルが保存済みかどうかで決まる

formタグのsubmitは対象モデルが保存済みかどうかを読み取りに行き、 自前でcreateかupdateかを判定してくれます。 確認フォームのような画面を実装する場合、この点を意識しないと勝手にupdateになって詰みます。*1この魔法を実現している部分がこちら ## l…

superで上位クラスの同名メソッドを呼び出す

super は現在のメソッドがオーバーライドしているメソッドを呼び出し ます。括弧と引数が省略された場合には現在のメソッドの引数がそのまま引き 渡されます。引数を渡さずにオーバーライドしたメソッドを呼び出すには super() と括弧を明示します。 実例 こ…

form_forの中でrenderを使いたい場合localオプションで指定する

form_forの中でrenderを使いたい場合、localオプションで指定します。まず、大元のページで <%= form_for(@picture) do |f| %> <div class="field"> <%= render :partial => "page_1", :locals=>{:f=>f} %> </div> <% end %> こうすれば、render先のファイルでもform_forのブロック…

ケースで飼う生き物のイベント「アクアリウムバス」に行ってきました

アクアリウムバスに行ってきました 人がいっぱいいます きっと魚もいっぱい... さ...魚の展示会だと思って行ってみたら虫や爬虫類が展示されていた...な、何を言っているかわからねーと思うが...

自分のemacs環境のキーバインドを調べたければ「describe-bindings」か「describe-key」を使う

M-x describe-bindingsをやると、キーバインドについてのリストがつらつらと出てきます。 滅多に使わないバインドも、役割か大雑把な名前さえ覚えていればC-sで検索できます。以前紹介したforegin-regexpのコマンドも、この通り M-s M-% foreign-regexp/quer…

「foreign-regexp.el」を使って地獄のemacs式正規表現を手慣れた方式の正規表現に読み替える

「foreign-regexp.el」をつかうと、地獄めいたemacs正規表現を他の形式で読み替える事ができます。 対応している形式はperlとRuby、さらにはJavaScript。 それぞれ、開発環境が必要ですが。 導入法 パスの通ったディレクトリに $ git clone --depth 1 https:…

emacs lispで使われる変数を確認する

M-x describe-variableとやると Describe variable: とか出るので、調べたい変数名を入力します。 幸いにして、tabが効くのでうろ覚えでも何とかなります。 load-pathとやると、こんな感じの出力を得ます load-path is a variable defined in `C source code…

strong_parameterで安全にparamを渡す

carrierwaveの自動生成スクリプトをみてたらこんな記述が... # Never trust parameters from the scary internet, only allow the white list through. def picture_params params.require(:picture).permit(:image) end これはstrong_parameterという奴で、…

replace-regexを使って行末に文字を捩じ込んだり、erbから要素を抽出したりする

行頭や行末に文字を捩じ込む場合、replace-regexが使えます。 行末に「,」と入れたい場合は M-x replace-regex RET $ RET , RETです。色々応用が効きますが...独特な正規表現ルールに従わないといけません。 くわしくはコチラ 例えば...次のようなファイルよ…

公的資料 品目別都道府県庁所在市及び政令指定都市 ランキングが楽しい

やや旧聞となりますが納豆消費量日本一の座を水戸市が取り戻したそうです。おめでとうございます。 水戸市が納豆購入額「日本一」に返り咲きました | 水戸市ホームページ 横断幕まで掲げて、お祝いしているそうです。...ところで、この日本一という称号、何…

Rmagickより軽いMagick系ラッパーminimagickでメモリを節約する。

普通に画像を読み込んでるのに Stack level too deep等々と出たら、minimagickを使いましょう。 https://github.com/minimagick/minimagick これはmogrifyというmagick系*1用CLIスクリプトを裏で動かすモノなんだそうです。 こうすると、オリジナルのRmagick…

【読書メモ】「きょうも料理 お料理番組と主婦 葛藤の歴史」

きょうも料理―お料理番組と主婦 葛藤の歴史作者: 山尾美香出版社/メーカー: 原書房発売日: 2004/04メディア: 単行本購入: 1人 クリック: 6回この商品を含むブログ (21件) を見るこの本は明治以降の料理番組・雑誌を分析、料理という文化を調査、という趣旨の…

「||=」や「&&=」の挙動

|| Kernel.puts 'odd' || val.odd? これは Kernel.puts 'odd' if val.odd? と同じ意味です。値が設定されていない場合、初期値を設定する能力もあります。 Kernel.puts hoge ||= "test" test => nil 値が入っている変数に対しては何もしません。 また、空変…

brewで入れたパッケージをちゃんと読み込んでいないようなら、brew linkしてみる

mac

みんな大好きImageMagickをRubyから扱うRmagickを導入しようとしたところ、 extconf.rbがドウノコウノの言われて弾かれました。 エラーログを詳細にみていくと、どうもimagemagickを認識していない様子。 こういう時はbrew linkをみてみましょう。 $ brew li…

オプションとpstopdfコマンドを使ってmanの結果をpdfに書き出す

manコマンドにもオプションがあります。 このうち、"-t"オプションは標準出力にmanの結果を書き出す子です。 -t Use /usr/bin/groff -Tps -mandoc -c to format the manual page, passing the output to stdout. The default output format of /usr/bin/grof…

空コミットを作るにはgit commit --allow-empty

Git

$ git commit --allow-emptyとやると、空のコミットをつくる事が出来ます。 新しいブランチ切ってとりあえず何かやりたい場合は使えます。ためしにgit log -pして内容を確認すると... $ git log -p commit b098c4b607c58be6b0d0fd42a0732e1d6e39b9e2 Author:…

database.ymlにdotenvの値を導入したい場合erbの記法を使う

複数人でアプリ開発をしており、 既に各々データベースの環境を構築してしまっている時にはこれが便利です。 gem 'dotenv-rails'を追加して ".env"に MYSQL_PASS="password"とやった上で development: adapter: mysql2 encoding: utf8 reconnect: false data…

condでif-elseif-elseなロジックをスッキリ書く

condでif-elseif-elseなロジックをスッキリ書き下す事が出来ます。 というか、lisp文化ではcondを使うのが一般的なようです。第一引数に評価式、第二に実行内容,,,と書いて行きます。 (progn (setq i t) (cond ((stringp i) 'string) ((integerp i) 'number)…

emacs lispでデータ型の種類を判定する

型を判定します。 型述語というそうです。 文字や文字列の類 objectが文字列か文字(つまり、整数)ならば tを返し、さもなければnilを返す。 (char-or-string-p "hoge") t (char-or-string-p 1) t 数値 (integerp "hoge") nil (integerp 1) t 文字列 (strin…

interactiveでミニバッファから変数を受け取る

interactiveの後に渡す文字列で変数を受け取る際ミニバッファに表示する文字列を指定できます。 複数の変数を設定したい場合は改行するようです。 なお、行頭に「コード文字」とかいうものを設定する必要があります。 数値ならば「n」 数値ならばnです (defu…

prog1やprog2はprognの親戚。ただし挙動が一寸違う。

prognの親戚、prog1やprog2やは数値のS式の結果をゲットできます。 たとえばこんな感じ。 (prog2 (setq i 12) (setq j 34) (format "%5d" (+ i j))) 34 これだと何の役に立つかサッパリですが (setq i '(1 2 3)) (prog1 (car i) (setq i (cdr i))) でprog1を…

prognで式をまとめる。

prognは与えられた式を順々に評価し、最後の式を返してくれます。 例えば、次のようにやると、最後の式の結果のみを返します。 (progn (format "%5d" 0) (format "%5d" 1) (format "%5d" 2)) " 2" ちゃんとした使い方は次のような感じになります (progn (set…

【読書メモ】「シェルスクリプト高速開発手法入門」

新版が出ていますフルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門 改訂2版作者:上田 隆一,後藤 大地KADOKAWAAmazon [asin:B00LBPGFJS:detail] タイトルからして狂気の臭いしかしない逸品。 最近、Bash系をお勉強しており、タイムリーな…

grepのlオプションでファイル名だけ表示させる

とりあえず一致するディレクトリ名だけ欲しい場合、"-l"オプションが便利です。 $ grep -l you $(find $(pwd) -type f -maxdepth 2) /Users/shuzo/src/octopress/.bundle/config /Users/shuzo/src/octopress/.editorconfig /Users/shuzo/src/octopress/.git/…

manコマンドでC標準関数を調べる

コマンドの意味を知る時に使う、manコマンド。 実は...同名のC言語ライブラリ関数を調べる事ができます。 例えば、printf(3)とかです。何もやらなければ $ man printf | head -n 6 PRINTF(1) BSD General Commands Manual PRINTF(1) NAME printf -- formatte…

OS Xで文字列からdateを生成する

OS Xで文字列からdateを生成するには、以下のようにします。 $ date -jf '%Y-%m-%d' '2014-12-12' 2014年 12月12日 金曜日 23時04分30秒 JST指定しない部分は、環境から呼び出すみたいです UTCにしたい場合はjnfとします $ date -juf '%Y-%m-%d' '2014-12-12…

指定日以前の不要ブランチをまとめて消す

前回の続きっぽい記事です。手当たり次第ブランチを切りまくっていると、問題になってくるのが不要ブランチの処分。 実験用のお砂場として弄り回した果てに存在すら忘れていたのがチラホラ... 以前も似たような事をやりましたが、あのバージョンだと日付以降…

ブランチ一覧を更新時刻つきで表示したい場合、gitのfor-each-refが使える。

Git

ブランチの一覧を更新時刻つきで表示したい場合、gitのfor-each-refが使えます。 sortオプションに更新時刻を指定することで時系列に並べる事ができます。 また、--formatオプションと各種keyの組み合わせにより自由な表示が可能です。 実例 remote/originの…

formatでアレ気文字列を綺麗に生成する

Go言語ではfmtなんて素敵なのが標準で推奨されてますね。RubyにもKernel.#formatがあります。 format('%s : %s', Time.now, 1 + 20) #=> "2014-07-02 23:19:45 +0900 : 21" C 言語の sprintf(3)と同じフォーマットを使えるので、以下のようにゼロ揃えなんか…