diff --git a/HACKING.md b/HACKING.md index 3baee25..5a61721 100644 --- a/HACKING.md +++ b/HACKING.md @@ -23,8 +23,3 @@ To keep things beautiful, consider following recommendations: - Document classes as if the next maintainer after you has you at gunpoint. Document thoroughly, use YARD tags and **never** skip on public method docs and class docs. As an example, consider Landline::PatternMatching::Glob. -- Unit tests suck for many reasons. However, if you're writing a class that - does not have any dependents and which is frequently used, consider making - a unit test for it. People that might have to fix things further along - will be very thankful. - diff --git a/LAYOUT.md b/LAYOUT.md index ad3f0bb..6e3df3a 100644 --- a/LAYOUT.md +++ b/LAYOUT.md @@ -8,15 +8,17 @@ layout as closely as possible. These are core classes of Landline and they are loaded as soon as the library is loaded. - Landline::Path [path.rb] -- Landline::PathBinding [path.rb] +- Landline::PathContext [path.rb] - Landline::Probe [probe.rb] -- Landline::ProbeBinding [probe.rb] +- Landline::ProbeContext [probe.rb] - Landline::Node (parent of Path and Probe) [node.rb] - Landline::Server (Rack application interface) [server.rb] -- Landline::ServerBinding [server.rb] +- Landline::ServerContext [server.rb] - Landline::Request (Rack request wrapper) [request.rb] - Landline::Response (Rack response wrapper) [response.rb] - Landline::Pattern [pattern\_matching.rb] +- Landline::TemplateContext [tempalte.rb] +- Landline::Template (template engine interface) [template.rb] ## Patterns @@ -29,31 +31,56 @@ These are classes that Landline::Pattern can interface with to create Patterns. These are module mixins that add common methods to DSL bindings. -- Landline::DSL::PathConstructors [dsl/path\_constructors.rb] +- Landline::DSL::PathConstructors [dsl/constructors\_path.rb] +- Landline::DSL::ProbeConstructures [dsl/constructors\_probe.rb] +- Landline::DSL::CommonMethods [dsl/methods\_common.rb] +- Landline::DSL::PathMethods [dsl/methods\_path.rb] +- Landline::DSL::ProbeMethods [dsl/methods\_probe.rb] +- Landline::DSL::TemplateMethods [dsl/methods\_template.rb] ## Utilities These are self-contained classes and methods that add extra functionality to Landline. - Landline::Util::Lookup [util/lookup.rb] +- Landline::PatternMatching [pattern\_matching/util.rb] +- Landline::Cookie (class) [util/cookie.rb] +- Landline::Error (class) [util/errors.rb] +- Landline::ParsingError (class) [util/errors.rb] +- Landline::Util (html/http utilities) [util/html.rb] +- Landline::MIME (MIME extension to type association) [util/mime.rb] +- Landline::Util::ParserSorting (functions for sorting form/query hashes) [util/parsesorting.rb] +- Landline::Util::Query (query class) [util/query.rb] +- Landline::Util::FormPart (formparser struct) [util/multipart.rb] +- Landline::Util::MultipartParser (multipart form parser) [util/multipart.rb] +- Landline::Util::HeaderRegexp (helper regexps for headers) [util/parseutils.rb] +- Landline::Util (parser methods) [util/parseutils.rb] ## Probe subclasses These are reactive request handlers with their own semantics, if needed. -- Landline::Handler [probe/handler.rb] -- Landline::GETHandler [probe/http\_method.rb] -- Landline::POSTHandler [probe/http\_method.rb] -- Landline::HEADHandler [probe/http\_method.rb] -- Landline::PUTHandler [probe/http\_method.rb] -- Landline::DELETEHandler [probe/http\_method.rb] -- Landline::CONNECTHandler [probe/http\_method.rb] -- Landline::OPTIONSHandler [probe/http\_method.rb] -- Landline::TRACEHandler [probe/http\_method.rb] -- Landline::PATCHHandler [probe/http\_method.rb] +- Landline::Handlers::Handler [probe/handler.rb] +- Landline::Handlers::GETHandler [probe/http\_method.rb] +- Landline::Handlers::POSTHandler [probe/http\_method.rb] +- Landline::Handlers::HEADHandler [probe/http\_method.rb] +- Landline::Handlers::PUTHandler [probe/http\_method.rb] +- Landline::Handlers::DELETEHandler [probe/http\_method.rb] +- Landline::Handlers::CONNECTHandler [probe/http\_method.rb] +- Landline::Handlers::OPTIONSHandler [probe/http\_method.rb] +- Landline::Handlers::TRACEHandler [probe/http\_method.rb] +- Landline::Handlers::PATCHHandler [probe/http\_method.rb] +- Landline::Handlers::Serve ## Path subclasses These are navigation handlers with their own semantics. (currently none) + +## Template engine interfaces + +These are uniform interfaces for various templating engines. + +- Landline::Templates::ERB [template/erb.rb] +- Landline::Templates::Erubi [template/erubi.rb] diff --git a/lib/landline.rb b/lib/landline.rb index 6048e14..86345ab 100644 --- a/lib/landline.rb +++ b/lib/landline.rb @@ -10,10 +10,10 @@ require_relative 'landline/template' # Landline is a hideously simple ruby web framework module Landline # Landline version - VERSION = '0.9 "Moonsong" (beta/rewrite)' + VERSION = '0.10 "Node graph out of date. Rebuilding..." (beta)' # Landline branding and version - VLINE = "Landline/#{Landline::VERSION} (Ruby/#{RUBY_VERSION}/#{RUBY_RELEASE_DATE})\n" + VLINE = "Landline/#{Landline::VERSION} (Ruby/#{RUBY_VERSION}/#{RUBY_RELEASE_DATE})\n".freeze # Landline copyright COPYRIGHT = "Copyright 2023 Yessiest"