Sha256: d48e6e947dd88dc8447a012bace34a235e9f6d603de2736f8cfc40ccf75be02a

Contents?: true

Size: 967 Bytes

Versions: 2

Compression:

Stored size: 967 Bytes

Contents

module Jack
  class Settings
    def initialize(root=nil)
      @root = root || '.'
    end

    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

    def home
      # hack but fast
      ENV['TEST'] ? "spec/fixtures/home" : ENV['HOME']
    end

    def create_flags
      create.inject("") {|s,(k,v)| s << %{--#{k} "#{v}" } ; s }.strip
    end

    def create
      data["create"]
    end

    def app_name_pattern
      conventions["app_name_pattern"]
    end

    def conventions
      data["conventions"]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jack-eb-1.4.1 lib/jack/settings.rb
jack-eb-1.4.0 lib/jack/settings.rb