Module: Kettle::Dev
- Defined in:
- lib/kettle/dev.rb,
lib/kettle/dev/version.rb,
lib/kettle/dev/bump_cli.rb,
lib/kettle/dev/dvcs_cli.rb,
lib/kettle/dev/ci_helpers.rb,
lib/kettle/dev/ci_monitor.rb,
lib/kettle/dev/commit_msg.rb,
lib/kettle/dev/versioning.rb,
lib/kettle/dev/git_adapter.rb,
lib/kettle/dev/release_cli.rb,
lib/kettle/dev/exit_adapter.rb,
lib/kettle/dev/version_bump.rb,
lib/kettle/dev/changelog_cli.rb,
lib/kettle/dev/input_adapter.rb,
lib/kettle/dev/tasks/ci_task.rb,
lib/kettle/dev/cache_progress.rb,
lib/kettle/dev/readme_backers.rb,
lib/kettle/dev/gem_spec_reader.rb,
lib/kettle/dev/pre_release_cli.rb,
lib/kettle/dev/gha_sha_pins_cli.rb,
lib/kettle/dev/git_commit_footer.rb,
lib/kettle/dev/changelog_entry_adder.rb,
lib/kettle/dev/open_collective_config.rb,
sig/kettle/dev.rbs,
sig/kettle/dev/tasks.rbs,
sig/kettle/dev/version.rbs,
sig/kettle/dev/dvcs_cli.rbs,
sig/kettle/dev/setup_cli.rbs,
sig/kettle/dev/ci_helpers.rbs,
sig/kettle/dev/ci_monitor.rbs,
sig/kettle/dev/commit_msg.rbs,
sig/kettle/dev/versioning.rbs,
sig/kettle/dev/git_adapter.rbs,
sig/kettle/dev/prism_utils.rbs,
sig/kettle/dev/release_cli.rbs,
sig/kettle/dev/exit_adapter.rbs,
sig/kettle/dev/changelog_cli.rbs,
sig/kettle/dev/input_adapter.rbs,
sig/kettle/dev/source_merger.rbs,
sig/kettle/dev/tasks/ci_task.rbs,
sig/kettle/dev/readme_backers.rbs,
sig/kettle/dev/gem_spec_reader.rbs,
sig/kettle/dev/pre_release_cli.rbs,
sig/kettle/dev/modular_gemfiles.rbs,
sig/kettle/dev/template_helpers.rbs,
sig/kettle/dev/tasks/install_task.rbs,
sig/kettle/dev/tasks/template_task.rbs,
sig/kettle/dev/appraisals_ast_merger.rbs,
sig/kettle/dev/open_collective_config.rbs
Defined Under Namespace
Modules: AppraisalsAstMerger, CIHelpers, CIMonitor, CommitMsg, ExitAdapter, InputAdapter, ModularGemfiles, OpenCollectiveConfig, PrismUtils, SourceMerger, Tasks, TemplateHelpers, Version, Versioning Classes: BumpCLI, CacheProgress, ChangelogCLI, ChangelogEntryAdder, DvcsCLI, Error, GemSpecReader, GhaShaPinsCLI, GitAdapter, GitCommitFooter, PreReleaseCLI, ReadmeBackers, ReleaseCLI, SetupCLI, VersionBump
Constant Summary collapse
- DEBUGGING =
Whether debug logging is enabled for kettle-dev internals. Controlled by KETTLE_DEV_DEBUG=true.
ENV.fetch("KETTLE_DEV_DEBUG", "false").casecmp("true").zero?
- IS_CI =
Whether we are running on CI.
ENV.fetch("CI", "false").casecmp("true") == 0
- REQUIRE_BENCH =
Whether to benchmark requires with require_bench.
ENV.fetch("REQUIRE_BENCH", "false").casecmp("true").zero?
- RUNNING_AS =
The current program name (e.g., "rake", "rspec"). Used to decide whether to auto-load rake tasks at the bottom of this file. Normally tasks are loaded in the host project's Rakefile, but when running under this gem's own test suite we need precise coverage; so we only auto-install tasks when invoked via the rake executable.
File.basename($PROGRAM_NAME)
- ENV_TRUE_RE =
A case-insensitive regular expression that matches common truthy ENV values. Accepts 1, true, y, yes (any case).
/\A(1|true|y|yes)\z/i- ENV_FALSE_RE =
A case-insensitive regular expression that matches common falsy ENV values. Accepts false, n, no, 0 (any case).
/\A(false|n|no|0)\z/i- GEM_ROOT =
Absolute path to the root of the kettle-dev gem (repository root when working from source)
File.("../..", __dir__)
- VAR_HOME_PREFIX =
%r{\A/var/home(?=/|\z)}- VAR_HOME_TEXT =
%r{/var/home(?=/|\z)}- VERSION =
Traditional Constant Location
Version::VERSION
Class Attribute Summary collapse
-
.defaults ⇒ Array<String>
readonly
Registry for tasks that should be prerequisites of the default task.
Class Method Summary collapse
-
.debug_error(error, context = nil, backtrace: true) ⇒ void
Emit a debug warning for rescued errors when kettle-dev debugging is enabled.
-
.debug_log(msg, context = nil) ⇒ void
Emit a debug log line when kettle-dev debugging is enabled.
- .default_registered?(task_name) ⇒ Boolean
- .display_path(path) ⇒ Object
- .display_text(text) ⇒ Object
-
.install_tasks ⇒ void
Singleton methods.
-
.register_default(task_name) ⇒ Array<String>
Register a task name to be run by the default task.
- .safe_load_yaml(content) ⇒ Object
- .safe_load_yaml_file(path) ⇒ Object
Class Attribute Details
.defaults ⇒ Array<String> (readonly)
Registry for tasks that should be prerequisites of the default task
157 158 159 |
# File 'lib/kettle/dev.rb', line 157 def defaults @defaults end |
Class Method Details
.debug_error(error, context = nil, backtrace: true) ⇒ void
This method returns an undefined value.
Emit a debug warning for rescued errors when kettle-dev debugging is enabled. Controlled by KETTLE_DEV_DEBUG=true.
121 122 123 124 125 126 127 128 129 |
# File 'lib/kettle/dev.rb', line 121 def debug_error(error, context = nil, backtrace: true) return unless DEBUGGING ctx = context ? context.to_s : "KETTLE-DEV-RESCUE" Kernel.warn("[#{ctx}] #{error.class}: #{error.}") Kernel.warn(Array(error.backtrace).first(5).join("\n")) if backtrace && error.respond_to?(:backtrace) && error.backtrace rescue # never raise from debug logging end |
.debug_log(msg, context = nil) ⇒ void
This method returns an undefined value.
Emit a debug log line when kettle-dev debugging is enabled. Controlled by KETTLE_DEV_DEBUG=true.
135 136 137 138 139 140 141 142 |
# File 'lib/kettle/dev.rb', line 135 def debug_log(msg, context = nil) return unless DEBUGGING ctx = context ? context.to_s : "KETTLE-DEV-DEBUG" Kernel.warn("[#{ctx}] #{msg}") rescue # never raise from debug logging end |
.default_registered?(task_name) ⇒ Boolean
178 179 180 |
# File 'lib/kettle/dev.rb', line 178 def default_registered?(task_name) defaults.include?(task_name.to_s) end |
.display_path(path) ⇒ Object
93 94 95 96 97 |
# File 'lib/kettle/dev.rb', line 93 def display_path(path) return path if path.nil? path.to_s.sub(VAR_HOME_PREFIX, "/home") end |
.display_text(text) ⇒ Object
99 100 101 102 103 |
# File 'lib/kettle/dev.rb', line 99 def display_text(text) return text if text.nil? text.to_s.gsub(VAR_HOME_TEXT, "/home") end |
.install_tasks ⇒ void
This method returns an undefined value.
Singleton methods
149 150 151 152 153 |
# File 'lib/kettle/dev.rb', line 149 def install_tasks linting_tasks coverage_tasks load("kettle/dev/tasks.rb") end |
.register_default(task_name) ⇒ Array<String>
Register a task name to be run by the default task. Also enhances the :default task immediately if it exists.
163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/kettle/dev.rb', line 163 def register_default(task_name) task_name = task_name.to_s unless defaults.include?(task_name) @defaults = (defaults + [task_name]).freeze # rubocop:disable ThreadSafety/ClassInstanceVariable if defined?(Rake) && Rake::Task.task_defined?(:default) begin Rake::Task[:default].enhance([task_name]) rescue => e Kernel.warn("kettle-dev: failed to enhance :default with #{task_name}: #{e.}") if DEBUGGING end end end defaults end |
.safe_load_yaml(content) ⇒ Object
105 106 107 108 109 |
# File 'lib/kettle/dev.rb', line 105 def safe_load_yaml(content) YAML.safe_load(content, permitted_classes: [], aliases: false) rescue ArgumentError YAML.safe_load(content, [], [], false) end |
.safe_load_yaml_file(path) ⇒ Object
111 112 113 |
# File 'lib/kettle/dev.rb', line 111 def safe_load_yaml_file(path) safe_load_yaml(File.read(path)) end |