class Bashly::Settings
Attributes
Public Class Methods
Source
# File lib/bashly/settings.rb, line 37 def all_lib_dirs @all_lib_dirs = [full_lib_dir] + extra_lib_dirs end
Source
# File lib/bashly/settings.rb, line 41 def argfile_var @argfile_var ||= get :argfile_var end
Source
# File lib/bashly/settings.rb, line 45 def commands_dir @commands_dir ||= get :commands_dir end
Source
# File lib/bashly/settings.rb, line 49 def compact_short_flags @compact_short_flags ||= get :compact_short_flags end
Source
# File lib/bashly/settings.rb, line 57 def config_path @config_path ||= get(:config_path) % { source_dir: source_dir } end
Source
# File lib/bashly/settings.rb, line 53 def conjoined_flag_args @conjoined_flag_args ||= get :conjoined_flag_args end
Source
# File lib/bashly/settings.rb, line 67 def enable_bash3_bouncer @enable_bash3_bouncer ||= get :enable_bash3_bouncer end
Source
# File lib/bashly/settings.rb, line 71 def enable_deps_array @enable_deps_array ||= get :enable_deps_array end
Source
# File lib/bashly/settings.rb, line 75 def enable_env_var_names_array @enable_env_var_names_array ||= get :enable_env_var_names_array end
Source
# File lib/bashly/settings.rb, line 79 def enable_header_comment @enable_header_comment ||= get :enable_header_comment end
Source
# File lib/bashly/settings.rb, line 83 def enable_inspect_args @enable_inspect_args ||= get :enable_inspect_args end
Source
# File lib/bashly/settings.rb, line 87 def enable_sourcing @enable_sourcing ||= get :enable_sourcing end
Source
# File lib/bashly/settings.rb, line 91 def enable_view_markers @enable_view_markers ||= get :enable_view_markers end
Source
# File lib/bashly/settings.rb, line 61 def enabled?(feature) send(:"enable_#{feature}") == 'always' || (send(:"enable_#{feature}") == 'production' && production?) || (send(:"enable_#{feature}") == 'development' && !production?) end
Source
# File lib/bashly/settings.rb, line 103 def extra_lib_dirs @extra_lib_dirs ||= begin dirs = get :extra_lib_dirs case dirs when Array then dirs when String then dirs.split(',').map(&:strip) else [] end end end
Source
# File lib/bashly/settings.rb, line 114 def formatter @formatter ||= get :formatter end
Source
# File lib/bashly/settings.rb, line 118 def full_lib_dir "#{source_dir}/#{lib_dir}" end
Source
# File lib/bashly/settings.rb, line 122 def function_name(key) function_names[key.to_s] || key.to_s end
Source
# File lib/bashly/settings.rb, line 126 def function_names @function_names ||= get :function_names end
Source
# File lib/bashly/settings.rb, line 134 def partials_extension @partials_extension ||= get :partials_extension end
Source
# File lib/bashly/settings.rb, line 138 def private_reveal_key @private_reveal_key ||= get :private_reveal_key end
Source
# File lib/bashly/settings.rb, line 142 def production? env == :production end
Source
# File lib/bashly/settings.rb, line 146 def show_examples_on_error @show_examples_on_error ||= get :show_examples_on_error end
Source
# File lib/bashly/settings.rb, line 150 def source_dir @source_dir ||= get :source_dir end
Source
# File lib/bashly/settings.rb, line 158 def strict_string if strict.is_a? String strict elsif strict 'set -euo pipefail' else 'set -e' end end
Source
# File lib/bashly/settings.rb, line 168 def tab_indent @tab_indent ||= get :tab_indent end
Source
# File lib/bashly/settings.rb, line 172 def target_dir @target_dir ||= get :target_dir end
Source
# File lib/bashly/settings.rb, line 176 def usage_colors @usage_colors ||= get :usage_colors end
Source
# File lib/bashly/settings.rb, line 180 def var_aliases @var_aliases ||= get :var_aliases end
Source
# File lib/bashly/settings.rb, line 184 def watch_evented @watch_evented ||= get :watch_evented end
Source
# File lib/bashly/settings.rb, line 188 def watch_latency @watch_latency ||= get :watch_latency end
Source
# File lib/bashly/settings.rb, line 192 def word_wrap @word_wrap ||= get :word_wrap end
Private Class Methods
Source
# File lib/bashly/settings.rb, line 222 def config @config ||= default_settings.merge user_settings end
Source
# File lib/bashly/settings.rb, line 240 def default_settings @default_settings ||= Config.new default_settings_path end
Source
# File lib/bashly/settings.rb, line 244 def default_settings_path asset 'libraries/settings/settings.yml' end
Source
# File lib/bashly/settings.rb, line 202 def env_var_name(key) "BASHLY_#{key.upcase}" end
Source
# File lib/bashly/settings.rb, line 198 def get(key) ENV.has_key?(env_var_name(key)) ? value_from_env(key) : value_from_config(key) end
Source
# File lib/bashly/settings.rb, line 226 def user_settings @user_settings ||= File.exist?(user_settings_path) ? Config.new(user_settings_path) : {} end
Source
# File lib/bashly/settings.rb, line 230 def user_settings_path @user_settings_path ||= if ENV['BASHLY_SETTINGS_PATH'] ENV['BASHLY_SETTINGS_PATH'] elsif File.exist? 'bashly-settings.yml' 'bashly-settings.yml' else 'settings.yml' end end
Source
# File lib/bashly/settings.rb, line 206 def value_from_config(key) return config[key.to_s] if key == :env result = config["#{key}_#{env}"] result.nil? ? config[key.to_s] : result end
Source
# File lib/bashly/settings.rb, line 213 def value_from_env(key) result = ENV[env_var_name(key)] case result&.strip&.downcase when '0', 'false', 'no' then false when '1', 'true', 'yes' then true else result end end