Module: Dratools::Config
- Defined in:
- lib/dratools/config.rb
Overview
Reads advanced configuration from environment variables.
Constant Summary collapse
- MAX_RECURSIVE_NON_RUN_XREFS_ENV =
'DRATOOLS_MAX_RECURSIVE_NON_RUN_XREFS'- TREE_MAX_DIRECT_RUNS_ENV =
'DRATOOLS_TREE_MAX_DIRECT_RUNS'- URL_MAX_DIRECT_RUNS_ENV =
'DRATOOLS_URL_MAX_DIRECT_RUNS'- SIZE_MAX_DIRECT_RUNS_ENV =
'DRATOOLS_SIZE_MAX_DIRECT_RUNS'- DOWNLOAD_CONNECT_TIMEOUT_ENV =
'DRATOOLS_DOWNLOAD_CONNECT_TIMEOUT'- DOWNLOAD_STALL_TIMEOUT_ENV =
'DRATOOLS_DOWNLOAD_STALL_TIMEOUT'- DOWNLOAD_STALL_SPEED_ENV =
'DRATOOLS_DOWNLOAD_STALL_SPEED'- DOWNLOAD_RETRY_COUNT_ENV =
'DRATOOLS_DOWNLOAD_RETRY_COUNT'- DOWNLOAD_RETRY_WAIT_ENV =
'DRATOOLS_DOWNLOAD_RETRY_WAIT'- DEFAULT_MAX_RECURSIVE_NON_RUN_XREFS =
100- DEFAULT_TREE_MAX_DIRECT_RUNS =
50- DEFAULT_URL_MAX_DIRECT_RUNS =
50- DEFAULT_SIZE_MAX_DIRECT_RUNS =
50- DEFAULT_DOWNLOAD_CONNECT_TIMEOUT_SECONDS =
30- DEFAULT_DOWNLOAD_STALL_TIMEOUT_SECONDS =
60- DEFAULT_DOWNLOAD_STALL_SPEED_BYTES_PER_SECOND =
1024- DEFAULT_DOWNLOAD_RETRY_COUNT =
3- DEFAULT_DOWNLOAD_RETRY_WAIT_SECONDS =
5- UNLIMITED_VALUE =
'unlimited'
Class Method Summary collapse
- .download_connect_timeout_seconds ⇒ Object
- .download_retry_count ⇒ Object
- .download_retry_wait_seconds ⇒ Object
- .download_stall_speed_bytes_per_second ⇒ Object
- .download_stall_timeout_seconds ⇒ Object
- .invalid_environment_value!(name, value, expected) ⇒ Object
- .max_recursive_non_run_xrefs ⇒ Object
- .non_negative_integer(name, default) ⇒ Object
- .positive_integer(name, default) ⇒ Object
- .positive_integer_or_unlimited(name, default) ⇒ Object
- .size_max_direct_runs ⇒ Object
- .tree_max_direct_runs ⇒ Object
- .url_max_direct_runs ⇒ Object
Class Method Details
.download_connect_timeout_seconds ⇒ Object
53 54 55 |
# File 'lib/dratools/config.rb', line 53 def download_connect_timeout_seconds positive_integer(DOWNLOAD_CONNECT_TIMEOUT_ENV, DEFAULT_DOWNLOAD_CONNECT_TIMEOUT_SECONDS) end |
.download_retry_count ⇒ Object
65 66 67 |
# File 'lib/dratools/config.rb', line 65 def download_retry_count non_negative_integer(DOWNLOAD_RETRY_COUNT_ENV, DEFAULT_DOWNLOAD_RETRY_COUNT) end |
.download_retry_wait_seconds ⇒ Object
69 70 71 |
# File 'lib/dratools/config.rb', line 69 def download_retry_wait_seconds positive_integer(DOWNLOAD_RETRY_WAIT_ENV, DEFAULT_DOWNLOAD_RETRY_WAIT_SECONDS) end |
.download_stall_speed_bytes_per_second ⇒ Object
61 62 63 |
# File 'lib/dratools/config.rb', line 61 def download_stall_speed_bytes_per_second positive_integer(DOWNLOAD_STALL_SPEED_ENV, DEFAULT_DOWNLOAD_STALL_SPEED_BYTES_PER_SECOND) end |
.download_stall_timeout_seconds ⇒ Object
57 58 59 |
# File 'lib/dratools/config.rb', line 57 def download_stall_timeout_seconds positive_integer(DOWNLOAD_STALL_TIMEOUT_ENV, DEFAULT_DOWNLOAD_STALL_TIMEOUT_SECONDS) end |
.invalid_environment_value!(name, value, expected) ⇒ Object
110 111 112 |
# File 'lib/dratools/config.rb', line 110 def invalid_environment_value!(name, value, expected) raise InvalidOptionError, "invalid #{name} '#{value}' (expected: #{expected})" end |
.max_recursive_non_run_xrefs ⇒ Object
31 32 33 34 35 36 |
# File 'lib/dratools/config.rb', line 31 def max_recursive_non_run_xrefs positive_integer_or_unlimited( MAX_RECURSIVE_NON_RUN_XREFS_ENV, DEFAULT_MAX_RECURSIVE_NON_RUN_XREFS ) end |
.non_negative_integer(name, default) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/dratools/config.rb', line 98 def non_negative_integer(name, default) value = ENV.fetch(name, '').strip return default if value.empty? integer = Integer(value, 10) return integer unless integer.negative? invalid_environment_value!(name, value, 'non-negative integer') rescue ArgumentError invalid_environment_value!(name, value, 'non-negative integer') end |
.positive_integer(name, default) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/dratools/config.rb', line 86 def positive_integer(name, default) value = ENV.fetch(name, '').strip return default if value.empty? integer = Integer(value, 10) return integer if integer.positive? invalid_environment_value!(name, value, 'positive integer') rescue ArgumentError invalid_environment_value!(name, value, 'positive integer') end |
.positive_integer_or_unlimited(name, default) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/dratools/config.rb', line 73 def positive_integer_or_unlimited(name, default) value = ENV.fetch(name, '').strip return default if value.empty? return nil if value.casecmp?(UNLIMITED_VALUE) integer = Integer(value, 10) return integer if integer.positive? invalid_environment_value!(name, value, "positive integer or #{UNLIMITED_VALUE}") rescue ArgumentError invalid_environment_value!(name, value, "positive integer or #{UNLIMITED_VALUE}") end |
.size_max_direct_runs ⇒ Object
49 50 51 |
# File 'lib/dratools/config.rb', line 49 def size_max_direct_runs positive_integer_or_unlimited(SIZE_MAX_DIRECT_RUNS_ENV, DEFAULT_SIZE_MAX_DIRECT_RUNS) end |
.tree_max_direct_runs ⇒ Object
38 39 40 41 42 43 |
# File 'lib/dratools/config.rb', line 38 def tree_max_direct_runs positive_integer_or_unlimited( TREE_MAX_DIRECT_RUNS_ENV, DEFAULT_TREE_MAX_DIRECT_RUNS ) end |
.url_max_direct_runs ⇒ Object
45 46 47 |
# File 'lib/dratools/config.rb', line 45 def url_max_direct_runs positive_integer_or_unlimited(URL_MAX_DIRECT_RUNS_ENV, DEFAULT_URL_MAX_DIRECT_RUNS) end |