Module: Makit

Defined in:
lib/makit/git.rb,
lib/makit.rb,
lib/makit/wix.rb,
lib/makit/zip.rb,
lib/makit copy.rb,
lib/makit/auto.rb,
lib/makit/data.rb,
lib/makit/gems.rb,
lib/makit/port.rb,
lib/makit/rake.rb,
lib/makit/ruby.rb,
lib/makit/show.rb,
lib/makit/tree.rb,
lib/makit/yaml.rb,
lib/makit/email.rb,
lib/makit/files.rb,
lib/makit/nuget.rb,
lib/makit/apache.rb,
lib/makit/dotnet.rb,
lib/makit/protoc.rb,
lib/makit/git/cli.rb,
lib/makit/indexer.rb,
lib/makit/logging.rb,
lib/makit/process.rb,
lib/makit/secrets.rb,
lib/makit/storage.rb,
lib/makit/symbols.rb,
lib/makit/version.rb,
lib/makit/cli/main.rb,
lib/makit/commands.rb,
lib/makit/fileinfo.rb,
lib/makit/humanize.rb,
lib/makit/markdown.rb,
lib/makit/rake/cli.rb,
lib/makit/ruby/cli.rb,
lib/makit/directory.rb,
lib/makit/docs/rake.rb,
lib/makit/setup/gem.rb,
lib/makit/task_info.rb,
lib/makit/docs/files.rb,
lib/makit/dotnet/cli.rb,
lib/makit/exceptions.rb,
lib/makit/serializer.rb,
lib/makit/test_cache.rb,
lib/makit/directories.rb,
lib/makit/environment.rb,
lib/makit/setup/runner.rb,
lib/makit/version_util.rb,
lib/makit/configuration.rb,
lib/makit/gitlab_runner.rb,
lib/makit/mp/command_mp.rb,
lib/makit/mp/project_mp.rb,
lib/makit/dotnet/project.rb,
lib/makit/git/repository.rb,
lib/makit/logging/logger.rb,
lib/makit/setup/classlib.rb,
lib/makit/v1/makit.v1_pb.rb,
lib/makit/commands/result.rb,
lib/makit/commands/runner.rb,
lib/makit/dotnet/solution.rb,
lib/makit/examples/runner.rb,
lib/makit/commands/factory.rb,
lib/makit/commands/request.rb,
lib/makit/services/builder.rb,
lib/makit/cli/build_commands.rb,
lib/makit/configuration/step.rb,
lib/makit/logging/sinks/base.rb,
lib/makit/services/validator.rb,
lib/makit/tasks/hook_manager.rb,
lib/makit/dotnet/solution_wpf.rb,
lib/makit/logging/log_request.rb,
lib/makit/setup/razorclasslib.rb,
lib/makit/cli/project_commands.rb,
lib/makit/cli/utility_commands.rb,
lib/makit/content/gem_rakefile.rb,
lib/makit/dotnet/solution_maui.rb,
lib/makit/dotnet/solution_wasm.rb,
lib/makit/cli/strategy_commands.rb,
lib/makit/configuration/project.rb,
lib/makit/logging/configuration.rb,
lib/makit/logging/sinks/console.rb,
lib/makit/mp/command_request.mp.rb,
lib/makit/rake/trace_controller.rb,
lib/makit/services/error_handler.rb,
lib/makit/cli/repository_commands.rb,
lib/makit/dotnet/solution_console.rb,
lib/makit/logging/format_registry.rb,
lib/makit/logging/formatters/base.rb,
lib/makit/logging/sinks/file_sink.rb,
lib/makit/v1/makit.v1_services_pb.rb,
lib/makit/commands/middleware/base.rb,
lib/makit/commands/strategies/base.rb,
lib/makit/content/default_rakefile.rb,
lib/makit/dotnet/solution_classlib.rb,
lib/makit/logging/sinks/structured.rb,
lib/makit/commands/middleware/cache.rb,
lib/makit/content/default_gitignore.rb,
lib/makit/commands/strategies/factory.rb,
lib/makit/configuration/gitlab_helper.rb,
lib/makit/services/repository_manager.rb,
lib/makit/configuration/dotnet_project.rb,
lib/makit/cli/generators/base_generator.rb,
lib/makit/cli/generators/node_generator.rb,
lib/makit/cli/generators/ruby_generator.rb,
lib/makit/cli/generators/rust_generator.rb,
lib/makit/commands/middleware/validator.rb,
lib/makit/configuration/rakefile_helper.rb,
lib/makit/cli/generators/dotnet_generator.rb,
lib/makit/commands/strategies/synchronous.rb,
lib/makit/logging/sinks/unified_file_sink.rb,
lib/makit/cli/generators/generator_factory.rb,
lib/makit/commands/strategies/child_process.rb,
lib/makit/logging/formatters/json_formatter.rb,
lib/makit/logging/formatters/text_formatter.rb,
lib/makit/cli/generators/templates/ruby/test.rb,
lib/makit/commands/middleware/command_logger.rb,
lib/makit/cli/generators/templates/ruby/readme.rb,
lib/makit/logging/formatters/console_formatter.rb,
lib/makit/cli/generators/templates/ruby/gemfile.rb,
lib/makit/cli/generators/templates/ruby/gemspec.rb,
lib/makit/cli/generators/templates/ruby/version.rb,
lib/makit/cli/generators/templates/ruby/main_lib.rb,
lib/makit/cli/generators/templates/ruby/rakefile.rb,
lib/makit/cli/generators/templates/node_templates.rb,
lib/makit/cli/generators/templates/rust_templates.rb,
lib/makit/logging/formatters/plain_text_formatter.rb,
lib/makit/cli/generators/templates/dotnet_templates.rb,
lib/makit/cli/generators/templates/ruby/test_helper.rb

