78430


Sorceryというgemのソースコードを読んでいる際に以下の記述があり、`options`がどこに定義されているのか分からなかったので、Rubyに詳しい方に質問したいです。

`[:model]`というkey指定があったのでoptionsは変数かと思ったのですが、スコープ内にoptionsという変数は見つからずでした。railsの方にoptionsというメソッドはあるのでそれを指している？
とは思いましたが分からずです

[code]

          def model_class_name
            options[:model] ? options[:model].classify : 'User'
          end
    
[/code]

<https://github.com/Sorcery/sorcery/blob/4f7ea0ba8673e3f49d6347554989bd06c8d337cb/lib/generators/sorcery/helpers.rb#L12>


CC BY-SA 4.0
2021-07-27T08:41:50.353
78425
2021-07-27T13:49:47.980
39416
question
ruby-on-rails ruby sorcery
Sorceryの変数の定義場所が分からない


`Sorcery::Generators::Helpers` module は
`Sorcery::Generators::InstallGenerator` class で `include`
される形で[利用されており](https://github.com/Sorcery/sorcery/blob/4f7ea0ba8673e3f49d6347554989bd06c8d337cb/lib/generators/sorcery/install_generator.rb#L8)、かつその形でしか使われていません。この
InstallGenerator class は `Rails::Generators::Base` class を継承しています。そして
`Rails::Generators::Base` はインスタンスメソッド `options` を持っているため、ここに `options`
が定義されています。

`Rails::Generators::Base` に `options` がある所以は以下から分かります。

  * [https://railsguides.jp/generators.html#コマンドライン引数を追加する](https://railsguides.jp/generators.html#%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E5%BC%95%E6%95%B0%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)
  * `Rails::Generators::Base < Thor::Group` <https://api.rubyonrails.org/classes/Rails/Generators/Base.html>
  * <https://www.rubydoc.info/github/wycats/thor/Thor/Base#options-instance_method>


CC BY-SA 4.0
2021-07-27T13:49:47.980
78430
2021-07-27T13:49:47.980
19110
78425
answer