Detector::Ruby::Padrino
Padrino is a full-stack framework built directly on top of Sinatra —
every Padrino app also carries Sinatra's route-registration DSL, so the
Sinatra detector legitimately fires on Padrino projects too (see
NoirTechs::Catalog::Ruby::PADRINO's :supersedes). This detector needs
its own, more specific positive signal so ruby_padrino is additive
rather than a re-detection of ruby_sinatra under another name.
Constants
Padrino::Application is the base class every mountable sub-app
inherits from, Padrino.mount is the config/apps.rb mounting call,
and require 'padrino-core' / require 'padrino' cover apps that
pull the framework in without ever subclassing Padrino::Application
directly (e.g. a single-file app built on Padrino::Routing).
Class methods
The tech name without needing an instance, so the registry can be read off the classes themselves rather than from a parallel list.
Instance methods
Cheap filename-only filter the detector pass uses to skip
detect on files the detector cannot possibly match. The
default true preserves prior behavior (every detector runs on
every file). Override with the same predicate the body of
detect starts with — e.g., filename.ends_with?(".py") for a
Python framework detector — so the detector loop avoids the
detect dispatch on files outside the detector's language.
On large codebases (saleor's 4255 .py files) this lifts ~100
virtual detect calls per file out of the hot loop because
most detectors' inner first-line is exactly this kind of cheap
filename check.