ぴよログ

↓に移転したのでこっちは更新されません、多分。

Ruby

RailsアプリをHeroku→さくらVPSに移行

Herokuのプランが変わったのでRailsアプリケーションをさくらに移行した。 ここ最近Herokuの料金体系が変わってFree Dynoは18時間までしか動かせないようになったらしい。それにともなってこんなHackをする人まで出てきているようで、Freeでとりあえず動かし…

markdown_section_numbering gemをアップデート

昔こんなのを作ったわけだけど、本当に少しだけ足りないなと思うところがあったのでアップデートしました。 マークダウンに見出し番号をつけるRuby Gem書いた - PILOG 上の記事で、「Automatorと連携して選択中のテキストを変換する」っていう使い方について…

Rubyで濁点/半濁点が分離した文字を1文字に統一するには

Macのファイル名周りで発生するのでハマったことがある人もいると思うんだけど、ひらがなやカタカナの濁音や半濁音の文字を表現するのに2文字分使われていることがあったりする。 例えばFinderでぱぴぷぺぽ.txtというファイルを作ってEmacsで開いてみるとこ…

Azure Storage QueueでBase64関係の例外

バッチ処理のためのメッセージキューとしてMicrosoftのAzure Storage Queueを使っている。C#での使い勝手は言わずもがなだし、Rubyでも最低限のSDKが提供されているのでAWSと比べて使い勝手が悪いということはない。 ただ、Rubyでメッセージを追加してC#でメ…

ActiveRecordの日付カラムでレコードを絞り込める by_star gem

久々に便利なの見つけた。有名だったりするのかな? radar/by_star by_starはモデルの絞り込みに使えるgemで、ActiveRecordとMongoidで使える。 ある期間内のレコードだけを表示したり集計を取ったりというときに使える。自分でも大したコードにはならないん…

Grapeを使ったAPIで独自のエラーコードも一緒に返す工夫

RailsでGrapeをっていうgemを使うとちょちょいっとAPIが作れるという話は以前にも書いた。 RailsのGrapeとJbuilderでAPI開発 - PILOG Grapeを使ったAPI実装でのネストやパラメータ - PILOG このときはお試しだったんだけど、今回ちょっと本格的に書くかもと…

ActionViewのdom_id便利そう

RailsアプリでJSでデータを書き換えたあとでHTMLを更新するってことはよくあって、そのときはだいたいidを使うと思う。そしてidにはモデル名とモデルのidをそのまま使うことが多いはず。 <li id="item-192">...</li> このようなidを書くとき今までは自分でベタ書きしてしまっていた…

CSVをマークダウンの表に変換するcsvtomdをアップデート

自分用便利gemが便利じゃなかったのでその部分を修正しました。これぞドッグフーディング。 CSVテキストをMarkdown形式のテーブルに変換するgem作った - PILOG 以前作ったときはスペースとか消してよくね?と思ってgsub(" ","")してたんだけど全然だめでした…

ruby-modeの野郎が勝手にマジックコメント入れてた

Emacsのruby-mode使ってたら日本語を含むバッファを保存するときに勝手にマジックコメント入れてた。 # -*- coding: utf-8 -*- Ruby2からは要らないので消しておく。 (setq ruby-insert-encoding-magic-comment nil)

自分の環境だけで特定のgemを使う方法

オープンソースのプロジェクトの動作確認するときとかに、いつも使っている開発用のgemを入れたいんだけどGemfileは更新したくないってことない?僕の場合、関係ないファイルを汚しておくとうっかりコミットしてしまうことがあるので避けたいと思ってる。 使…

CSVテキストをMarkdown形式のテーブルに変換するgem作った

markdown_section_numberingに続いて単発のテキスト変換gemを作ってRubygemsで公開した。 今回作ったのはコンマ区切りで書いたテキストをマークダウン形式のテーブルに変換するメソッドを提供するモジュールで、基本的には自分がAutomator経由で呼び出すこと…

cygwinでrbenv

cygwinでもrubyを使いたいのでrbenvを導入した。導入プロセスと起こった問題への対処法をメモしておく。 導入手順 こちらの記事が詳しい。 Ruby on Rails 3.2 を Cygwin にインストールする手順をかなり丁寧に説明してみました - Rails 雑感 - Ruby on Rails…

自作gemがちょっとダウンロードされていて謎

マークダウンに見出し番号をつけるRuby Gem書いた - PILOG 前にちょろっと作ったgemのダウンロード数を見てみたらこんなことになっていた。 markdown_section_numbering | RubyGems.org | your community gem host rubygemsの検索でmarkdownとやっても全然出…

CarrierWaveでアップロードした画像のファイル名を日時にすると困る

CarrierWaveというgemを使うとRailsアプリケーションに画像アップロード系の機能を割と楽に実装することができる。 アップロード先はサーバーローカルだけでなく、AmazonS3やGoogleなどのクラウド系のストレージにも対応しているし、アップロード時にリサイ…

Rails/RSpecでのテストコードとアプリケーションコードの切替 on Emacs

