2016-12-19 (月)

任意の Ruby オブジェクトを YAML として書く [Ruby]

実際使うことはないだろうがメモ。

hoge:
  !ruby/object:ActiveSupport::Duration
  value: 7776000
  parts:
  - - :months
    - 3



続きを読む

2016-12-19 (月)

Ruby の $ERROR_INFO などの特殊変数は require 'English' が必要だったのか [Ruby]

先日会社の tech channel で話題になったのでメモ。Rubiest の方々にとっ
ては常識なんですかね...?

$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin15]

$ ruby -e 'raise "aaa" rescue  p $!'
#<RuntimeError: aaa>

$ ruby -e 'raise "aaa" rescue  p $ERROR_INFO'
nil

$ ruby -r English -e 'raise "aaa" rescue  p $ERROR_INFO'
#<RuntimeError: aaa>



Ruby はグローバル変数の初期値が nil なのがたちが悪い。個人的にはも
う $ERROR_INFO とかは使わないと思う。

続きを読む

2016-12-10 (土)

bundle install で Your Gemfile.lock is corrupt. と怒られる件 [Ruby][Gem]

個人のいくつかのリポジトリで 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'



続きを読む

2016-10-09 (日)

compare_linker v1.3.0 をリリースした [Ruby][Gem]

compare_linker | RubyGems.org | your community gem host

RubyGems.org is the Ruby community's gem hosting service. Instantly publish your gems and install them. Use the API to interact and find out more information about available gems. Become a contributor and enhance the site with your own changes.



仕事やプライベートで、毎週自動 bundle update していますが、Gem に
よっては GitHub の compare Link を作れませんでした。

人間が手動でリンクを作ってコメントするのが無駄な作業で、なんだか申
し訳なかったので修正してみました。これで GitHub に Git のタグがな
い Gem 以外は救えるようになったはず。

出力フォーマットもシンプルになっています。

circle.yml とかで circleci-bundle-update-pr をインストールしていれ
ば、自動的に v1.3.0 の compare_linker が使われます。

続きを読む

2016-09-29 (木)

ローカルとGistを同期する gist_updater gem を作った [Ruby][Gem][GitHub]

必要に迫られて Ruby のスクリプトを作ったら、汎用化できたので
Gem にしてみました。

gist_updater | RubyGems.org | your community gem host

RubyGems.org is the Ruby community's gem hosting service. Instantly publish your gems and install them. Use the API to interact and find out more information about available gems. Become a contributor and enhance the site with your own changes.



続きを読む

2016-09-22 (木)

『オブジェクト指向設計実践ガイド』を読んだ [OOP][Ruby][Book]

本当に良い本でした。読んで良かった。初心者を中心に中級者にも刺さる
本だと思います。輪読などして、チームで読むとオブジェクト指向設計の
そもそもの話をしなくて良さそうです。



難しい話が易しく説明されており「あ、そうだったのか」と思うことが度々
でした。ボリュームも全9章とコンパクトで、1日1章読むのに丁度よかっ
たです。

読んでメモった箇所を中心にまとめていきます。

続きを読む

この記事に言及しているこのブログ内の記事

2016-06-22 (水)

Ruby の構文をトークンに切り分ける [Ruby]

個人的なメモ

[1] pry(main)> Ripper.lex(':manage/home')
=> [[[1, 0], :on_symbeg, ":"], [[1, 1], :on_ident, "manage"],
    [[1, 7], :on_op, "/"], [[1, 8], :on_ident, "home"]]



":" → シンボルの開始
"manage" → 識別子(identifier)
"/" → 演算子(operator)
"home" → 識別子

class Ripper (Ruby 2.3.0)

2016-06-13 (月)

fluent-logger-ruby が堅牢だった件 [Fluentd][Ruby]

[2016-06-13-1] にも書いたとおり、こちらの PR で fluent-logger-ruby
を導入しました。
fluentd にも POST する by masutaka · Pull Request #40 · masutaka/masutaka-metrics

その時に、こんな問題に気づきました。



結論から言うと、Wrapper を作る必要はありません(一度作ってしまった
けど...
)。fluent-logger-ruby がいい感じに処理してくれます。

続きを読む

2016-04-09 (土)

社内勉強会で github-nippou v2.0.0 をライブリリースした [GitHub][Ruby]

[2016-03-23-1] に予告したとおり、今回は破壊的変更をしました。

https://github.com/masutaka/github-nippou/releases/tag/v2.0.0

