Class: Rubycli::Environment
- Inherits:
-
Object
- Object
- Rubycli::Environment
- Defined in:
- lib/rubycli/environment.rb
Overview
Environment captures runtime flags and configuration derived from ENV / argv.
Instance Method Summary collapse
- #allow_param_comments? ⇒ Boolean
- #clear_documentation_issues! ⇒ Object
- #constant_resolution_mode ⇒ Object
- #debug? ⇒ Boolean
- #disable_doc_check! ⇒ Object
- #disable_print_result! ⇒ Object
- #disable_strict_input! ⇒ Object
- #doc_check_mode? ⇒ Boolean
- #documentation_issues ⇒ Object
- #enable_doc_check! ⇒ Object
- #enable_print_result! ⇒ Object
- #enable_strict_input! ⇒ Object
- #handle_documentation_issue(message, file: nil, line: nil) ⇒ Object
- #handle_input_violation(message) ⇒ Object
-
#initialize(env: ENV, argv: nil) ⇒ Environment
constructor
A new instance of Environment.
- #print_result? ⇒ Boolean
- #strict_input? ⇒ Boolean
Constructor Details
#initialize(env: ENV, argv: nil) ⇒ Environment
Returns a new instance of Environment.
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/rubycli/environment.rb', line 6 def initialize(env: ENV, argv: nil) @env = env @argv = argv @debug = env['RUBYCLI_DEBUG'] == 'true' @print_result = env['RUBYCLI_PRINT_RESULT'] == 'true' @doc_check_mode = false @strict_input = false @documentation_issues = [] scrub_argv_flags! end |
Instance Method Details
#allow_param_comments? ⇒ Boolean
25 26 27 28 |
# File 'lib/rubycli/environment.rb', line 25 def allow_param_comments? value = fetch_env_value('RUBYCLI_ALLOW_PARAM_COMMENT', 'ON') %w[on 1 true].include?(value) end |
#clear_documentation_issues! ⇒ Object
58 59 60 |
# File 'lib/rubycli/environment.rb', line 58 def clear_documentation_issues! @documentation_issues.clear end |
#constant_resolution_mode ⇒ Object
62 63 64 65 66 67 |
# File 'lib/rubycli/environment.rb', line 62 def constant_resolution_mode value = fetch_env_value('RUBYCLI_AUTO_TARGET', 'strict') return :auto if %w[auto on true yes 1].include?(value) :strict end |
#debug? ⇒ Boolean
17 18 19 |
# File 'lib/rubycli/environment.rb', line 17 def debug? @debug end |
#disable_doc_check! ⇒ Object
38 39 40 |
# File 'lib/rubycli/environment.rb', line 38 def disable_doc_check! @doc_check_mode = false end |
#disable_print_result! ⇒ Object
99 100 101 |
# File 'lib/rubycli/environment.rb', line 99 def disable_print_result! @print_result = false end |
#disable_strict_input! ⇒ Object
50 51 52 |
# File 'lib/rubycli/environment.rb', line 50 def disable_strict_input! @strict_input = false end |
#doc_check_mode? ⇒ Boolean
34 35 36 |
# File 'lib/rubycli/environment.rb', line 34 def doc_check_mode? @doc_check_mode end |
#documentation_issues ⇒ Object
54 55 56 |
# File 'lib/rubycli/environment.rb', line 54 def documentation_issues @documentation_issues.dup end |
#enable_doc_check! ⇒ Object
30 31 32 |
# File 'lib/rubycli/environment.rb', line 30 def enable_doc_check! @doc_check_mode = true end |
#enable_print_result! ⇒ Object
95 96 97 |
# File 'lib/rubycli/environment.rb', line 95 def enable_print_result! @print_result = true end |
#enable_strict_input! ⇒ Object
42 43 44 |
# File 'lib/rubycli/environment.rb', line 42 def enable_strict_input! @strict_input = true end |
#handle_documentation_issue(message, file: nil, line: nil) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/rubycli/environment.rb', line 69 def handle_documentation_issue(, file: nil, line: nil) location = nil if file = File.(file) relative_prefix = File.(Dir.pwd) + '/' display_path = .start_with?(relative_prefix) ? .delete_prefix(relative_prefix) : location = line ? "#{display_path}:#{line}" : display_path end = if location "#{location} #{}" else end entry = { message: , location: location } @documentation_issues << entry warn "[WARN] Rubycli documentation mismatch: #{}" if doc_check_mode? end |
#handle_input_violation(message) ⇒ Object
89 90 91 92 93 |
# File 'lib/rubycli/environment.rb', line 89 def handle_input_violation() raise Rubycli::ArgumentError, if strict_input? warn "[WARN] #{} (use --strict to abort on invalid input)" end |
#print_result? ⇒ Boolean
21 22 23 |
# File 'lib/rubycli/environment.rb', line 21 def print_result? @print_result end |
#strict_input? ⇒ Boolean
46 47 48 |
# File 'lib/rubycli/environment.rb', line 46 def strict_input? @strict_input end |