id.id library

Copy of https://github.com/patefacio/id/blob/master/lib/id.dart Direct copy was done, because the library didn't support Dart2.

Support for consistent use of identifiers. Identifiers are words used to create things like class names, variable names, function names, etc. Because different outputs will want different case conventions for different contexts, using the Id class allows a simple consistent input format (snake case) to be combined with the appropriate conventions (usually via templates) to produce consistent correct naming. Most ebisu entities are named (Libraries, Parts, Classes, etc).

Classes

Id
Given an id (all lower case string of words separated by '_')...
IdTrailingUnderscore
Id-like object with special overrides for snake, emacs, camel, capCamel and capSnake which end in unserscore (or hyphen for emacs). The purpose is to support special terms that conflict with keywords in target languages (e.g. String -> String_)
NoOpId
Supports the same interface as Id but all transformations like camel, snake, ... resolve to no-ops. [...]

Functions

capSubstringToCamel(String s) → dynamic
Given a camel case word s with all cap abbreviations embedded, converts the abbreviations to camel. [...]
getOrCreateId(dynamic id) Id
Creates an Id when passed String, returns the Id when passed an Id
idFromString(String text) Id
Create an Id from text [...]
idFromWords(String words) Id
Create an Id from a sentence like string of white-space delimited words [...]
idTrailingUnderscore(String id) Id
Create a new IdTrailingUnderscore