「現場で使えるRuby on Rails5速習実践ガイド」の感想 #現場rails

なかなか読む時間が取れなくて積み本になっていたのを週末に読んだので、その感想です。 現場で使える Ruby on Rails 5速習実践ガイド(特典PDF付き)作者: 大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀出版社/メーカー: マイ…

表参道.rb で「毎日gemをアップグレードする生活」のタイトルでLTした #omotesandorb

omotesandorb.connpass.com 忙しくて2ヶ月くらい表参道.rbに行けてなかったけど、今回は参加できた。 今回の会場は外苑前の株式会社ビジネスバンクグループさんで、懇親会の時に軽食の提供があった。 ありがとうございます。 LT資料 毎日gemをアップグレード…

IP制限かかっている GitHub Enterprise のリポジトリを git clone する方法

git

IP制限かかっている GitHub Enterprise のリポジトリを IP制限に穴を開けない で git clone する方法です。 ただ、コマンドを実行する PC は GitHub Enterprise にアクセスできる必要はあります。 $ ssh-add ~/.ssh/id_rsa $ ssh -R 1234:ghe.foo.com:22 -A …

Hash#key? を上書きしてもキーワード引数は上書きできない

Ruby のしくみに面白いコードが書かれていました。 class Hash def key?(val) puts "Looking for key #{val}" false end end def add_two(a: 2, b: 3) a+b end puts add_two(a: 1, b: 1) # Looking for key a # Looking for key b # 5 キーワード引数は内部…

Rubyのdefの後に何を書けるか調べる実験

実務では一切の役に立たないRuby雑学。 普通のdef まずは基本の書き方。 def foo puts "hello" end foo #=> "hello" class User def self.foo puts "foo" end class << self def bar puts "bar" end end end User.foo #=> "foo" User.bar #=> "bar" 特異クラ…

Rubyのdefの中で更にdefをするコードの挙動

defの中にdefを書いたらどうなるのか? そんな実験。 class Nanoha def starlight_breaker puts "魔力が足りません" end def battle! def starlight_breaker puts "全力全開、スターライトブレイカー!" end end end user = Nanoha.new user.starlight_break…

特異クラスの中に定義したクラスのancestors

Ruby難しい。この無名クラスは一体何者なんだ...class A class << self class B end endendp A.singleton_class.const_get(:B).ancestors#=> [#<Class:0x00007fe8c203c980>::B, Object, Kernel, BasicObject]— 神速 (@sinsoku_listy) 2018年4月30日 class A class << self class B end </class:0x00007fe8c203c980>…

Rubyのモジュールでnewを使う方法

タイトルは半分くらい釣りです。役に立たないRuby雑学です。 コード例 モジュールで self.new を定義すると、モジュールに対してnewが呼べる。 class A end module M def self.new A.new end end p M.new.class #=> A 別のクラスのインスタンスを返すクラス …

RuboCopの新しいルールを追加する方法(Custom Copの作り方)

何度もレビューで指摘することはRuboCopのルールとして追加して、自動化しておくと便利です。 この記事では、RuboCopで新しいルールを作る方法を紹介します。 参考にしたページ これがとても参考になった。 github.com Copの書き方は独特なので、RuboCopリポ…

ActiveRecord の where.not とド・モルガンの法則

where.not を使っていて遭遇した問題についてrailsdmの懇親会で話していたら、@kamipo さんから「5.2では少し直っている」という情報を頂いた。 この話をしているときに思ったけど、今の where.not の問題点について知らない人も多そうなので、せっかくなの…

Railsアプリの育て方という発表をしました #railsdm

Rails Developers Meetup 2018 Day 1で「Railsアプリの育て方」という発表をしました。 railsdm.github.io 発表資料 余談 本当は4月から放送されるシュタインズゲートゼロみたいな流れにしたかったけど、ちょっと上手く話の流れを作れなかったので、今回は普…

Step-to-Rails-Expert.rb#17 に参加した #StepRailsEx

ToDo アプリを題材にして、参加者で相互レビューする勉強会。 step-to-rails-expert-rb.connpass.com コード持ち込んだ 今までサボっていたので、今回は課題を解いて持ち込んでみた。 github.com Ruby/Rails のアップグレードなどが含まれている関係で、変更…

AWS EC2 上に Rails の開発環境を構築する

Rails アプリの開発環境じゃなくて、 rails/rails にプルリクを送るための開発環境を作る方法です。 rails-dev-box について Rails には Contributing to Ruby on Rails guide というドキュメントがあり、 誰でも簡単に開発環境を作ることができます。 5.1.1…

面接で現年収(前職の年収)を聞かれるのが嫌い

転職活動で面接に行くと、だいたいどの会社も現年収を聞いてくる。 この文化が本当に嫌いなので、その気持ちをブログにまとめてみた。 最近の Twitter のツイートまとめ だいたいどの会社も現年収を聞いてくるけど、これ本当に無くなって欲しいな...。現年収…

Rails 5.2 の Credentials で diff を復号化してから比較する

先日、こんなブログを書きました。 sinsoku.hatenablog.com この gem の機能に「diff を平文で表示できる」というものがあるけど、 gem 無くても実現出来ちゃったので紹介する。 1. 復号化するスクリプトを用意する bin/decrypt を用意する。 #!/usr/bin/env…

Rails の Issue とプルリクを毎日読むと勉強になる

