2018-01-01から1年間の記事一覧

「現場で使える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…