Sha256: 1fdab04aa06d3b6373fcde9ba61d81e503dba5c8d9101c59a563ddf71aede521

Contents?: true

Size: 1.45 KB

Versions: 3

Compression:

Stored size: 1.45 KB

Contents

require 'pad_utils'
require 'fileutils'

module Qbuild
  module Config
    INIT_CONFIG_FILE = "#{File.dirname(__FILE__)}/../assets/.qbuild.json".freeze

    def self.create_target_directory(dir_name)
      FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name)
    end

    def self.init
      PadUtils.copy_file(INIT_CONFIG_FILE, '.')
    end

    def self.js_paths
      read_key(:js_paths)
    end

    def self.minified_js_path
      read_key(:minified_js_path)
    end

    def self.minified_stylesheets_path
      read_key(:minified_stylesheets_path)
    end

    def self.stylesheet_filenames
      read_key(:stylesheet_filenames)
    end

    def self.stylesheet_name
      read_key(:stylesheet_name)
    end

    def self.pre_build
      read_key(:pre_build, true)
    end

    def self.post_build
      read_key(:post_build, true)
    end

    private

    def self.read_key(key, optional = false)
      blow_up unless PadUtils.file_exist?('.qbuild.json')
      config = PadUtils.json_file_to_hash('.qbuild.json')
      if !optional && config[key].nil?
        blow_up(key)
      else
        config[key]
      end
    end

    def self.blow_up(key = nil)
      error_message = ''
      if key.nil?
        error_message = "Config file '.qbuild.json' not found. Run 'qbuild --init'."
      else
        error_message = "The key '#{key}' was not found in '.qbuild.json'. Aborting build."
      end
      PadUtils.puts_c error_message, :red
      exit
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
qbuild-0.1.3 lib/qbuild/config.rb
qbuild-0.1.2 lib/qbuild/config.rb
qbuild-0.1.0 lib/qbuild/config.rb