class Jack::Settings

Public Class Methods

new(root=nil) click to toggle source
# File lib/jack/settings.rb, line 3
def initialize(root=nil)
  @root = root || '.'
end

Public Instance Methods

app_name_pattern() click to toggle source
# File lib/jack/settings.rb, line 42
def app_name_pattern
  conventions["app_name_pattern"]
end
conventions() click to toggle source
# File lib/jack/settings.rb, line 46
def conventions
  data["conventions"]
end
create() click to toggle source
# File lib/jack/settings.rb, line 38
def create
  data["create"]
end
create_flags() click to toggle source
# File lib/jack/settings.rb, line 34
def create_flags
  create.inject("") {|s,(k,v)| s << %{--#{k} "#{v}" } ; s }.strip
end
data() click to toggle source

The options from the files get merged with the following precedence:

current folder - The current folder’s jack/settings.yml values take the highest precedence. user - The user’s ~/.jack/settings.yml values take the second highest precedence. default - The default settings bundled with the tool takes the lowest precedence.

More info: jack-eb.com/docs/settings/

# File lib/jack/settings.rb, line 14
def data
  return @settings_yaml if @settings_yaml

  project_file = "#{@root}/jack/settings.yml"
  project = File.exist?(project_file) ? YAML.load_file(project_file) : {}

  user_file = "#{home}/.jack/settings.yml"
  user = File.exist?(user_file) ? YAML.load_file(user_file) : {}

  default_file = File.expand_path("../default/settings.yml", __FILE__)
  default = YAML.load_file(default_file)

  @settings_yaml = default.merge(user.merge(project))
end
home() click to toggle source
# File lib/jack/settings.rb, line 29
def home
  # hack but fast
  ENV['TEST'] ? "spec/fixtures/home" : ENV['HOME']
end