Rails Engineを使った開発

一つ前に携わったプロジェクトではサブシステムがたくさんあり、それぞれがrailsで構築されていて共通処理やmodelはrails engineにあつめられ各システムで参照しておりました。

今までgemのコードリーディングをする時にしか意識していなかったrails engineですが(deviseとかとか)、結構便利だということを今更ながら実感し、最近は共有処理をengineに書き出してそれを参照するようにしています。

クックパッドさんでも共通部分をengineに集めているようです。
新規サービスの管理画面を短期間で見栄え良く実装する

ドリコムさんでは複数のengineを組み合わせてシステムを作っているようです。
Mountable Engine だらけの Rails アプリ開発

Read on →

Railsでbootstrap datetimepickerを日本語化しつつ導入(with rails assets)

普段はよくbootstrap-datepickerを使うのですが、 今回の案件では時刻まで絞り込みたいというお話だったのでdatetimepickerを導入してみました。

こちらを使います。かなり高機能な上に日本語化まで対応できる優れもの。
Eonasdan/bootstrap-datetimepicker

デモを見るだけでもワクワクしますね。
入れ方もたくさん用意されていていいですね。
今回もrails-assetsで導入します。

Read on →

pecoでctrl+jとctrl+kで上下移動

pecoをランチャーとして使っているのですが、
メニューを呼び出した後ホームポジションから手を離して矢印キーに指を運ぶのが嫌でctrl+jとctrl+kで移動できないかと思っていたら会社の人にやり方を教えてもらいできました。

具体的にはpecoのキーマップを使います

Read on →

Railsでbootswatch導入(with rails assets)

管理画面を作るにあたってbootstrapだけで1から作るのもしんどかったので、フリーのbootstrap用テンプレートbootswatchを使って管理画面を作ってみたいと思います。

導入には以下4パターンがあるかと思います。

  1. bootswatch-railsなどのGemを使う
  2. bowerで入れる
  3. rails-assetsで入れる
  4. サイトからダウンロードしてassets下に配置する

今回はrails-assetsで導入してみました。

Read on →

RailsでIE8の対応(with rails assets)

IE8も推奨ブラウザに含めるプロジェクトに関わることになったのでrails-assetsを使ってIE8に対応していきたいと思います。

やることとしては以下の感じですかね。

  • jquery1.x系の導入(今回は1.9.1)
  • html5shiv.jsの導入
  • respond.jsの導入

テンプレートエンジンはslimを使います。

Read on →


今日 嫁にホワイトデーのお返しをしたよ

嫁のホワイトデーのお返しがようやく届きました。

かわいいマウスパッドというリクエストでしたが、探したけどかわいいマウスパッドがあまりなくどうしたものかと思ってましたが、 商品を自由にカスタマイズできる Zazzleというサービスがとても良さそうだったのでこれを利用しました。

オーダーが3月9日。銀行振込も同日に行いました。
振込確認したので作りますメールが12日にきて、13日に発送しますメールがきました。
アメリカからの発送なので少し日数がたった3月16日に家に届きました。
でも実際には仕事で受け取れず、受け取ったのは今日です(^^;)

こんな感じのマウスパッドが届きました! 素晴らしい出来!

何か記念品を贈りたくなったらまた利用しようと思います。


重複している画像ファイルを削除(rubyで)

重複しているファイルを削除します。

delete_duplicate_file.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
require 'digest/md5'

file_hash = ARGV.inject(Hash.new) do |hash, file|
              hash[file] = Digest::MD5.hexdigest(File.open(file, 'rb').read)
              hash
            end

duplicated_md5 = file_hash.values.sort.inject(Hash.new) do |file_count, md5|
                   file_count[md5] = file_hash.values.count(md5)
                   file_count
                 end.select do |md5, count|
                   count > 1
                 end.keys

duplicated_md5.map do |file_md5|
  # 削除ではなく重複したファイルを他のディレクトリに退避したい場合などはここを変えてください。
  File.unlink file_hash.invert[file_md5]
end
Read on →

ファイル内の特定の行の数値をインクリメントする

yamlファイルの特定の数字をインクリメントしたくてスクリプトを書きました。 データとしてはこんな感じです。

1
2
3
4
5
6
7
8
9
10
11
12
data_one:
  col_num: 1
  name: hoge
  options: fuga
data_two:
  col_num: 1
  name: foo
  options: baa
data_three:
  col_num: 1
  name: foofoo
  options: baabaa
Read on →

はじめて医療費控除を申告してみたよ

医療費控除。

薄々は知っていたけどそんなに病院にお金を使うこともなく、領収書と取っといたりするのも面倒なのであまり意識したことはなかったのですが、
去年はエクストルージョンという歯の処置を保険適用外(15万弱しました)でやったりとかなりお金を使ったので今回は医療費控除を請求してみることにしました。

郵送で申し込みます。

Read on →