まず読め http://www.sinatrarb.com/extensions.html Sinatra::Base を直接いじるな。あらゆるSinatraアプリケーションに影響があってきついので、ことモジュラースタイルでは明示的にregisterさせること Extension内部で直接 require 'sinatra' するとモジュラスタイルでサーバが立ち上がり沢山の悲しみが生まれるので、require 'sinatra/base' しなさい http://www.sinatrarb.com/extensions.html に書いてあるAPIだけをできるだけ使え。直接Sinatraのコアクラスにモンキーパッチとかは勘弁 ExtensionはSinatraのnamespace配下で、moduleとして定義される べきだ 。例えば、基本認証を有効にするようなやつなら Sinatra::B
![Sinatra Extension を書くお作法、というか我流 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/152b49378958596d4c44ee1a41c545fba8d9c1c7/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9U2luYXRyYSUyMEV4dGVuc2lvbiUyMCVFMyU4MiU5MiVFNiU5QiVCOCVFMyU4MSU4RiVFMyU4MSU4QSVFNCVCRCU5QyVFNiVCMyU5NSVFMyU4MCU4MSVFMyU4MSVBOCVFMyU4MSU4NCVFMyU4MSU4NiVFMyU4MSU4QiVFNiU4OCU5MSVFNiVCNSU4MSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YjNkYTg3YjJkMGNmYzk2NThlZjk2OWFiNThkZDU3MDU%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdWR6dXJhJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0wOThjNjVkMGRjOGY3YjQ4ZjVjZmExMjI2Nzk1MGExZQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Da3455aafb020cf95ca4bfa582faadc16)