Overview

Task hooks system for Makit

This module provides a comprehensive hook system for Rake tasks, allowing developers to add pre and post execution hooks globally or for specific tasks. It uses monkey patching to intercept all task invocations and execute hooks at the appropriate times.

Examples:

Global hooks

Makit::Tasks::HookManager.add_pre_hook do |task_name|
  Makit::Logging.info("Starting task: #{task_name}")
end

Makit::Tasks::HookManager.add_post_hook do |task_name, duration, result, error|
  if error
    Makit::Logging.error("Task failed: #{task_name}")
  else
    Makit::Logging.success("Task completed: #{task_name}")
  end
end

Task-specific hooks

Makit::Tasks::HookManager.add_pre_hook_for(:build) do |task_name|
  Makit::Logging.info("Building project...")
end

Makit::Tasks::HookManager.add_post_hook_for(:test) do |task_name, duration, result, error|
  Makit::Logging.info("Test execution took #{duration.round(2)}s")
end

Defined Under Namespace

Modules: Auto, Cli, Commands, Configuration, Content, Directories, Docs, Examples, Files, Gems, Logging, Makit, Proto3Formats, Rake, Services, Setup, Tasks, TestCacheHelpers, V1 Classes: Apache, BuildError, CloneError, CommandError, ConfigurationError, Data, DependencyError, Directory, DirectoryError, DotNet, Email, Environment, Error, FileError, FileInfo, Git, GitError, GitLabRunner, Humanize, Indexer, InvalidCommitError, LegacyCommands, Markdown, NetworkError, NuGet, Port, Process, Protoc, PullError, Ruby, Secrets, Serializer, Show, Storage, Symbols, TaskInfo, TestCache, TimeoutError, Tree, ValidationError, Version, Wix, Yaml, Zip

Constant Summary collapse

GIT_FILE_INFOS =

Additional constants needed by Rakefile

Makit::Git::Repository.get_file_infos
IS_READ_ONLY =
Makit::Git::Repository.read_only?
IS_GIT_REPO =
Makit::Git::Repository.git_repo?
PROJECT =
Makit::Configuration::Project.default
VERSION =

Static version for now to avoid circular dependency issues

"0.0.139"