Module: ForestAdmin
- Defined in:
- lib/forest_admin/types.rb
Overview
ForestAdmin::Types provides a convenient way to access commonly-used classes from ForestAdmin packages without requiring multiple includes.
Usage:
include ForestAdmin::Types
# Now you can use short class names:
ConditionTreeLeaf.new('status', Operators::EQUAL, 'active')
Filter.new(condition_tree: tree)
Aggregation.new(operation: 'Count', field: 'id')
# In action blocks, result_builder is an ActionResultBuilder:
result_builder.success(message: 'Done!')
result_builder.file(content: data, name: 'export.csv')
# In chart blocks, result_builder is a ChartResultBuilder:
result_builder.value(42)
result_builder.distribution({ 'Active' => 10, 'Inactive' => 5 })
# Factory classes for building complex objects:
tree = ConditionTreeFactory.from_plain_object({ field: 'status', operator: 'equal', value: 'active' })
filter = ConditionTreeFactory.match_ids(collection, [1, 2, 3])
combined = ConditionTreeFactory.intersect([tree1, tree2])
projection = ProjectionFactory.all(collection)
sort = SortFactory.by_primary_keys(collection)
# Exception handling in hooks and actions:
raise ValidationError.new('Invalid input') if invalid?
raise ForbiddenError.new('Access denied') unless
raise UnprocessableError.new('Cannot process request')
# Context classes for different handlers:
# - ChartContext: context.get_record(['field1', 'field2'])
# - HookContext: context.raise_validation_error('Error message')
Defined Under Namespace
Modules: Types