Ruby

『Everyday Rails - RSpec による Rails テスト入門』を読んだ

「テストのないコードはレガシーコード」という名言*1があります。自動化されたテストがあることで、コードの変更が正しいかどうかをすぐに判断できます。そして、すばやく正確にコードを改修できるようになります。 そんなテストを効率的に書くための Ruby …

Code Climate + Travis CI で gem のテストカバレッジを自動測定する

Code Climate は Git リポジトリからソースコードを読み込んで、品質診断をやってくれる SaaS です。例えば、静的解析として 循環的複雑度(ソースコードの複雑さを表す尺度) ソースコード中の処理/構造の重複数(コードクローン) などをソースコードごと…

Yokohama.rb Monthly Meetup #67

4/16(土)の Yokohama.rb Monthly Meetup #67 に参加しました。 yokohamarb.doorkeeper.jp 『Ruby レシピブック第 3 版』の読書会はレシピ 225 から 229 まで。「日付と時刻」の章が終わりました。おめでとうございます!次の章は「システムとプロセス」で…

自分の作った gem が活用されていた

先日、こんな Qiita のエントリを見つけました。 qiita.com はてなブログに投稿するためのエントリを GitHub の pull request 上でレビューして master にマージ後、CircleCI を使って、自動ではてなブログやはてなフォトライフに投稿するツールだそうです。…

bookmeter_scraper 0.1.2

bookmeter_scraper を 0.1.2 にアップデートしました。 github.com bookmeter_scraper とは 以下の記事を参照してください。 kymmt90.hatenablog.com 追加機能 追加した機能は以下の二つです。 ブロック内でログイン情報設定 取得できる情報に書籍とユーザの…

Yokohama.rb Monthly Meetup #66 に参加した

3/13(土)の Yokohama.rb Monthly Meetup #66 に参加しました。今回が初参加でした。会場は東神奈川駅近くです。 yokohamarb.doorkeeper.jp 最初は一人ずつ自己紹介して、その後、前半と後半のセッションに分かれて、もくもくしたり読書会したり発表したり…

読書メータースクレイピング用の gem を書いた

読書メーターは読書記録をつけたり本のレビューを書いたりできる SNS 風味の Web サービスです。 今回、読書メーターの情報をスクレイピングして Ruby で扱えるようにするための gem を書きました。現状 v0.1.1 です。 kymmt90/bookmeter_scraper: A scrapin…

IRB の評価値出力を抑える

小ネタです。 問題 要素の多い Hash などの中身を確認するために、IRB (irb) を使って、その Hash の中身を表示したいときがあります。 このとき、例えば Mechanize::AGENT_ALIASES を表示するために、コマンドを irb(main):002:0> pp Mechanize::AGENT_ALIA…

『メタプログラミング Ruby 第 2 版』を読んだ

数週間前になりますが『メタプログラミング Ruby 第 2 版』を読みました。 メタプログラミングRuby 第2版作者: Paolo Perrotta,角征典出版社/メーカー: オライリージャパン発売日: 2015/10/10メディア: 大型本この商品を含むブログ (3件) を見る Ruby でのメ…

Webmock でリダイレクトが絡む HTTP 通信をスタブ化する

テストのために、リダイレクトが絡む HTTP 通信をスタブ化したい場合があります。 例えば、Web スクレイピングをするときに、Mechanize を使うと以下のようにログイン処理を書けます。HTTPS になっていないとかは気にしないでください。 require 'mechanize'…

Rails 4.1 以降のアプリを Heroku デプロイ時に Internal Server Error が発生したら

問題 Rails 4.1 以降のアプリを $ git push heroku master $ heroku open で Heroku へのデプロイとアプリへのアクセスをおこなうと、Internal Server Error が発生し、以下のメッセージが表示されることがあります。 app error: Missing secret_key_base fo…

Ruby でメソッド呼び出しのフック処理を実行する

問題 Ruby でなんらかのメソッドを呼び出しにともなって、特定の処理を実行したい場合、つまり、メソッド呼び出しのフック処理を実行したい状況を考えます。 解決法 エイリアスチェイニングという方法で実現します。エイリアスチェイニングについては、『Eff…

『Ruby のしくみ』を読んだ

『Ruby のしくみ』という本を読みました。 Rubyのしくみ -Ruby Under a Microscope-作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る この本は XP…

はてなブログライターを作った

はてなブログに CLI で投稿できるはてなブログライター (0.1.0) を Ruby で作ってみました。 kymmt90/hatenablog-writer 概要 ローカルの Markdown ファイルの内容をはてなブログへ投稿します。 $ vi foo.md タイトル 1 # 2 行目は空白にする ここが内容です…

はてなブログ API 用の gem を書いた

はじめに はてなブログの AtomPub API 用の Ruby gem が意外にも存在しなかったので書きました。 kymmt90/hatenablog hatenablog | RubyGems.org | your community gem host 概要 Ruby スクリプトから、はてなブログのエントリ取得やブログへの投稿ができる…

Ruby ではてな OAuth のアクセストークンを取得する

はじめに はてなのサービスの API を自作のアプリケーションなどから叩くためには、OAuth というプロトコルを通じて、そのアプリケーションに適切な認可を与える必要があります。 最近 Ruby を触り始め、Ruby ではてなブログの API を叩きたくなりました。そ…