最近やっているけど、これ良い勉強になっているのでブログで紹介する。 読むようになったきっかけ 先月、永和システムマネジメントさんのOSSパッチ会に参加しました。 agile.esm.co.jp この会の懇親会では Rails の Issue やプルリクの話題が多く出ました。 …

Rails 5.2 の Credentials を各環境でも使えるようにする gem を作りました

Rails 5.2 で追加される Credentials 機能を development, test, staging などで使えるようにする gem を作ったので紹介します。 github.com Rails 5.2 の Credentials とは? API token やパスワードなどの情報を暗号化し、リポジトリで管理できるようにす…

2月末に株式会社groovesを退職します

2018年2月末に株式会社groovesを辞めます。 おそらく、退職エントリってやつです。 株式会社groovesでやってきたこと Forkwellの開発を担当していました。サービスの詳細はリンク先を読んで頂くとして、私が主に関わっていたのは下記の2つです。 Forkwell Jo…

git-worktree を使って時間のかかる処理を別の作業ディレクトリで行う

git

時間のかかる処理の実行中、別の作業を進められるようにする方法。備忘録。 時間のかかる処理の例 テストの実行中 デプロイの実行中 など。 git-worktree を使う 簡単に作業ディレクトリを増やせる。 $ cd ~/works/app $ git worktree add ~/works/app_deplo…

Git を少しでも高速、安全に使う方法を紹介

git

はてブを眺めてたら、なんか Git の記事がバズってたので、便乗して Git の話を書いてみた。 Oh, shit, git! http://ohshitgit.com/ 「Oh shit, git!」を簡単に和訳してみた。(追記あり) - Qiita https://qiita.com/KaminoHiroki/items/391fb421e94e82c00128…

「Randomly Failing Specs」という内容でLTしました #railsdm

資料は Slide Share で公開しています。 Randomly Failing Specs from sinsoku listy www.slideshare.net 話したかったこと 時間切れで全く話せていませんでしたが、本当は「 sleep 使わずに直しましょう」って事が伝えたかった。 資料の作り方や発表内容で…

Rails クイズ: 次のコードで rollback されるのはどれでしょう?

先日、仕事のコードで遭遇して「なんだこの動き...」と思ったので、ブログに書いておく。 Rails クイズ: 次のコードで rollback されるのはどれでしょう?(配点10点) 常にバリデーションエラーになるモデル Bomb と no 属性によってコールバックを制御できる…

「プロを目指す人のためのRuby入門」を読んだ感想

一応、お仕事で Ruby やっているプロだけど、本の内容が気になったので買ってみました。 昨日、先行販売している紀伊國屋書展 新宿本店で購入(正式発売日は11月25日)。 新宿紀伊国屋は残り2冊だった。危ない。ギリギリだったけど、なんとかプロになれそう…

#技術書典3 でサークル参加したことのふりかえり

先日、ブログに書いたように技術書典3にサークル参加していたので、そのふりかえりをブログに書いておく。 sinsoku.hatenablog.com 同人誌を作成した環境 Re:VIEW Docker textlint CircleCI Re:VIEW + Docker を使用して pdf を作成する環境を作りました。 C…

#技術書典3 で「Clean Code for Rails」という本を頒布します

10月22日(日) の秋葉原UDXで開催される技術書典3にて、Railsの同人誌を頒布します。 サークル名は「う07 Tech翠屋」で、頒布価格は1,000円です。 表紙 目次 内容について Rails でアプリケーション開発する上で基本的なこと、中規模以上になると起きがちな事…

2013〜2017年の RubyKaigi スポンサーの一覧を調べるスクリプトを書いてみた #rubykaigi

#rubykaigi のツイートを眺めていたら、会社から補助が出てそうな方々のツイートを見かけて、タイトルの件を思いついたので、雑にスクリプトを書いてみた。 RubyKaigi のスポンサー企業であれば、おそらく参加費補助や3日間休むことに理解あるところが多いん…

Ruby で簡単に既存メソッドの前後に処理を挟み込む方法

自分用の備忘録。このコード、ブログに書いておかないと忘れそうなので… やりたかったこと RubyKaigi の型の話を聞いて、「メソッドの実行を上書きして、引数の型を読み取る」ってことができないかなと思いついて実装したコード。 コード 既存の出力を { ...…

Git のブランチには説明をつけることができる

git

このツイートの通りです。 git branch --edit-description [<branchname>] でブランチにメモが付けられる!そして、 git config branch.<branchname>.description で表示できる!使い所は知らない! https://t.co/xt2P7MdUYa— 神速@リリカルエンジニア (@sinsoku_listy) 2017年9月12</branchname></branchname>…

2017年 OmniAuth で Qiita 連携を作る際の現状まとめ

Rails で OAuth 連携の機能を作う場合、一般的に OmniAuth を使うことになります。 そして、 OmniAuth の Qiita Strategy が3つあったので、それぞれ状況をまとめました。 各 gem の概要 GitHub rubygems version work? tmiyamon/omniauth_qiita omniauth_qi…

Ruby/Rails の勉強方法について #omotesandorb

6/1(木) の表参道.rb でLTしてきました。 omotesandorb.connpass.com 資料 「他人がどうやって Ruby/Rails を学んできたのか?」って意外と聞く機会は無いと思うので、自分のふりかえりも兼ねて発表してみました。資料は Qiita で公開してます。 qiita.com …