Ruby

bundle openでgemのソースを一発で開く

bundle installしたgemのソース見るのに、今まで普通にインストールされたパスのディレクトリ探してエディタで開いて見てたのだけど、環境変数BUNDLER_EDITORでエディタを指定して、bundle openでそのgemのソースがあるディレクトリがエディタで一発で開ける…

関数プログラミングっぽくmapに2引数関数をカーリー化して渡す

rubyで1引数関数をmapに渡す場合は、こんなかんじでメソッドのシンボルをProcオブジェクトとして渡せて関数プログラミングっぽい書き方ができるんだけど、 irb > ('a'..'c').map &:upcase => ["A", "B", "C"] 2引数になるとどう書けばよいんやろうと思ってた…

EC2インスタンス起動後にsshできるまで待つ(若干手抜き)

werckerでインフラCIしようと思って、aws-sdkからEC2インスタンス起動して、knife-soloでsshしようとしたらconnection refusedで弾かれて若干ハマったのでメモ。werckerのビルドこけてもwercker自体にはログイン出来ないので状態確認と切り分け苦労した。 ポ…

aws-sdkでEC2のインスタンス起動する

awscliはちょっと作業するのには簡単でよいのだけど、自動化したり何かに組み込んだりするにはjqとbashでがんばるのは辛みあるのでaws-sdkからAPI叩いてみるの試した。APIはRuby用ので、バージョンはaws-sdk 2.0.28です。 $ gem install aws-sdkec2-run-inst…

Capybaraでテスト中のHTMLをダンプしてデバッグする

カピバラさんでテストが通らないんですけど、テスト中のナマのHTML見たいんだけどどうなってんのという時の技。準備としてpry-byebugというgemを使うのでGemfileに書いてbundle installとかして下さい。 gem 'pry-byebug' あとはデバッグで止めたい場所にこ…

GitHubコミットメッセージの英語の書き方の文例が検索できるサービス作った

経緯 個人的にgit commit -m " うっ、英語でなんて書けばよいんだろう。。。。ってなることが多くて、GitHubの公式の検索ってソースコードは検索できても、コミットメッセージをリポジトリ横断的に検索したいなんてことはできないんですよねぇ。まぁネイティ…

vagrant上でbundle exec遅いの/vagrantにgem入れてたからだった罠

vagrant上で開発するのに/vagrant共有してそこをプロジェクトのルートにして手元のエディタでコード書いたりしてて、その流れでbundle install --path vendor/bundleとかして/vagrant上にgemもインストールしちゃってたのだけど、なんとなくvagrant上でbundle…

vagrantからterminal-notifierに通知飛ばす。

前回guardでいい感じに自動テスト環境セットアップしたけど、あれ?terminal-notifierもvagrantから通知できなくね?ということで、またしてもググってみたところ、おぉ神よ。 vagrant-notify+terminal-notifierでvagrantからローカルに通知をする - Qiitate…

vagrant上でguardのファイル検知する

Railsでvagrant上にrspec+guard+sporkな環境作ってたのだけど、guardの検知ってvagrant側からできなくね?っと思って調べたメモ。 rspec+guard+sporkの組み合わせは基本的にRailsチュートリアルと同じ構成だけど、現時点での最新版使ってるので設定方法に若…

Railsでform_tagをpostからgetにするとURLにutf8のパラメータが付くあれ消したい

検索フォームpostよりgetの方がURLがわかりやすくなってよいなぁとか思ってgetにしたらURLにutf8=✓とかbutton=とか勝手にパラメータついてなんなんこれってかんじ。 結論から言うと同じことしてた人がいるみたいでこの方法で消せた。 Ruby on Rails - submit…

Railsで4バイトUnicode絵文字を扱えるようにする

大量のテキストをDBに突っ込んでたら4バイト絵文字を混ぜてくるの試されてるとしか思えない。 ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect string value: '\xF0\x9F\x92\x85 f...' for column 'message' at row 1えーっと、このコードはどう…

続csvで残りを全部最後の列に入れる

以前こんなの書きましたが、、、 csvで残りを全部最後の列に入れる - 城陽人の本棚 split関数にlimit引数渡したら要素数調整できるやん。ちゃんとリファレンス見ようぜ。 open('test.csv') do |file| file.each do |line| a, b, c = line.split(', ',3) Hoge…

Rails+MySQL InnoDB FTSで全文検索する

全文検索する方法として、データが少量であればただのLIKE検索で、大規模になるとSolrとかElasticsearchとか専用の全文検索エンジン使うというかんじになるかと思うのだけど、ビックデータというほどでもないけどLIKE検索だとちょっと遅いという場合に、MySQ…

