gem
作った。 github.com ゲームのマスターデータをTSVファイルで管理していると、内容自体は衝突していないのに同時に同じ箇所に書き足したということで衝突してしまうことがある。あとはエディタの設定で末尾の空白スペークが消えてしまったとか。そういった単…
https://rubygems.org/gems/capistrano-pending/versions/0.2.0 Capistranoのプラグイン方式がv3.7から大きく変わって:scm変数が非推奨になり、さらにv4.0からは消されるらしく、その対応のため。といってもいただいたPRの挙動を確認しただけだけど。 github…
capistranoでrubotyをデプロイするのをよしなに助けてくれるgemを書いた。 github.com デーモン化とPIDファイルの書き出しに対応したruboty v1.3.0が必要になるので要注意。
OS XがOpenSSLの共有ライブラリを含めなくなった(のかな?)ために、homebrew等でインストールしてその場所をオプションで指定する必要があった。 github.com $ gem install eventmachine -- --with-cppflags=-I$(brew --prefix openssl)/include bundlerで…
$HOME/.guardrcもしくはGuardfileと同じディレクトリの.guardrcに次のように追記する。 Pry.commands.delete(/^$/) 全プラグインを実行するにはaやallを入力すればよい。
Ruby標準のCSVライブラリのように、一枚のシートだけからなるXLSXファイルを読み書きするためのもの。 a2ikm/single_xlsx http://rubygems.org/gems/single_xlsx 使い方 読み 配列の配列で取得する。 Name Age Einstein 76 Feynman 69 SingleXLSX.read("path…
自然順ソートするやつ。 require "natsort" %w(a 02 1).natsort #=> ["1", "02", "a"] PHPからRubyに移ってきた頃にこことか見ながら適当にmixinしてたものをちゃんとgemにしたんだけど、最近はnturallyとかあるのでそっちを使ったほうがよさそうな気もして…
http://rubygems.org/gems/bootstrap_form-datetimepicker Twitter Bootstrap 3.x、bootstrap_formと組み合わせてbootstrap-datetimepickerを使うときのヘルパを提供する。 たとえば、 <%= bootstrap_form_for(@item) do |f| %> <%= f.datetime_picker :avai…
http://rubygems.org/gems/capistrano-pending Capistrano 2で使えていたdeploy:pendingというコミットの差分ログを表示するレシピが3になってから使えなくなっていたので、同じ動作をするものを作った。 Capistranoは3.2.0以上が必要。このバージョンからre…
ActiveDecoratorと組み合わせてJbuilderのpartial!を使ったら、次のようにnil?というキーで空のハッシュができていた。 { "nil?": {}, // .jbuilderに書いた通りのキー } これは、partial!したときに裏で呼ばれるrenderメソッドの:localsオプションにjsonオ…
以前Capistranoでデプロイ対象のEC2インスタンスをタグで指定するものを書いているという記事で紹介した、capistrano-ec2_taggedというgemをリリースした。 capistrano-ec2_tagged (0.1.0): http://t.co/Bn9FSwBrgb Get ip addresses of AWS EC2 instances f…
capistrano-ec2_taggedというgemを作った。まだrubygems.orgには上げていない。 これはCapistranoで指定タグのEC2インスタンスにデプロイのようなことをやるためのもので、次のようにして使う: # Gemfile gem "capistrano-ec2_tagged", require: false, gith…
先日*1書きかけだった~/.aws/configをパースしてくれるものをとりあえず動くものにしてgemにした。 http://rubygems.org/gems/aws_config これを使えば次のようにaws-sdkを初期化できる。 require "aws-sdk" require "aws_config" AWS.config(AWSConfig.defa…
いつのまにかbundle install GEMNAMEができなくなっていたので。 gem install GEMNAME -i vendor/bundle/ruby/1.9.1 ruby 2.0だとvendor/bundle/ruby/2.0.0になるみたい。 追記 できるのはbundle update GEMNAMEだった。
しました。 ok_gntpd (0.0.5): is.gd/Pk8Yl2 An GNTPd which always return "OK".— RubyGemsさん (@rubygems) 2013年2月24日 リポジトリはgithub:a2ikm/ok_gntpdです。 これはGrowl Notification Transportation Protocol 1.0にしたがってOKを返すだけのサー…
とりあえずspecを回したいよね、というとき。 $ vim Gemfile $ bundle install $ rbenv rehash $ rspec --init $ vim spec/spec_helper $ vim Rakefile Gemfile gem "rspec" spec/spec_helper 冒頭に以下を追記して、$LOAD_PATHの追加(この場合はlib/)と適…
RustでHello, worldしようと思ったけどなかなかビルドが終わらないので、待ってる合間にリリースされたpebbles-suddenly_death gemで遊んでみた。 $ gem install pebbles-suddenly_death メソッドを呼び出すと、処理を行った後に1/100の確率で例外を投げると…
常にOKを返すGNTPサーバok_gntpd.gemを作った。 内容はほぼMacで(たぶん*nix系であれば)動く、とても簡単なGNTPサーバ のコピペ。ソースはGitHubに上げてある。 GNTPdってしてるけど、まだdaemonにできない。
ActiveRecordのserializeはYAMLにしか対応していないけど、serialize-railsを使うとJSONやXML、RubyのMarshalも保存できるようになる。 # Gemfile source 'http://rubygems.org' gem 'rails', '3.2.9' # 3.0.0 以上が必要 gem 'serialize-rails' # app/model…
不完全ながらメモ。 雛形を作る $ bundler gem hello こうするとhelloディレクトリが作られて、その中にひな形のファイル(hello.gemspecとかlibとかが作られる)。 hello.gemspecを変更する TODOと書かれているgem.description、gem.summaryは変更しないとr…
chiliはchankoのようなもの。 chankoは、大規模レガシープロダクトをレガシーコードのままベータ機能をサービス壊さずにぶっこむのに特化してるけど、ある程度ダーティさがある。chiliは、新規サービスにRails的な思想を守ったまま綺麗にベータ機能を追加す…
GitHubの採用しているWikiエンジンgollumの機能を使うと、プロジェクトのWikiにサイドバーを設定することができる。 $ git clone git@github.com:foo/bar.wiki.git $ cd bar.wiki $ vim _Sidebar.md $ git add _Sidebar.md $ git push origin master 自分で…
$ cd $(dirname `gem which active_record`)
schema_plusを使うとcreate_tableやadd_columnでカラムを定義するときに:referencesオプションにテーブル名を渡すだけで、外部キー制約を手軽にかけることができる。 create_table :posts do |t| t.integer :category_id, references: :categories end 個々…
{ "user": { "id": 1, "name": "John Smith", "posts": [ { "id": 1, "title": "Hitchin' Ride" ] } } というJSONを作りたいとき、"posts"が配列だからcollectionでも使えばいいのかなと思ったけど、どうにもうまくいかなかった。結局nodeを使うのが楽だった…
【追記】とても微妙。要検証 言葉で説明しづらいので、例を示す。APIが次のようなJSONを返すとする。 { "note": { "text": "補足情報" }, "user": { "id": ユーザのID, "name": "ユーザー名" } } ここで "note"はAPIの各エンドポイントで共通のノードなので…