2014-07-01から1ヶ月間の記事一覧
submitでモデルから挙動を判定してくれるアレですが... 3.0からの機能のようですね。 これで使われているのがclass_optionなるものに記録されたmodel名です。 実装をみたところBaseクラスに対してmethodを定義してあげているだけ...でした # File railties/l…
formタグのsubmitは対象モデルが保存済みかどうかを読み取りに行き、 自前でcreateかupdateかを判定してくれます。 確認フォームのような画面を実装する場合、この点を意識しないと勝手にupdateになって詰みます。*1この魔法を実現している部分がこちら ## l…
super は現在のメソッドがオーバーライドしているメソッドを呼び出し ます。括弧と引数が省略された場合には現在のメソッドの引数がそのまま引き 渡されます。引数を渡さずにオーバーライドしたメソッドを呼び出すには super() と括弧を明示します。 実例 こ…
form_forの中でrenderを使いたい場合、localオプションで指定します。まず、大元のページで <%= form_for(@picture) do |f| %> <div class="field"> <%= render :partial => "page_1", :locals=>{:f=>f} %> </div> <% end %> こうすれば、render先のファイルでもform_forのブロック…
アクアリウムバスに行ってきました 人がいっぱいいます きっと魚もいっぱい... さ...魚の展示会だと思って行ってみたら虫や爬虫類が展示されていた...な、何を言っているかわからねーと思うが...
M-x describe-bindingsをやると、キーバインドについてのリストがつらつらと出てきます。 滅多に使わないバインドも、役割か大雑把な名前さえ覚えていればC-sで検索できます。以前紹介したforegin-regexpのコマンドも、この通り M-s M-% foreign-regexp/quer…
「foreign-regexp.el」をつかうと、地獄めいたemacs正規表現を他の形式で読み替える事ができます。 対応している形式はperlとRuby、さらにはJavaScript。 それぞれ、開発環境が必要ですが。 導入法 パスの通ったディレクトリに $ git clone --depth 1 https:…
M-x describe-variableとやると Describe variable: とか出るので、調べたい変数名を入力します。 幸いにして、tabが効くのでうろ覚えでも何とかなります。 load-pathとやると、こんな感じの出力を得ます load-path is a variable defined in `C source code…
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が使えます。 行末に「,」と入れたい場合は M-x replace-regex RET $ RET , RETです。色々応用が効きますが...独特な正規表現ルールに従わないといけません。 くわしくはコチラ 例えば...次のようなファイルよ…
やや旧聞となりますが納豆消費量日本一の座を水戸市が取り戻したそうです。おめでとうございます。 水戸市が納豆購入額「日本一」に返り咲きました | 水戸市ホームページ 横断幕まで掲げて、お祝いしているそうです。...ところで、この日本一という称号、何…
普通に画像を読み込んでるのに 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 値が入っている変数に対しては何もしません。 また、空変…
みんな大好きImageMagickをRubyから扱うRmagickを導入しようとしたところ、 extconf.rbがドウノコウノの言われて弾かれました。 エラーログを詳細にみていくと、どうもimagemagickを認識していない様子。 こういう時はbrew linkをみてみましょう。 $ brew li…
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 log -pして内容を確認すると... $ git log -p commit b098c4b607c58be6b0d0fd42a0732e1d6e39b9e2 Author:…
複数人でアプリ開発をしており、 既に各々データベースの環境を構築してしまっている時にはこれが便利です。 gem 'dotenv-rails'を追加して ".env"に MYSQL_PASS="password"とやった上で development: adapter: mysql2 encoding: utf8 reconnect: false data…
condでif-elseif-elseなロジックをスッキリ書き下す事が出来ます。 というか、lisp文化ではcondを使うのが一般的なようです。第一引数に評価式、第二に実行内容,,,と書いて行きます。 (progn (setq i t) (cond ((stringp i) 'string) ((integerp i) 'number)…
型を判定します。 型述語というそうです。 文字や文字列の類 objectが文字列か文字(つまり、整数)ならば tを返し、さもなければnilを返す。 (char-or-string-p "hoge") t (char-or-string-p 1) t 数値 (integerp "hoge") nil (integerp 1) t 文字列 (strin…
interactiveの後に渡す文字列で変数を受け取る際ミニバッファに表示する文字列を指定できます。 複数の変数を設定したい場合は改行するようです。 なお、行頭に「コード文字」とかいうものを設定する必要があります。 数値ならば「n」 数値ならばnです (defu…
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 (format "%5d" 0) (format "%5d" 1) (format "%5d" 2)) " 2" ちゃんとした使い方は次のような感じになります (progn (set…
新版が出ていますフルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門 改訂2版作者:上田 隆一,後藤 大地KADOKAWAAmazon [asin:B00LBPGFJS:detail] タイトルからして狂気の臭いしかしない逸品。 最近、Bash系をお勉強しており、タイムリーな…
とりあえず一致するディレクトリ名だけ欲しい場合、"-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言語ライブラリ関数を調べる事ができます。 例えば、printf(3)とかです。何もやらなければ $ man printf | head -n 6 PRINTF(1) BSD General Commands Manual PRINTF(1) NAME printf -- formatte…
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が使えます。 sortオプションに更新時刻を指定することで時系列に並べる事ができます。 また、--formatオプションと各種keyの組み合わせにより自由な表示が可能です。 実例 remote/originの…
Go言語ではfmtなんて素敵なのが標準で推奨されてますね。RubyにもKernel.#formatがあります。 format('%s : %s', Time.now, 1 + 20) #=> "2014-07-02 23:19:45 +0900 : 21" C 言語の sprintf(3)と同じフォーマットを使えるので、以下のようにゼロ揃えなんか…