class

Analyzer::Specification::Directus

Inherits Analyzer::Specification::SchemaApiCommon < Analyzer::Specification::SpecificationEngine < Analyzer < FileHelper < Reference < Object

Directus serves every user collection in the snapshot at /items/<collection>, with the item-level verbs on /items/<collection>/<id> and singletons on /items/<collection>/singleton.

Constants

FIELD_TYPE_HINTS = {"string" => "string", "text" => "string", "uuid" => "string", "hash" => "string", "csv" => "array", "json" => "object", "integer" => "int", "biginteger" => "int", "float" => "number", "decimal" => "number", "boolean" => "boolean", "datetime" => "datetime", "date" => "datetime", "time" => "datetime", "timestamp" => "datetime"}
MAX_FILTER_PARAMS = 25

A wide collection would otherwise contribute hundreds of filter params to a single endpoint.

NON_DATA_SPECIALS = {"alias", "no-data", "o2m", "m2m", "m2a", "group", "translations", "files"}

Relational and presentational fields are not columns - they carry no writable value on the item itself.

SYSTEM_PREFIX = "directus_"

Directus' system tables are always present and are not part of the project's own surface.

TAG_SOURCE = "directus_analyzer"

Class methods

tech_name
Source

Instance methods

analyze
Source
tech

Instance-side view of the same declaration. The per-file rescues live on this base class, which has no way to name the analyzer that is running inside them, so a skipped file could not be attributed to a tech. Deriving it from analyzer_for keeps the name written exactly once.

Source