Class: Polyrun::Config
- Inherits:
-
Object
- Object
- Polyrun::Config
- Defined in:
- lib/polyrun/config.rb,
lib/polyrun/config/resolver.rb,
lib/polyrun/config/effective.rb,
lib/polyrun/config/dotted_path.rb
Overview
Loads polyrun.yml (or path from POLYRUN_CONFIG / –config).
Defined Under Namespace
Modules: DottedPath, Effective, Resolver
Constant Summary collapse
- DEFAULT_FILENAMES =
%w[polyrun.yml config/polyrun.yml].freeze
- DEFAULT_PARALLEL_WORKERS =
5- MAX_PARALLEL_WORKERS =
10
Instance Attribute Summary collapse
-
#path ⇒ Object
readonly
Returns the value of attribute path.
-
#raw ⇒ Object
readonly
Returns the value of attribute raw.
Class Method Summary collapse
Instance Method Summary collapse
- #coverage ⇒ Object
- #databases ⇒ Object
-
#hooks ⇒ Object
Optional
hooks:block forrun-shards/parallel-rspec/ci-shard-*(see Hooks). -
#initialize(path:, raw:) ⇒ Config
constructor
A new instance of Config.
- #partition ⇒ Object
- #prepare ⇒ Object
-
#reporting ⇒ Object
Optional
reporting:block (merge-failures output paths, etc.). -
#start_config ⇒ Object
Optional
start:block:prepare/databasesbooleans override auto-detection for polyrun start. - #version ⇒ Object
Constructor Details
#initialize(path:, raw:) ⇒ Config
Returns a new instance of Config.
35 36 37 38 |
# File 'lib/polyrun/config.rb', line 35 def initialize(path:, raw:) @path = path @raw = raw.freeze end |
Instance Attribute Details
#path ⇒ Object (readonly)
Returns the value of attribute path.
12 13 14 |
# File 'lib/polyrun/config.rb', line 12 def path @path end |
#raw ⇒ Object (readonly)
Returns the value of attribute raw.
12 13 14 |
# File 'lib/polyrun/config.rb', line 12 def raw @raw end |
Class Method Details
.load(path: nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/polyrun/config.rb', line 14 def self.load(path: nil) path = resolve_path(path) raw = if path && File.file?(path) YAML.safe_load_file(path, permitted_classes: [Symbol], aliases: true) || {} else {} end new(path: path, raw: raw) end |
.resolve_path(explicit) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/polyrun/config.rb', line 25 def self.resolve_path(explicit) return File.(explicit) if explicit && !explicit.empty? DEFAULT_FILENAMES.each do |name| full = File.(name, Dir.pwd) return full if File.file?(full) end nil end |
Instance Method Details
#coverage ⇒ Object
48 49 50 |
# File 'lib/polyrun/config.rb', line 48 def coverage raw["coverage"] || raw[:coverage] || {} end |
#databases ⇒ Object
52 53 54 |
# File 'lib/polyrun/config.rb', line 52 def databases raw["databases"] || raw[:databases] || {} end |
#hooks ⇒ Object
Optional hooks: block for run-shards / parallel-rspec / ci-shard-* (see Hooks).
66 67 68 |
# File 'lib/polyrun/config.rb', line 66 def hooks raw["hooks"] || raw[:hooks] || {} end |
#partition ⇒ Object
40 41 42 |
# File 'lib/polyrun/config.rb', line 40 def partition raw["partition"] || raw[:partition] || {} end |
#prepare ⇒ Object
44 45 46 |
# File 'lib/polyrun/config.rb', line 44 def prepare raw["prepare"] || raw[:prepare] || {} end |
#reporting ⇒ Object
Optional reporting: block (merge-failures output paths, etc.).
71 72 73 |
# File 'lib/polyrun/config.rb', line 71 def reporting raw["reporting"] || raw[:reporting] || {} end |
#start_config ⇒ Object
Optional start: block: prepare / databases booleans override auto-detection for polyrun start.
57 58 59 |
# File 'lib/polyrun/config.rb', line 57 def start_config raw["start"] || raw[:start] || {} end |
#version ⇒ Object
61 62 63 |
# File 'lib/polyrun/config.rb', line 61 def version raw["version"] || raw[:version] end |