TOP

Table-Oriented Programming (TOP) module for Raku

Raku TOP: Table-Oriented Programming (TOP) in the Raku programming language

This package implements TOP in Raku.

For more information on TOP (Table Oriented Programming): What is Table-Oriented Programming?

Raku TOP Introductory Documents

Raku Introductory Docs

The Object Model Overview

Any classes below in () are not implemented yet

Conceptually, what we're moddeling is:

  • Relation

    • Table

      • (DataDictionary)

    • (View)

    • (TupleSet)

  • Tuple

  • (Section)

    • Field

    • (Lot)

  • Database

  • Join

Most of the above concepts are directly from Relational Set Theory. The exceptions are:

  • DataDictionary: Just a set of tables that explain what the rest of the database is doing; may be implemented differently

  • Lot: A group of columns

  • TupleSet: A set of tuples, usually that are the result of a query

In addition to the above, we have:

  • Storage: This is data we can read/write; used for modelling SQL databases, but could also be in-memory tables, spreadsheets, CSV files, etc

  • Formatters: This is for outputting data. Could be tables drawn with CLI box characters, CSV files, etc

  • Parsers: This is for reading from tables. This includes reading in space-separated data, CSV files, etc

Formats and their Parameters

Some formats are only really used as storage (eg. Memory, Postgres). Some things are only ever used as input/output (eg. WithBorders is generally not very useful except as output).

Key to Formats

  • Yes: This item exists

  • No: No plans for this

  • Make: Plans for this, but nothing yet

  • Accept: No plans to make this, but would gladly accept it if someone made it

  • Tree: These ones will be made, but not until Tree-Oriented Programming has been inaugurated

Raku TOP Class References

Note that the following links don't yet work on raku.land -- you'll need to go to github to read them.

Also, Database::Storage::CSV doesn't work yet (TODO), but the others should; probably start with TOP, then go to Memory, then as you please.

Plans for Raku TOP

For more information on the plans for Raku TOP, see Raku TOP TODO

TOP v0.0.7

Table-Oriented Programming (TOP) module for Raku

Authors

    License

    Artistic-2.0

    Dependencies

    Text::CSVCSV::ParserDBIishSlang::OtherwiseHash::OrderedUUID

    Test Dependencies

    Provides

    • Database::Storage
    • Database::Storage::Memory
    • Database::Storage::Postgres
    • TOP
    • TOP::FieldMode
    • TOP::FieldMode::Automatic
    • TOP::FieldMode::Error
    • TOP::FieldMode::Overflow
    • TOP::Formatter::HalfHuman
    • TOP::Formatter::WithBorders
    • TOP::Parser::CSV
    • TOP::Parser::HalfHuman

    The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.

    Built with Podlite — the markup and publishing tools behind this site.