module MTBuild::Utils

Public Class Methods

ensure_array(input) click to toggle source
# File lib/mtbuild/utils.rb, line 34
def self.ensure_array(input)
  input = [input] unless input.respond_to?(:to_ary)
  return input
end
expand_file_list(included_files, excluded_files, base_folder=nil) click to toggle source
# File lib/mtbuild/utils.rb, line 17
def self.expand_file_list(included_files, excluded_files, base_folder=nil)
  file_list = FileList.new()

  included_files = Utils.ensure_array(included_files).flatten.collect{|s| (base_folder and (Pathname.new s).relative?) ? File.join(base_folder, s) : s}
  file_list.include(included_files)

  excluded_files = Utils.ensure_array(excluded_files).flatten.collect{|e| (base_folder and (Pathname.new e).relative?) ? File.join(base_folder, e) : e}
  file_list.exclude(*excluded_files)

  return file_list.to_ary.collect{|f| File.expand_path(f)}
end
expand_folder_list(included_folders, base_folder=nil) click to toggle source
# File lib/mtbuild/utils.rb, line 29
def self.expand_folder_list(included_folders, base_folder=nil)
  included_folders = Utils.ensure_array(included_folders).flatten.collect{|f| (base_folder and (Pathname.new f).relative?) ? File.join(base_folder, f) : f}
  return Dir.glob(included_folders).to_ary.reject{|f| !File.directory?f}.collect{|f| File.expand_path(f)}
end
merge_configurations(default, override) click to toggle source
# File lib/mtbuild/utils.rb, line 39
def self.merge_configurations(default, override)
  return default.merge(override) { |key, old_value, new_value|
    if old_value.is_a? Hash and new_value.is_a? Hash then merge_configurations(old_value, new_value)
    elsif old_value.is_a? Array and new_value.is_a? Array then old_value | new_value
    else new_value end }
end
path_difference(root, subdir) click to toggle source
# File lib/mtbuild/utils.rb, line 7
def self.path_difference(root, subdir)
  root_path = Pathname.new(root)
  subdir_path = Pathname.new(subdir)
  difference_path = subdir_path.relative_path_from(root_path)
  difference = difference_path.to_path
  return nil if difference.include? '..'
  return '' if difference.eql? '.'
  return difference
end