2018-04-01から1ヶ月間の記事一覧

特異クラスの中に定義したクラスの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リポ…