Ruby

GraphQL::Batchのサンプルコードを読む & 使ってみる

単純にGraphQLクエリを投げると、サーバサイドでの関連を含むレコード取得時にN+1問題が発生することがあります。こういうケースでは、複数のデータ取得リクエストをひとまとめにして、単一のリクエストとしてDBからデータを取得するbatchingが推奨されてい…

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

2017-07-08(土)のYokohama.rb Monthly Meetup #82参加メモです。 yokohamarb.doorkeeper.jp Rubyレシピブック レシピ257から260まででした*1。259, 260についてメモ。 259: リモートホストが稼働していることを確認する リモートホストが動いているかを確…

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

2017-06-10(土)のYokohama.rb Monthly Meetup #81参加メモです。 yokohamarb.doorkeeper.jp 3月の#78も参加していたのにメモを書いていなかったので、久しぶり感あります。 Rubyレシピブック レシピ254から256まで。HTTP, SMTP, FTPというプロトコル3連発…

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

2017-01-14(土)の Yokohama.rb Monthly Meetup #76 に参加したので、メモを書きます。1 週間たってしまった。 yokohamarb.doorkeeper.jp Ruby レシピブック 今回はレシピ 244 から 247 まで読みました。システム寄りの話題が中心です。 レシピ 244 スレッ…

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

2016-12-10(土)の Yokohama.rb Monthly Meetup #75 に参加しました。 yokohamarb.doorkeeper.jp 次の流れでした。 前半は Ruby レシピブック読書会 後半は LT 今回は、参加者の @Nabetani さんがすでにメモを書いてくださっています。僕もメモしておきます…

Ruby (on Rails) で使える enumeration 実装を比較してみた

こんにちは、GMO ペパボの人間です。これは pepabo Advent Calendar 2016 の 9 日目の記事です。 昨日は我らが CTL けんちゃんくんさんの 「gemビルドしようとして The validation error was 'yourgem-x.y.z contains itself (yourgem-x.y.z.gem), check you…

Ruby のテストカバレッジを Travis CI から Code Climate へ POST する方法が変わっていた

Travis CI 上で Rubygems のテストを実行して、テストカバレッジの集計結果を Code Climate へ POST するときにエラーが発生していたので、解決方法をメモしておきます。 エラー /home/travis/.rvm/rubies/ruby-2.0.0-p598/bin/ruby -I"lib:test" -I"/home/t…

hatenablog gem 0.5.0 をリリースした

Rubygem の hatenablog 0.5.0 をリリースしました。 github.com アップデート Hatenablog::Client.new にブロックを渡すことで認証情報を設定できるようにしました。 client = Hatenablog::Client.new do |config| config.consumer_key = '<consumer key>' config.consumer</consumer>…

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

2016-11-12(土)の Yokohama.rb Monthly Meetup #74 に参加しました。 yokohamarb.doorkeeper.jp 前半は Ruby レシピブック読書会 後半は LT という 7 月以来の流れでした。 レシピブック 今回はいつもより 30 分短かったこともあって、レシピ 238, 239 だ…

Fukuoka.rb #66 に参加した

現在、会社の研修で福岡に来ています。福岡には、地域 Ruby コミュニティとして Ruby コミッタの nagachika さんや弊社の udzura さんが主催されている Fukuoka.rb があります。今回、udzura さんに誘っていただき、10/12(水)に福岡・天神のグルーブノーツ…

hatenablog gem 0.4.0 をリリースした

Rubygem の hatenablog 0.4.0 をリリースしました。今回追加したのは Basic 認証ではてなブログの API を使えるようにする機能です。 github.com PR ありがとうございます! Basic 認証による利用方法 はてな API で Basic 認証による操作認可を得るには、AP…

読書メーター→ブクログ移行用スクリプトを書いた

読書メーターからブクログへ宗旨替えすることにしたので、データを移行したい気持ちになりました。 幸い、ブクログには CSV データによる読書データのインポート機能が備わっていたことと、私が以前読書メーターのスクレイピング gem である bookmeter_scrap…

hatenablog-writer 0.1.1 と hatenablog 0.3.0

今月は自分の gem にいくつか PR をいただいて新バージョンをリリースしました。PR をくださった方々、ありがとうございました。 hatenablog-writer 0.1.1 hatenablog-writer は CLI からはてなブログに投稿できるツールです。作ったきりほったらかしていた…

Ruby で順列の列挙を実装する

最近いろいろな人が次の本をやっているのを見かけるので、気になって読み進めてみています。 プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問作者: 増井敏克出版社/メーカー: 翔泳社発売日: 2015/10/14メディア: 単行本(ソフ…

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

2016-08-06(土)の Yokohama.rb Monthly Meetup #71 に参加しました。 yokohamarb.doorkeeper.jp 前半はもくもく会 後半は LT 2 本 吉田飯店で懇親会 という流れでした。今回も初参加の方が 2 名いらっしゃいました。 もくもく会 僕は次のようなことをやっ…

Itamae + Vagrant でステージング環境を構築しようとしている

ここ数日、構成管理ツールの練習と自作の Rails アプリケーションを本番に近い環境で動かせるようにすることを兼ねて、Itamae を使って Vagrant 上にステージング環境を作ろうとしています。 とりあえず、Rails で構築した自分の web サイトである kymmt.com…

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

2016-07-09(土)の Yokohama.rb Monthly Meetup #70 に参加しました。 yokohamarb.doorkeeper.jp 参加者は 8 人。内容は次のような感じでした。 レシピブック読書会 どう書く 吉田飯店で懇親会 レシピブック読書会 今回はレシピ 234 から 237 まで読みまし…

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

6/11(日)の Yokohama.rb Monthly Meetup #69 に参加しました。3 回目ぐらいです。 yokohamarb.doorkeeper.jp 今回は初参加の方が 4 人ほどいて、そのなかにはプログラミング始めたての学生の方もいました。行動力! 内容は次のような感じでした。 レシピブ…

『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メディア: 大型本この商品を含むブログ (2件) を見る 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 を叩きたくなりました。そ…