Hwaro::Services::ChangeSet
Inherits Struct / Value / Object
Categorised set of file-system changes detected by the watcher.
Changes are split into five buckets so the server can pick the cheapest rebuild strategy.
Constructors
Instance methods
True when content and templates changed together (no structural changes)
True when only non-Markdown content files were modified — just republish them, no markdown re-parsing, no template re-render.
True when content was modified (possibly alongside static changes) but no structural / config / template changes occurred.
Human-readable description of the change for logging. The trailing noun is pluralized by the total file count; a config change is named separately since it is one specific file, not a category count.
What the watch timeline prints: the path itself when exactly one file changed (the common save-one-file loop), the category summary above otherwise.
Merge another ChangeSet into this one, combining all buckets. Used during debounce to batch rapid successive changes.
Order-aware semantics (self happens first, then other):
- add→remove cancels out (file created then deleted = no-op)
- remove→add keeps the add (file deleted then recreated = net add, e.g. atomic save via delete+move)
Non-Markdown files under content/ (images and other assets published
via [content.files] allow_extensions) that were modified. These
are not pages — they're copied 1:1 to the output dir on rebuild, so
they can't ride the incremental page pipeline.
Data / i18n files (data/, i18n/) that were modified. Templates
read site.data and translations feed every localized string, so any
page may depend on these — a change here forces a full rebuild.
True when a full rebuild is unavoidable: config changed, data/i18n changed (any page may read them), or files were added / deleted (which affects section lists, navigation, taxonomy indices, etc.)
True when only template files were modified (no content / static / structural changes)