class Bashly::Settings

Attributes

commands_dir[W]
compact_short_flags[W]
config_path[W]
lib_dir[W]
partials_extension[W]
source_dir[W]
strict[W]
tab_indent[W]
target_dir[W]
usage_colors[W]

Public Class Methods

commands_dir() click to toggle source
# File lib/bashly/settings.rb, line 19
def commands_dir
  @commands_dir ||= get :commands_dir
end
compact_short_flags() click to toggle source
# File lib/bashly/settings.rb, line 23
def compact_short_flags
  @compact_short_flags ||= get :compact_short_flags
end
config_path() click to toggle source
# File lib/bashly/settings.rb, line 27
def config_path
  @config_path ||= get(:config_path) % { source_dir: source_dir }
end
env() click to toggle source
# File lib/bashly/settings.rb, line 31
def env
  @env ||= get(:env)&.to_sym
end
env=(value) click to toggle source
# File lib/bashly/settings.rb, line 35
def env=(value)
  @env = value&.to_sym
end
full_lib_dir() click to toggle source
# File lib/bashly/settings.rb, line 39
def full_lib_dir
  "#{source_dir}/#{lib_dir}"
end
lib_dir() click to toggle source
# File lib/bashly/settings.rb, line 43
def lib_dir
  @lib_dir ||= get :lib_dir
end
partials_extension() click to toggle source
# File lib/bashly/settings.rb, line 47
def partials_extension
  @partials_extension ||= get :partials_extension
end
production?() click to toggle source
# File lib/bashly/settings.rb, line 51
def production?
  env == :production
end
source_dir() click to toggle source
# File lib/bashly/settings.rb, line 55
def source_dir
  @source_dir ||= get :source_dir
end
strict() click to toggle source
# File lib/bashly/settings.rb, line 59
def strict
  @strict ||= get :strict
end
strict_string() click to toggle source
# File lib/bashly/settings.rb, line 63
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 73
def tab_indent
  @tab_indent ||= get :tab_indent
end
target_dir() click to toggle source
# File lib/bashly/settings.rb, line 77
def target_dir
  @target_dir ||= get :target_dir
end
usage_colors() click to toggle source
# File lib/bashly/settings.rb, line 81
def usage_colors
  @usage_colors ||= get :usage_colors
end

Private Class Methods

config() click to toggle source
# File lib/bashly/settings.rb, line 100
def config
  @config ||= defsult_settings.merge user_settings
end
default_settings_path() click to toggle source
# File lib/bashly/settings.rb, line 122
def default_settings_path
  asset 'libraries/settings/settings.yml'
end
defsult_settings() click to toggle source
# File lib/bashly/settings.rb, line 118
def defsult_settings
  @defsult_settings ||= Config.new default_settings_path
end
env_value(key) click to toggle source
# File lib/bashly/settings.rb, line 96
def env_value(key)
  ENV["BASHLY_#{key.upcase}"]
end
get(key) click to toggle source
# File lib/bashly/settings.rb, line 87
def get(key)
  case env_value key
  when nil                 then config[key.to_s]
  when '0', 'false', 'no'  then false
  when '1', 'true', 'yes'  then true
  else                     env_value key
  end
end
user_settings() click to toggle source
# File lib/bashly/settings.rb, line 104
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 108
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