64090


<https://github.com/trailblazer/cells>

上記 gem の README を読んでいたところ、以下のような example code がありました。

[code]

    CommentCell.(@comment).()
    
[/code]

# 質問

  1. これは一体どのような ruby コードなのでしょうか？
  2. 名前なしメソッドというのが ruby にはある、のでしょうか？
  3. 自分でこのような挙動をするクラスを実装する場合には、どのように記述したら良いのでしょうか？


CC BY-SA 4.0
2020-03-24T13:19:58.767
64085
2020-03-24T19:31:51.547
754
question
ruby
ruby で `obj.(arg)` の記法は一体何ですか？


  1. `CommentCell.call(@comment).call()` と同じ動作をするコードです
  2. ないです。名前なしで `.()` と書くと `call` メソッドが呼び出されます。
  3. `call` メソッドを実装すると `.()` で呼び出せるようになります。

[code]

    class C
      def call
        puts :call
      end
    end
    
    C.new.()
    # call
    
[/code]


CC BY-SA 4.0
2020-03-24T19:31:51.547
64090
2020-03-24T19:31:51.547
2599
64085
answer