lucille
Version, currently 1.5.128 versions
- 1.6.0latestSep 23, 2026
- 1.5.1Sep 2, 2026
- 1.5.0not indexedSep 2, 2026
- 1.4.1Jun 5, 2025
- 1.4.0not indexedAug 9, 2026
- 1.3.1not indexedAug 9, 2026
- 1.3.0not indexedAug 9, 2026
- 1.2.2not indexedAug 9, 2026
- 1.2.1not indexedAug 9, 2026
- 1.2.0not indexedAug 9, 2026
- 1.1.3not indexedAug 9, 2026
- 1.1.2not indexedAug 9, 2026
- 1.1.1not indexedAug 9, 2026
- 1.1.0not indexedAug 9, 2026
- 1.0.1not indexedAug 9, 2026
- 1.0.0not indexedAug 9, 2026
- 0.11.1not indexedAug 9, 2026
- 0.11.0not indexedAug 9, 2026
- 0.10.0not indexedAug 9, 2026
- 0.9.0not indexedAug 9, 2026
- 0.8.0not indexedAug 9, 2026
- 0.7.0not indexedAug 9, 2026
- 0.6.0not indexedAug 9, 2026
- 0.5.0not indexedAug 9, 2026
- 0.4.0not indexedAug 9, 2026
- 0.3.0not indexedAug 9, 2026
- 0.2.0not indexedAug 9, 2026
- 0.1.0not indexedAug 9, 2026
github.com/GrottoPress/lucille
Utilities for Lucky framework
Installation
# Add this to your shard.yml
dependencies:
lucille:
github: GrottoPress/lucille
version: ~> 1.5.1Then run:
shards installshard.yml
- Crystal
~> 1.6- License
- MIT
- Authors
- GrottoPress, N Atta Kusi Adusei
Dependencies
Runtime Dependencies
- rex~> 1.0github: GrottoPress/rex
- pawn>= 1.0, < 3.0github: GrottoPress/pawn
- avram~> 1.0github: luckyframework/avram
- lucky~> 1.0github: luckyframework/lucky
Development Dependencies
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
Lucille
Lucille is a collection of utilities for Lucky framework. It includes many custom validations for Avram operations, and several helper types and methods for use in app development and specs.
Installation
-
Add the dependency to your
shard.yml:dependencies: lucille: github: GrottoPress/lucille -
Run
shards update -
Require Lucille in your app:
# ... require "lucille" # <= Or you may require only the components you need: # <= `require "lucille/avram"` # <= `require "lucille/carbon"` # <= `require "lucille/lucky"` # For specs: # # require "lucille/spec" # # Or require only the components you need: # # require "lucille/spec/avram" # require "lucille/spec/carbon" # require "lucille/spec/lucky" # ...
Utilities
Avram
-
Macros
string_enum: Creates an Avram adapter that saves enums to the database asString
-
Validations
.validate_email.validate_domain.validate_domain_label.validate_foreign_key.validate_http_url.validate_ip.validate_ip4.validate_ip6.validate_name.validate_negative_number.validate_not_pwned.validate_positive_number.validate_slug.validate_url.validate_unicode_name.validate_username
-
Models (Data)
Lucille::JSONLucille::StatusColumnsLucille::SuccessStatusColumns
-
Models (Domain)
RecordStatusSuccessStatus
-
Operations
Lucille::ActivateLucille::DeactivateLucille::SetUserIdFromUserLucille::UserFromUserIdLucille::ValidateStatusLucille::ValidateUserExists
-
Queries
Lucille::StatusQueryLucille::SuccessStatusQuery
-
Criteria
String::Lucky::Criteria#search
Carbon
-
Mixins
MailHelpers: Includes helpers for working with Carbon mails
Lucky
-
Actions
Lucille::ActionHelpers
-
Annotations
Memoize: Invokes Lucky's.memoizemacro
-
Serializers
Lucille::Serializer: It's amodule, so you can create serializer withstructs.
-
Query Filters
Lucille::QueryFilter: Allows filtering queries based on request parameters
-
Response Filters
Lucille::ResponseFilter: Enables GraphQL-like filtering of responses based on request parameters
-
Preloaders
Lucille::Preloader: Allows preloading associations based on request parameters
Spec
-
Avram
#have_error: Spec expectation that asserts the validity of an attribute#fake_params: Creates params
-
Carbon
DevDeliverLaterStrategy: Delivers mail immediately, in the current fiber.
-
Lucky
#fake_file: Creates an uploaded file#fake_form: Create form params#fake_json: Creates JSON params#fake_multipart: Creates multipart params
I18n
Lucille uses Rex for i18n. See https://github.com/GrottoPress/rex.
Use the following as a guide to set up translations:
en:
operation:
error:
active_at_required: Active time is required
inactive_at_earlier: Inactive time cannot be earlier than active time
user_not_found: User does not exist
Development
Create a .env file:
DATABASE_URL='postgres://postgres:password@localhost:5432/lucille_spec'
Update the file with your own details. Then run tests with crystal spec.
Contributing
- Fork it
- Switch to the
masterbranch:git checkout master - Create your feature branch:
git checkout -b my-new-feature - Make your changes, updating changelog and documentation as appropriate.
- Commit your changes:
git commit - Push to the branch:
git push origin my-new-feature - Submit a new Pull Request against the
GrottoPress:masterbranch.
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.5.1- Tagged
- Sep 2, 2026
- Commit
24839aaec5e3- Crystal
~> 1.6- Indexed
- yes
Dependents
Repository
github.com/GrottoPress/lucille
Metadata
- Created
- Aug 12, 2026
- Updated
- Sep 24, 2026
- Synced
- Sep 24, 2026
- Versions
- 28