Instance_eval Block nicht geliefert? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Code-Block, der an jeden übergeben wird, funktioniert mit Klammern, aber nicht mit 'do' - 'end' (ruby) 3 Antworten

Weiß jemand, was diesen Fehler verursacht? Ich versuche, eine einfache Rack-Anwendung zu erstellen.

App.rb =>

class Cherry
    class << self
        def app &block
            Cherry::Application.new &block
        end
    end

    class Application
        def initialize &block
            instance_eval &block
        end

        def print_start_message
            puts "Starting server"
        end

        def call env
            [200, {"Content-type" => "text/plain"}, "Hello World"]
        end
   end
end

Config.ru =>

   require 'app'

   run Cherry.app do
        print_start_message
   end

EDIT: Anscheinend habe ich vergessen, die Fehler zu erwähnen:

/local/www/cherry/lib/app.rb:12:in 'instance_eval': block not supplied (ArgumentError)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage