dev.to をローカルで動かす

2018/08/08 に dev.to が OSS 化された. dev.to is now open source とりあえずローカルで動かすまでにやったことのメモ. Getting Started Getting Started が充実している.ほぼその通りに進めれば問題ない.Ruby は最新版が必要,DB は PostgreSQL.長年 Rails 触っているが地味に PostgreSQL 使ったことがなかった. $ ruby -v => Ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17] $ brew install postgresql $ postgres -V => postgres (PostgreSQL) 10.5 $ pg_ctl -D /usr/local/var/postgres start # Stop $ pg_ctl -D /usr/local/var/postgres stop $ gem install bundler $ gem install foreman foreman は複数プロセスをまとめて管理できるツール. ローカル実行時は Rails サーバ (puma) Webpacker (webpackのラッパー,webpack の実行と hot-reload が走る) Job (DelayedJob) が実行される....

September 3, 2018

multi_seeds_rails をリリースした

gem multi_seeds_rails をリリースした. seeds.rb を複数ファイルに分割して,それぞれ rake タスクとして実行できるようにします. gem つくった 🚀 #rails #rubygems seeds.rb を複数ファイルに分割して,それぞれ rake タスクとして実行できるようにします.https://t.co/QkzsFZZCVg — tanaka.world ™ (@_tanakaworld) June 26, 2018 ...

June 11, 2018

web_service_uri をリリースした

gem web_service_uri をリリースした. Web サービスの URI をパースしてアカウントIDを抜き出したりするパーサ. gemつくった🎉🌈https://t.co/E4LRVHS142 #Ruby #RoR #Rails — tanaka.world ™ (@_tanakaworld) June 10, 2018 ...

June 11, 2018

rumojinize をリリースした

Rails で絵文字を扱いやすくする gem rumojinize をリリースした. Published a gem "rumojinize" for #rails #emoji 🎉 https://t.co/W7eVCvH2gz Featuring "rumoji" made by @markwunsch . — tanaka.world ™ (@_tanakaworld) June 9, 2018 絵文字のエンコード/デコードの自動化 ActiveRecord でモデルのフィールドを指定するコードを1行記述すると,DB保存前に ‘🐶’ → ‘:dog:’ のように絵文字を変換してくれる. そして,モデルのインスタンスにロードしたときに,逆の変換が自動でなされるので,変換のことを意識せずに開発が可能になる. 変換自体は rumoji に任せている. 命名 この gem の名前は rumoji からとって rumojinize としている. Rails の ActiveRecord 系の gem では, “acts_as_xxxxx” という命名をするのが流行っている(?要出展)ようなのだが, acts_as_emoji や acts_as_rumoji はしっくりこず, rumojinize に落ち着いた. MySQLの文字コード MySQLは文字セットによって,絵文字が保存できるできないが変わってくる.絵文字は4バイト文字として扱われる.一般的なデフォルトの utf-8 だと扱えず,絵文字を保存しようとするとエラーになる.MySQL5.5 以上では,文字セットを utf8mb4 と変更することで,4バイト文字も扱えるようになるらしいのだが,正直どこに影響がでるか完全に理解できておらず断念した.絵文字を扱いたかったサービスが既に運用中のサービスで,迅速な対応が求められていたのもある.このあたりちゃんと理解してから導入してみたい. 参考 rails + mysqlでの穏便な絵文字保存方法 実装参考にさせていただきました 🙏 ...

June 10, 2018