module Topia

Defined in:

topia.cr
topia/async_spinner.cr
topia/async_watcher.cr
topia/cli.cr
topia/command.cr
topia/concurrent_executor.cr
topia/config.cr
topia/dependency_manager.cr
topia/error.cr
topia/input_file.cr
topia/pipe.cr
topia/plugin.cr
topia/spinner.cr
topia/task.cr
topia/task_cache.cr
topia/watcher.cr

Constant Summary

SPINNER = Spinner.new("Waiting...")
VERSION = "0.1.0"

Class Method Summary

Class Method Detail

def self.available_tasks : Array(Task) #

Task management helpers


[View source]
def self.cache_stats #

[View source]
def self.cached_executor #

[View source]
def self.clear_cache #

[View source]
def self.clear_tasks #

Clear all tasks (useful for testing)


[View source]
def self.cli(args = ARGV) #

CLI entry point


[View source]
def self.concurrent_executor(max_concurrent = 4) #

[View source]
def self.concurrent_stats #

[View source]
def self.configure(file_path : String) #

Configuration file support


[View source]
def self.create_sample_config(file_path : String = "topia.yml") #

Create sample configuration


[View source]
def self.debug(message : String) #

[View source]
def self.debug=(debug) #

[View source]
def self.debug? #

[View source]
def self.default(subtask : String) #

Adds a default task


[View source]
def self.default(subtasks : Array(String)) #

Add multiple default tasks


[View source]
def self.default_tasks : Array(String) #

[View source]
def self.error(message : String) #

[View source]
def self.execute_concurrent(tasks : Array(Task), max_concurrent = 4, use_cache = true, show_progress = true) #

[View source]
def self.find_task(name : String) : Task | Nil #

[View source]
def self.info(message : String) #

Output helpers


[View source]
def self.logger #

[View source]
def self.output_mode #

[View source]
def self.quiet? #

[View source]
def self.record_task_failure(task_name : String, start_time : Time::Span, error : Exception) #

[View source]
def self.record_task_success(task_name : String, start_time : Time::Span) #

Task statistics


[View source]
def self.run(name : String, params : Array(String) = [] of String) #

Run a task


[View source]
def self.run(tasks : Array) #

Override to run multiple tasks To be used for default tasks.


[View source]
def self.run_default #

Runs the default task(s)


[View source]
def self.run_parallel(task_names : Array(String), max_jobs : Int32 = System.cpu_count) #

Parallel task execution with job control


[View source]
def self.set_output_mode(mode : Symbol) #

Output mode management


[View source]
def self.show_detailed_statistics #

[View source]
def self.success(message : String) #

[View source]
def self.task(name : String, cb) #

Overload for creating a task with a callback function that gets executed first


[View source]
def self.task(name : String) #

Creates a new task


[View source]
def self.task_dependencies(task_name : String) : Array(String) #

[View source]
def self.task_statistics(task_name : String) : String | Nil #

[View source]
def self.validate_all_dependencies #

Dependency validation


[View source]
def self.verbose? #

[View source]
def self.warn(message : String) #

[View source]
def self.watch_and_run(task_names : Array(String), &block : Array(String) -> Nil) #

Watch and run tasks when files change


[View source]