21世紀にEmacsの話。Railsの開発するときにEmacsでアプリケーションコードとテストコードを移動するのが面倒くさかったので、それを解決するelispを探して入れてみたら思いの外便利だったのでメモっておく。 それがこちら。 EmacsWiki: Rspec Mode パスの通…

t.string :urlってやっちゃう #あるある

URLを入れておきたいカラムなのにRailsのマイグレーションでt.string :urlって書いてvarchar(255)にしちゃって、実際の運用で日本語URLがエンコードされて渡ってきて余裕でオーバーするっていうのはあるあるじゃないですか?それとも初心者あるある? URLに…

マークダウンに見出し番号をつけるRuby Gem書いた

マークダウンでメモを書いたりブログを書いたりしていたけど、kobito-cliでPDF化すると見た目もなかなか良いということもあって、そこそこしっかりしたドキュメントもKobitoでマークダウンするのが最近自分の中での流行りになってきた。 ただそこそこ量があ…

Deviseで生成したユーザーの更新フォームに自前のフィールドを追加する

Rails4+Deviseの話。Deviseでユーザーを作るとデフォルトでユーザー情報更新フォームがついてくる。これはbootstrapでスタイル付けしてあるものだけど、基本はこんな感じになる。 このUserモデルに対して別のフィールドをいくつか追加した上で、同じフォーム…

Pry 0.10.0でundefined method `pager&#39;

Rails4でデバッグ用にPryを入れようと思ってGemfileにこんな風に書いた。 group :development do gem 'pry' gem 'pry-rails' gem 'pry-byebug' gem 'pry-stack_explorer' end これでrails consoleを起動してゴニョゴニョしているとなんだか見慣れないエラー…

Rubyで文字列を正規表現にマッチする単位で分割する方法

タイトルがわかりづらいけど、この文字列を str = "ab#cde# ##...fgh.i##" こうしたい、 ["ab", "#", "cde", "#", " ", " ", "#", "#", ".", ".", ".", "fgh", ".", "i", "#", "#"] という話。 文字列はひとまとめ、それ以外はバラバラにという感じで。 分割…

1日に数回起動するようなスクリプトをHerokuで動かす荒業

HerokuにはSchedulerっていうAddonがあって、それを使うと10分毎、1時間毎、1日毎という単位で好きなコマンドを動かすことができる。 ちょっとしたスクリプトを動かすためだけにサーバーを立てるのは面倒だから、そこをHerokuにしてしまおうという荒業を考え…

REPLエディタ Light Tableを試す

Facebookでこんなのが流れてたので思わずインストールしてしまったテキストエディタ。 エンジニアライズ - 【開発意欲を刺激するエディタの紹介】 http://www.lighttable.com/... LightTableはプログラマを中心に新たに注目されているエディタです。リアルタ…

RailsのRakeタスクが定義される順番

Railsで使うRakeタスクは大きくわけて3種類あり、普通はこの順番で定義されることになっている。 gemのタスク アプリケーション固有のタスク Railsのタスク まずソースコードを読んでみた。 Rakefile # Rakefile require File.expand_path('../config/applic…

Rubyで標準出力を文字列で乗っ取る

この間書いたこの記事のコードがDRYじゃないので少し修正した。 GrapeのAPIのエンドポイントをrake routes的に出力する - PILOG やりたかったのは記事タイトルの通りで、Grapeで定義したAPIの結果をrake routesの結果と一緒に出力するというもの。 ソースを…

Pry便利だけどスタックトレース見られない、を解決

Pryまじ便利。 Pryが真の力を発揮してくれる19個のコマンドとコマンドの自作方法[Rails] - 酒と泪とRubyとRailsと ちなみにPryにはこういう意味があったらしい。知りませんでした。ロゴを見る限りてこをイメージしているらしい。 英辞郎 on the WEBより pry …

GrapeのAPIのエンドポイントをrake routes的に出力する

RailsアプリケーションにGrapeを使って定義したエンドポイントはrake routesには表示されません。表示されるのはroutes.rbでマウントしたAPIのルートのみ。 そこで自前のrake routesを定義してGrapeのAPIもroutesに表示してあげることにしました。 参考 @kam…

Rubyのダミーデータ生成gem

Railsアプリケーションの作り始めってローカルのデータベースにデータが全然なくて何かと作りづらいってことありませんか?データがないとページネーション書けないし、なんか雰囲気出ないし、、、みたいな。 Railsの場合はseed.rbにデータ生成プログラムを…

ruby-end.elいけてる

導入はここを見るといいです。 rejeep/ruby-end.el これだけでSublimeよりイケてる環境になった気がします。

Octopressによるブログ構築+Tips

ブログはこっちがメインなんだけど、調べたこととか学んだことをさくっと書いておく場所が欲しくて少し前から静的サイトジェネレータについて調べていたんですが、それがだいたい落ち着いたんでまとめておきます。 まず結論ですが、こうなりました。 Octopre…

ぼっちで大江戸Ruby会議 #oedo04

4月19日の大江戸Ruby会議04、浜松から単身参加してきました。この手の会は初めてだったけどスピーカーが豪華だったのでえいやと参加を決めた感じです。ついでに他の予定も絡めつつ。 大江戸Ruby会議04 全体的な感想 踏んだバグは自分で直すもの Ruby Hacking…