- 改良
    - --all と --num オプションを削除
    - 代わりに --since-date と --until-date を追加
    - デバッグオプション --debug を追加
    - サブコマンド version を追加
    - パフォーマンスの改善
- バグ修正
    - Issue や Pull request 発生時ではなく、現在のタイトルを使用
    - 同じく現在のステータスを使用
- その他
    - ソースコードのリファクタリング

続きを読む

2016-03-23 (水)

github-nippou v1.2.0 released [GitHub][Ruby]

https://github.com/masutaka/github-nippou/releases/tag/v1.2.0

- 改良
    - URL でソートしたリストを出力
    - Issue や PR がクローズされていたら、closed! を付加

v2.0.0 では [2016-03-21-1] に追加した -a, -n オプションが早くもな
くなる予定です・・・!

この記事に言及しているこのブログ内の記事

2016-03-21 (月)

github-nippou v1.1.0 and v1.1.1 released [GitHub][Ruby]

https://github.com/masutaka/github-nippou/releases/tag/v1.1.0
https://github.com/masutaka/github-nippou/releases/tag/v1.1.1

-a オプションを追加しました。今日より前のイベントも(存在すれば)
標準出力に出力します。日報書き忘れの時などにご利用下さい。

-n オプションも追加しました。たまに、作成した PR の取りこぼしがあ
ったのはこのせいでした。以前 Issue 作って忘れてました。

Events|GitHub Developer Guide

Events support pagination, however the per_page option is
unsupported. The fixed page size is 30 items. Fetching up to ten
pages is supported, for a total of 300 events.


Octokit::Client::Events#user_events が使う
"GET /users/:username/events" は pagination をサポートしており、
デフォルトでは 30 イベントしか返さないからです。

デフォルトを 50 にして且つ、オプションで指定可能にしました。10 の
倍数を指定して下さい。上限は 300 です。

あとは "<" と ">" をエスケープしたり、使用する Gem のバージョンの
縛りをなくしてみたり。

今回初めて Thor を使いました。お手軽にコマンドラインオプションや
ヘルプを実装できる
ので、良い感じですね。

この記事に言及しているこのブログ内の記事

2016-01-31 (日)

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

結論から言うとできませんでした。-o オプションが必須です。

以下、調査結果のメモ。

`$ bundle exec yard doc` したら、doc ディレクトリではなく hoge ディ
レクトリにドキュメントファイルを作りたかったんです。

でも設定ファイルやモンキーパッチではどうにもなりませんでした。

Pull Request 出すしかないけど、そこまでして変えたいわけじゃないか
らなあ...。

続きを読む

2016-01-01 (金)

El Capitan で eventmachine や puma のビルドが通らないアレへの対策と解説 [OSX][Ruby]

