//! Rails handler implementations — route DSL, ActiveRecord macros,
//! callbacks, validations, mailers, mailboxes, concerns. Public entry
//! points (`dispatch_call`, `class_hooks`) live in the parent
//! `framework::rails` module which re-exports everything here.

pub(crate) mod routes;
pub(crate) mod associations;
pub(crate) mod callbacks;
pub(crate) mod validations;
pub(crate) mod attachments;
pub(crate) mod field_macros;

pub(crate) use routes::{
    enter_route_block, detect_rails_routes, enter_controller_block,
    handle_concern_definition, handle_concern_reference, handle_direct_url_helper,
    handle_resolve_url_helper,
};
pub(crate) use associations::handle_association;
pub(crate) use callbacks::handle_callback;
pub(crate) use validations::{handle_validation, handle_scope, handle_default_scope};
pub(crate) use attachments::handle_attachment;
pub(crate) use field_macros::{
    handle_field_macro, class_framework_role, handle_mailbox_routing,
    emit_mailer_routes, emit_implicit_controller_routes,
};
