class Bashly::Settings
Attributes
argfile_var[W]
commands_dir[W]
compact_short_flags[W]
config_path[W]
conjoined_flag_args[W]
enable_bash3_bouncer[W]
enable_deps_array[W]
enable_env_var_names_array[W]
enable_header_comment[W]
enable_inspect_args[W]
enable_sourcing[W]
enable_view_markers[W]
extra_lib_dirs[W]
formatter[W]
function_names[W]
lib_dir[W]
partials_extension[W]
private_reveal_key[W]
show_examples_on_error[W]
source_dir[W]
strict[W]
tab_indent[W]
target_dir[W]
usage_colors[W]
var_aliases[W]
watch_evented[W]
watch_latency[W]
word_wrap[W]
Public Class Methods
all_lib_dirs()
click to toggle source
# File lib/bashly/settings.rb, line 37 def all_lib_dirs @all_lib_dirs = [full_lib_dir] + extra_lib_dirs end
argfile_var()
click to toggle source
# File lib/bashly/settings.rb, line 41 def argfile_var @argfile_var ||= get :argfile_var end
commands_dir()
click to toggle source
# File lib/bashly/settings.rb, line 45 def commands_dir @commands_dir ||= get :commands_dir end
compact_short_flags()
click to toggle source
# File lib/bashly/settings.rb, line 49 def compact_short_flags @compact_short_flags ||= get :compact_short_flags end
config_path()
click to toggle source
# File lib/bashly/settings.rb, line 57 def config_path @config_path ||= get(:config_path) % { source_dir: source_dir } end
conjoined_flag_args()
click to toggle source
# File lib/bashly/settings.rb, line 53 def conjoined_flag_args @conjoined_flag_args ||= get :conjoined_flag_args end
enable_bash3_bouncer()
click to toggle source
# File lib/bashly/settings.rb, line 67 def enable_bash3_bouncer @enable_bash3_bouncer ||= get :enable_bash3_bouncer end
enable_deps_array()
click to toggle source
# File lib/bashly/settings.rb, line 71 def enable_deps_array @enable_deps_array ||= get :enable_deps_array end
enable_env_var_names_array()
click to toggle 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
enable_header_comment()
click to toggle source
# File lib/bashly/settings.rb, line 79 def enable_header_comment @enable_header_comment ||= get :enable_header_comment end
enable_inspect_args()
click to toggle source
# File lib/bashly/settings.rb, line 83 def enable_inspect_args @enable_inspect_args ||= get :enable_inspect_args end
enable_sourcing()
click to toggle source
# File lib/bashly/settings.rb, line 87 def enable_sourcing @enable_sourcing ||= get :enable_sourcing end
enable_view_markers()
click to toggle source
# File lib/bashly/settings.rb, line 91 def enable_view_markers @enable_view_markers ||= get :enable_view_markers end
enabled?(feature)
click to toggle 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
env()
click to toggle source
# File lib/bashly/settings.rb, line 95 def env @env ||= get(:env)&.to_sym end
env=(value)
click to toggle source
# File lib/bashly/settings.rb, line 99 def env=(value) @env = value&.to_sym end
extra_lib_dirs()
click to toggle 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
formatter()
click to toggle source
# File lib/bashly/settings.rb, line 114 def formatter @formatter ||= get :formatter end
full_lib_dir()
click to toggle source
# File lib/bashly/settings.rb, line 118 def full_lib_dir "#{source_dir}/#{lib_dir}" end
function_name(key)
click to toggle source
# File lib/bashly/settings.rb, line 122 def function_name(key) function_names[key.to_s] || key.to_s end
function_names()
click to toggle source
# File lib/bashly/settings.rb, line 126 def function_names @function_names ||= get :function_names end
lib_dir()
click to toggle source
# File lib/bashly/settings.rb, line 130 def lib_dir @lib_dir ||= get :lib_dir end
partials_extension()
click to toggle source
# File lib/bashly/settings.rb, line 134 def partials_extension @partials_extension ||= get :partials_extension end
private_reveal_key()
click to toggle source
# File lib/bashly/settings.rb, line 138 def private_reveal_key @private_reveal_key ||= get :private_reveal_key end
production?()
click to toggle source
# File lib/bashly/settings.rb, line 142 def production? env == :production end
show_examples_on_error()
click to toggle source
# File lib/bashly/settings.rb, line 146 def show_examples_on_error @show_examples_on_error ||= get :show_examples_on_error end
source_dir()
click to toggle source
# File lib/bashly/settings.rb, line 150 def source_dir @source_dir ||= get :source_dir end
strict()
click to toggle source
# File lib/bashly/settings.rb, line 154 def strict @strict ||= get :strict end
strict_string()
click to toggle 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
tab_indent()
click to toggle source
# File lib/bashly/settings.rb, line 168 def tab_indent @tab_indent ||= get :tab_indent end
target_dir()
click to toggle source
# File lib/bashly/settings.rb, line 172 def target_dir @target_dir ||= get :target_dir end
usage_colors()
click to toggle source
# File lib/bashly/settings.rb, line 176 def usage_colors @usage_colors ||= get :usage_colors end
var_aliases()
click to toggle source
# File lib/bashly/settings.rb, line 180 def var_aliases @var_aliases ||= get :var_aliases end
watch_evented()
click to toggle source
# File lib/bashly/settings.rb, line 184 def watch_evented @watch_evented ||= get :watch_evented end
watch_latency()
click to toggle source
# File lib/bashly/settings.rb, line 188 def watch_latency @watch_latency ||= get :watch_latency end
word_wrap()
click to toggle source
# File lib/bashly/settings.rb, line 192 def word_wrap @word_wrap ||= get :word_wrap end
Private Class Methods
config()
click to toggle source
# File lib/bashly/settings.rb, line 222 def config @config ||= default_settings.merge user_settings end
default_settings()
click to toggle source
# File lib/bashly/settings.rb, line 240 def default_settings @default_settings ||= Config.new default_settings_path end
default_settings_path()
click to toggle source
# File lib/bashly/settings.rb, line 244 def default_settings_path asset 'libraries/settings/settings.yml' end
env_var_name(key)
click to toggle source
# File lib/bashly/settings.rb, line 202 def env_var_name(key) "BASHLY_#{key.upcase}" end
get(key)
click to toggle 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
user_settings()
click to toggle source
# File lib/bashly/settings.rb, line 226 def user_settings @user_settings ||= File.exist?(user_settings_path) ? Config.new(user_settings_path) : {} end
user_settings_path()
click to toggle 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
value_from_config(key)
click to toggle 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
value_from_env(key)
click to toggle 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