bundle install で Your Gemfile.lock is corrupt. と怒られる件

個人のいくつかのリポジトリで bundle install できないことがあり、困っ ていました。 $ bundle install Fetching gem metadata from https://rubygems.org/............ Fetching version metadata from https://rubygems.org/. Resolving dependencies... Using rake 11.3.0 Using concurrent-ruby 1.0.2 Using i18n 0.7.0 Using thread_safe 0.3.5 Using net-ssh 3.2.0 Installing minitest 5.10.1 Your Gemfile.lock is corrupt. The following gem is missing from the DEPENDENCIES section: 'ffi' loading... if (localStorage.getItem("pref-theme") === "light") { const elements = document.getElementsByClassName('twitter-tweet'); for (let i = 0; i 結論から言うと $ bundle install --without development で回避できま...

2016-12-10 (Sat) · masutaka

compare_linker v1.3.0 をリリースした

compare_linker | RubyGems.org | your community gem host 仕事やプライベートで、毎週自動 bundle update していますが、Gem に よっては GitHub の compare Link を作れませんでした。 人間が手動でリンクを作ってコメントするのが無駄な作業で、なんだか申 し訳なかったので修正してみました。これで GitHub に Git のタグがな い Gem 以外は救えるようになったはず。 出力フォーマットもシンプルになっています。 circle.yml とかで circleci-bundle-update-pr をインストール していれ ば、自動的に v1.3.0 の compare_linker が使われます。 @kyanny さんが作った頃のフォーマット v1.30 のフォーマット 変更内容はリリースノート に書いてあるとおりです。こんな変更をしました。 RubyGems の API から GitHub の URL が分からない Gem は data/rubygems.yml に GitHub のリポジトリ情報を書くことで回避。 例: https://rubygems.org/gems/capistrano Git の Tag が多すぎて、GitHub compare Link の生成に失敗すること...

2016-10-09 (Sun) · masutaka

ローカルとGistを同期する gist_updater gem を作った

必要に迫られて Ruby のスクリプトを作ったら、汎用化できたので Gem にしてみました。 gist_updater | RubyGems.org | your community gem host 何ができるか? このような YAML ファイルを用意し、gist_updater コマンドを実行する と、ローカルの .emacs.d/init.el によって https://gist.github.com/masutaka/8177244 がアップデートされます。 - - 8177244 - .emacs.d/init.el Gist は差分がなくても、更新するとリビジョンが増えてしまいますが、 gist_updater は差分がなければアップデートしません。 複数の Gist をアップデート対象にすることも出来ますし、1つの Gist の複数ファイルにも対応しています。YAML なのでコメントも書けますね。 - # https://gist.github.com/masutaka/8177244 - 8177244 - .emacs.d/init.el - # https://gist.github.com/masutaka/f7ce8b3c71e995c20e48 - f7ce8b3c71e995c20e48 - circle.yml - tasks/pushover.rake ライブラリとして使うことも出来ます。詳しくは GitHub の README.md をご覧ください。 なぜ作ったか? 私はいわゆる dotfiles を GitHub に置いていますが、諸般の事情により それは private repository です。ただ、たまに人に見せたいことがある...

2016-09-29 (Thu) · masutaka

yard doc コマンドの -o オプション以外で出力ディレクトリを変更する考察

結論から言うとできませんでした。-o オプションが必須です。 以下、調査結果のメモ。 $ bundle exec yard doc したら、doc ディレクトリではなく hoge ディ レクトリにドキュメントファイルを作りたかったんです。 でも設定ファイルやモンキーパッチではどうにもなりませんでした。 Pull Request 出すしかないけど、そこまでして変えたいわけじゃないか らなあ…。 -o オプション指定した場合のフロー $ yard doc -o hoge すると、options.serializer.basepath に ‘hoge’ が入る。 https://github.com/lsegal/yard/blob/v0.8.7.6/lib/yard/cli/yardoc.rb#L652-L655 opts.on('-o', '--output-dir PATH', 'The output directory. (defaults to ./doc)') do |dir| options.serializer.basepath = dir end options.serializer は YARD::Serializers::FileSystemSerializer class のインスタンスで、basepath の setter は以下のように定義され ている。 https://github.com/lsegal/yard/blob/v0.8.7.6/lib/yard/serializers/file_system_serializer.rb#L9-L11 def basepath=(value) @basepath = options[:basepath] = value end @basepath はその後、同 class 内の #serialize で参照される。 -o オプション指定しない場合のフロー 前述のフローには入らないので...

2016-01-31 (Sun) · masutaka

通知サービスPushoverがなかなか便利

何年も前からim.kayac.com を使ってきましたが、時々通知が来なくなるの で(アプリを再起動すれば直る)、Pushover に乗り換えました。1ヶ月ほど 使っていますが、なかなか良いです。 ※ im.kayac.comは2009年11月18日以来更新がないようです。 iPhoneアプリの画面はこのような感じです。 CircleCIは後述のGemで通知しています。 TwitterはHerokuで動かしている29hours[2013-04-14-2] 経由で通知してい ます。29hoursはデフォルトでPushoverに対応しているので、 settings.ymlを変更しただけです。 im.kayac.comに出来ることはひととおり出来ました。さらに以下の機能があります。 プライオリティ(low,normal,high,emergency)を指定できる emergencyの時は、Acknowledgeするまで60秒ごと24時間通知し続けることも可能 通知しない時間帯を指定できる 通知ごとにサウンドを切り替えられる デバイス(iPhone,Android,Desktop)を登録でき、指定したデバイスのみに通知可能 グループやユーザを登録でき、通知先に指定可能 利用状況をグラフで確認できる 唯一、Tiarraからの通知はできなくなりましたが、最近IRCは使ってない ので割り切りました。 アプリは無料で5日間制限なく使えます。それ以降は1度だけ500円支払え ば同様に使えます。Desktop版はさらに$4.99 USDの課金が発生します。 Gemもあるので、結構お手軽に使えました。 pushover | RubyGems.org | your community gem host このブログの記事がデプロイされた時に結果を通知するCapistranoのタスク [2015-01-15-1] の改良版にあたります。 このブログはGitHubで管理していて、masterにcommitすると、CircleCIが 自動でデプロイします。その結果を通知してくれるCapistranoのタスクに なります。 このサーバのCook&serverspecの結果を通知するcircle.ymlの設定とRakeタスク [2015-02-08-2] の改良版にあたります。 このサーバのChefレシピもGitHubで管理していて、masterにcommitすると、 CircleCIがmasutaka.netをCookした後Serverspecを自動実行します。その 結果を通知してくれるRakeタスクと、呼び元のcircle.ymlになります。 最後に注意事項 アプリをインストールするとUser Keyが作られますが、これは使わないほ うが良さそうです。作り直し出来ないようなので、漏洩した時面倒な自体 になりそうです。グループを作り自分を所属させ、Group Keyを使うと良 いと思います。

2015-03-08 (Sun) · masutaka