RailsのデータベースをSQLiteからMySQLに変更する

RailsのデフォルトのデータベースはSQLiteですが、後からMySQLに変更するためのメモ。 Railsは4.2.0で、MySQLは5.6です。 MySQLのインストール まずMySQLインストールして下さい。インストール方法は各自環境に合わせてググってください。(投げやり) MySQL…

Rails+ransackで検索機能作る

Railsで簡単に検索機能つけるのに、ransackというgemがあるようなので使ってみた。 Railsは4.2.0、ransackは1.6.3を使いました。まず、Gemfileに追加。 gem "ransack", '~> 1.6.3' bundleでインストールする。 $ bundle install --path vendor/bundle直接的…

Railsでbootstrapとfontawesome使う

Railsでbootstrapとfontawesome使うためのメモ。Railsは4.2.0です。まず、Gemfileに追加。 gem 'sprockets', '~> 2.12.3' gem 'bootstrap-sass', '~> 3.3.3' gem 'font-awesome-sass', '~> 4.3.0' paginateもしたいのでついでに以下も足しました。 gem 'will…

csvで残りを全部最後の列に入れる

標準のcsvパーサーでcsv読み込むのに、例えばこんなかんじで書いてると require 'csv' CSV.foreach('test.csv') do |row| Hoge.create(:a => row[0], :b => row[1], :c => row[2]) end 例えば以下のようなデータ自体にカンマを含むレコードがあると、レコー…

octokit.rbで有名ドコロのリポジトリからコミットメッセージ一覧を引っこ抜く

GitHub初心者でコミットメッセージ英語力が貧弱なので、参考のために有名ドコロのリポジトリからコミットメッセージ一覧を引っこ抜くクローラーを書いてみた。感覚ではなくファクト大事。書いたコードは以下に置いといた。 https://github.com/minamijoyo/co…

Railsチュートリアル終わったー

ここ最近Rails入門で有名なRailsチュートリアルをやってたのだけど、今日やっと終わった。超絶ボリュームだったけど、楽しかったのでやってよかった。Railsチュートリアルとはこれ↓ http://railstutorial.jp/静的な画面から初めて徐々に機能を増やしていって…

terminal-notifier-guardを使う

Railsチュートリアルで3.6.2のGuardのところやってるとMacの場合なぜかGrowlという有償のソフトの導入を薦められる。Growl400円なんだかそれぐらいケチ臭いとか思う人もいるかもしれんけど、開発ツールの類って自分が使ってるのを人に紹介する時に有償だと人…

Railsチュートリアル「3.6.2Guardによるテストの自動化」でguard init rspecが失敗する場合の対処法

- (2015/1/9追記) 本件、twitterで呟いたらRailsチュートリアルの中の人(@yaslubさん)が気づいて早速チュートリアル側の記載を修正して下さいましたので、現時点でチュートリアルどおりにやれば本事象は発生しません。仕事が早い。 - Railsチュートリアルや…

エクスプローラから選択中のファイルのフルパスを取得する

フルパスを簡単にコピペするよい方法ないかなぁと考えていたのだけど、SendToで渡せば引数で渡してくれることがわかったので、クリップボードにコピーするだけのスクリプトへのショートカットをSendToフォルダに忍ばせてみた。1.win32-clipboardが入ってなけ…

ftpクライアントを使ってみる

ftpコマンドをぐるぐるループで回すようなスクリプトを書きたくなったのでちょっと調べたら、標準ライブラリについてた。 #!/usr/bin/ruby -Ks require 'net/ftp' host, user, pass, count, = *ARGV count.to_i.times { |i| begin ftp = Net::FTP.new(host, …

gemを認証プロキシ経由で使う

会社は認証プロキシ経由でしかネットに出れないのでgemが使えなくて調べたのでメモ。 http_proxyという環境変数にプロキシサーバとポート番号を設定しておくと、そっち経由で見に行ってくれる。 set http_proxy = http://hogehoge.com:8080/認証プロキシの場…

rubyでクリップボードの読み書き

rubyはプラットフォーム非依存なスクリプト言語だけれども、普段使いがWindowsだとクリップボードの文字列をあれこれしたいとか、何かとWin32APIが叩きたくなることがあります。そんな邪道な使い方をするためにwin32ライブラリなんて素敵なものが既にありま…

rubyスクリプトをexeに変換する

絶え間なく降り注ぐ雑用をこなすのに、IEを自動操縦したり、クリップボードの文字列をごにょごにょしたりと、しょうもない補助マクロを書いたりするときは、なんだかんだで基本誰でも使えるようにVBSとかVBAで書いてしまう羽目になるんだけれども、Exerbとい…