El Capitan から openssl のヘッダファイルが削除されました。ヽ(`Д´)ノプンプン

Homebrew をお使いの方は、eventmachine や puma をインストールしよう
とすると、こんなエラーが発生すると思います。(発生しない方は、すで
に後述のコマンドを実行しているのだと思います。)

make "DESTDIR=" clean

make "DESTDIR="
compiling binder.cpp
In file included from binder.cpp:20:
./project.h:116:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
         ^
1 error generated.
make: *** [binder.o] Error 1

make failed, exit code 2



続きを読む

2015-12-13 (日)

RubyKaigi 2015 に行ってきた #rubykaigi [Ruby]

RubyKaigi2015
http://rubykaigi.org/2015

12/11(金)から始まった RubyKaigi 2015 に 3 日間参加してきました。

1 日目は自宅を出た時は小雨で、東銀座駅に着いたら暴風雨、
会場に着いたら快晴と、汐留とはなんとハードな場所かと疲労困憊
汗ダラダラで始まりました。

以下、自分用のメモです。

続きを読む

この記事に言及しているこのブログ内の記事

2015-10-04 (日)

継続的 bundle update サービス deppbot を使ってみた [Ruby][GitHub]

昨日話題になっていた https://www.deppbot.com と、
拙作のツール ci-bundle-update [2015-07-28-1] を比較してみました。

タイミングよく、Gem のアップデートがあってよかったです。

私のツールが作った Pull request


https://github.com/masutaka/masutaka-metrics/pull/19

masutaka/masutaka-metrics#19

続きを読む

2015-07-29 (水)

Ruby の定数や Object.freeze の理解が曖昧だったのでメモ [Ruby]

◆定数には再代入可能(怒られるけど)。

irb(main):001:0> HOGE = 'abc'
=> "abc"
irb(main):002:0> HOGE = 'xyz'
(irb):2: warning: already initialized constant HOGE
(irb):1: warning: previous definition of HOGE was here
=> "xyz"
irb(main):003:0> HOGE
=> "xyz"



続きを読む

2015-07-28 (火)

【保存版】自前で継続的 bundle update を導入する方法 [Ruby][CircleCI][Heroku]

俺得な保存版記事です。設定するたびにやり方を思い出すのが面倒になり。

1. CircleCI の設定


GitHub の Personal access tokens のページで token を作成し、
CircleCI の Project Setting -> Environment variables に
GITHUB_ACCESS_TOKEN という名前で追加します。

CircleCI の URL は以下になります。

https://circleci.com/gh/{ユーザ名}/{リポジトリ名}/edit#env-vars

続きを読む

2015-07-25 (土)

29hours を Heroku からさくらの VPS に引っ越した [Ruby]

Heroku の料金体系が変わり、24 時間動かし続けるためには課金()が必要
になりました。Traditional dyno はそのうち使えなくなるそうです。

昨日のアルコールが少し残る今日の午後、なんとなくやる気になったので、
[2013-04-14-2] から Heroku で動かしていた 29hours をさくらの VPS
に引越しました。このブログと同じサーバです。

続きを読む

2015-07-13 (月)

helm-bundle-show.elからRubyGems.orgのページに飛べるようにした [Emacs][Ruby]

masutaka/emacs-helm-bundle-show

`$ bundle show` with helm interface



[2015-04-13-1] の機能追加。

絞り込んでからの <TAB> キーで、RubyGems.org のページに飛べるように
しました(下記デモ画像中 [f4] )。例えば https://rubygems.org/gems/rails です。

URL をコピーするだけも可能です(下記デモ画像中 [f5] )。

helm-bundle-show2

2015-04-13 (月)

helm-bundle-show.elを作ったら、またEmacsから離れられなくなった [Emacs][Ruby][zsh]

bundleしてるgemにcdする。pecoで絞り込みつつ - Qiita

Emacsでも同じことがやりたかったので、helm-bundle-show.elを作りまし
た。絶対誰か作っているだろ!と思って探したけどありませんでした。

masutaka/emacs-helm-bundle-show

`$ bundle show` with helm interface



helm-bundle-show

続きを読む

この記事に言及しているこのブログ内の記事

最終更新時間: 2017-04-22 12:29

検索
最近の話題
- 2017-04-16
  CircleCI 2.0 で capistrano デプロイしてみた
- 2017-04-15
  CircleCI 2.0 をローカルで実行できる circleci コマンドとは何者か
- 2017-04-13
  Rails リポジトリに CircleCI 2.0 を導入した
- 2017-04-08
  PS4 Pro と LG の 4K テレビ 43UH6500 で nasne は使えるのか?
- 2017-04-02
  オムロンの低周波治療器が肩こりにだいぶ効く
- 2017-03-21
  ローカル環境を出来るだけ Dockerize した
- 2017-03-12
  JAWS UG 2017 に行ってきた #jawsdays
最近追記された記事
- 2017-04-13-1 (6日前)
- 2017-04-13-1 (8日前)
- 2017-03-02-1 (50日前)
- 2017-02-25-1 (55日前)
- 2017-02-21-1 (59日前)
- 2015-06-07-1 (65日前)
- 2016-10-19-1 (74日前)
- 2016-01-01-1 (86日前)
- 2015-01-04-1 (95日前)
- 2015-06-07-1 (115日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (17)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (3)
- Book (85)
- Boxen (2)
- Bugsnag (1)
- C (26)
- capistrano (4)
- chalow (56)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (10)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (3)
- E-mail (8)
- elasticsearch (4)
- Emacs (219)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (1)
- Game (20)
- Gem (5)
- Git (9)
- GitHub (15)
- Go (5)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (3)
- Heroku (9)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iPhone (15)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Langrich (7)
- LDAP (6)
- Life (19)
- Linux (5)
- Mackerel (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (1)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (12)
- Rake (2)
- RaspberryPi (1)
- RedHat (29)
- Redmine (3)
- Rspec (1)
- Ruby (48)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (2)
- Solaris9 (22)
- Spring (2)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Twitter (14)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (25)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (14)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
Google+