ここでoptionというメソッドが呼ばれている。 https://github.com/kazasiki/omniauth-line/blob/master/lib/omniauth/strategies/line.rb#L8
どこで定義されているメソッドかわからないので、継承してるクラス(OmniAuth::Strategies::OAuth2)を調べてみる。
https://github.com/omniauth/omniauth-oauth2/blob/master/lib/omniauth/strategies/oauth2.rb#L23-L31
ここでも既にoptionは利用されている。 ということは更に別のクラスで定義されているメソッドのはず。
よく読んでみると、include OmniAuth::Strategy
と書いてある。(https://github.com/omniauth/omniauth-oauth2/blob/master/lib/omniauth/strategies/oauth2.rb#L15
)
OmniAuth::Strategy
を読んでみよう。
def option
で検索かけてみる。
あった!
https://github.com/omniauth/omniauth/blob/master/lib/omniauth/strategy.rb#L75-L77
これは、単純に name
と value
を指定すれば値を設定できるメソッドのようだ。
外から OmniAuth::Strategies::Line
の option
というメソッドが呼び出せたら、
option :scope, 'email'
が
設定できそう!