PlasticUser Guide

Overview

afPlastic is a support library and exists to aid the development of other Alien-Factory libraries and frameworks. Though you are welcome to use it, you may find features are missing and the documentation incomplete.

afPlastic is a library for dynamically generating and compiling Fantom code.

afPlastic is the cornerstone of afIoc proxied services and Embedded Fantom (efan) templates.

Quick Start

model := PlasticClassModel("MyClass", true)
model.addMethod(Str#, "greet", "Str name", """ "Hello \${name}!" """)

model.toFantomCode // -->

// const class MyClass {
//   new make(|This|? f := null) {
//     f?.call(this)
//   }
//
//   sys::Str greet(Str name) {
//      "Hello ${name}!"
//   }
// }

myType := PlasticCompiler().compileModel(model)
myType.make->greet("Mum")

// --> Hello Mum!

Release Notes

v1.0.6

  • New: Added PlasticFacetModel to classes, ctors, methods and fields.
  • New: Added PlasticClassModel.hasField(Str name)

v1.0.4

  • New: Fields can have init values.
  • Chg: the PlasticClassModel add methods now return sub-model classes.
  • Chg: Fantom compilation is silent to reduce noise on std out. We raise afPlastic Errs in event of a compilation failure.
  • Bug: Fields can not be const if they have a getter.

v1.0.2

  • New: Added ctor models.
  • New: Updates to ensure backwards compatibility with afIoc.
  • Chg: Made PlasticCompiler.srcCodePadding mutable so it may be (re)set by afBedSheet.
  • Chg: Added msg() to SrcCodeErr so Err msgs can be reported.
  • Bug: The wrong compilation line could be reported in PlasticErr.toStr()

v1.0.0

  • New: Initial release.
  • Chg: afPlastic was jail breaked from afIoc and updated for use by afEfan