Core parts re-written to allow standard classes and const classes to be used as components (they're no longer just for mixins!). This allows a much more natural style of Fantom programming with efan components. The rendering process has also been significanly simplified for a speedier result.
- Chg: Optimised the common Template finders.
- Bug: Pods could not be contributed as EfanLibraries more than once.
- Bug: Nested components, each with a body fn, could cause a
- Chg: Renamed the, now unused, render method variable
_ctx_to prevent clashes with component field names.
- Chg: efanXtra now references
EfanCompilerby ID so other non-efanXtra IoC instances may be created.
- New: Re-written for efan 2.0.
- Chg: Updated all pods to latest versions.
- New: Fandoc Type comments may also be used as templates.
- Chg: Updated to work with IoC v3. (Breaking Change.)
TemplateConvertersnow takes contributions of
|Str->Str|. (Breaking Change.)
- Chg: Baseclass names are also used to find templates.
- Chg: Each component renders into it's own
StrBuf. This allows us to render arbitrary, non-nested, components and embed the result in template Strs.
- Chg: Better handling of threaded services / dependency provided objects injected into components.
- Chg: Advanced API change to accomodate @Inject'ed threaded services.
- Bug: efanXtra now honours the
- Chg: Renamed
- New: Added a couple of library methods to
- Chg: Updated to IoC 2.0.0.
- Chg: Renamed
@EfanLocation. (Breaking change.)
- Chg: Internal work to lazily compile
- Bug: Bodged release - updated to IoC 1.7.2.
- Chg: Updated to use IoC 1.7.0.
- Chg: Updated to use IoC 1.6.4, added dependency on IoC Env 1.0.6
EfanXtraConfigIds.templateTimeoutnow defaults to
2minin production environments, and
- Chg: Removed
EfanXtraConfigIds.supressStartupLogging. To suppress the startup log, remove the
- Chg: Updated to use Concurrent 1.0.4.
- Chg: (Internal) Created
- Bug: Could not re-compile components.
- Chg: Updated to use efan 1.4.0.
- New: Template files are optional! Small components may just override
- Chg: Overhauled and tidied up the public API and documentation. (Breaking change.)
- Chg: Type checks involving Lists and Maps are more lenient when calling lifecycle methods.
- Chg: Components may now have threaded services injected into them!
- New: Added
EfanLibraries.callMethod()hook for Pillow.
- Chg: Components automatically
usethe pod that the component mixin was defined in.
ComponentCompilercallbacks now take the component type.
FindEfanByFacetValueis public for use by Pillow.
- Chg: Render methods are searched for on the component instance, not just the mixin. This is so it may still be called if it's added dynamically.
fandocfiles may be used as efan templates!
@InitMethodsmay now only return
Bool. Throw BedSheet's
ReProcessErrif you wish to perform a different action.
- Chg: Multiple components may now share the same template file.
- Chg: Overhauled API documentation.
- Chg: Tweaked some method signatures with correct nullable types.
- New: Introduced component lifecycle methods: @InitRender, @BeforeRender & AfterRender.
- New: Added
@Abstractfacet to mark base components.
- Chg: Template rendering is held in a single mutable
StrBufso it may be manipulated by lifecycle methods.
- Chg: Components are now defined by extending
EfanComponent, not by annotating with a
- Chg: Renamed to
- New: Added
EfanTemplateDirectoriesservice which scans external directories for efan templates.
- New: Compilation err msgs are updated with code hints should a simple component rendering typo be spotted. (ALIEN-AID)
- New: Fields may be annotated with any facet, not just
- Chg: Updated to efan-1.3.2
- Chg: Better Err msgs if component template not found.
- New: Component templates can be specified via the
- New: Added a contributable
- New: Ability to suppress startup log messages.
- New: Added compiler hooks (mainly for Pillow).
efanXtra.component()returns component instances.
@Componentfacet is inherited.
- New: Preview Release