前提・実現したいこと
sinatraの標示の仕組みを勉強しています。
下記のコードを実行すると標示されるweb pageが
どのように生成され、標示される仕組みを知りたいです。
該当のソースコード
ruby
1get '/' do 2 'hello' 3end 4
発生している問題
sinatraのソースを読んでみました。
Sinatra::Base.get
Sinatra::Base.route
Sinatra::Base.compile!
とデータ('hello')が渡っているとおもうのですが、
ここから先が理解できません。
そもそも間違っていますかね
def compile!(verb, path, block, **options) # Because of self.options.host host_name(options.delete(:host)) if options.key?(:host) # Pass Mustermann opts to compile() route_mustermann_opts = options.key?(:mustermann_opts) ? options.delete(:mustermann_opts) : {}.freeze options.each_pair { |option, args| send(option, *args) } pattern = compile(path, route_mustermann_opts) method_name = "#{verb} #{path}" unbound_method = generate_method(method_name, &block) conditions, @conditions = @conditions, [] wrapper = block.arity != 0 ? proc { |a, p| unbound_method.bind(a).call(*p) } : proc { |a, p| unbound_method.bind(a).call } [ pattern, conditions, wrapper ] end
補足情報(FW/ツールのバージョンなど)
sinatra (2.0.0)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。