class Muwu::ProjectOptionsReader

Attributes

options_from_file[RW]
options_validated[RW]
project_options[RW]

Public Class Methods

build() { |builder| ... } click to toggle source
# File lib/muwu/project_options_builder/project_options_reader.rb, line 18
def self.build
  builder = new
  yield(builder)
  builder.project_options
end
new() click to toggle source
# File lib/muwu/project_options_builder/project_options_reader.rb, line 25
def initialize
  @options_from_file = {}
  @options_validated = {}
  @project_options = ProjectOptions.new
end

Public Instance Methods

build_from_ymlfile(project) click to toggle source
# File lib/muwu/project_options_builder/project_options_reader.rb, line 36
def build_from_ymlfile(project)
  @project = project
  phase_1_read_options_file
  phase_2_validate_options_file
  phase_3_set_project_options
end
phase_1_read_options_file() click to toggle source
# File lib/muwu/project_options_builder/project_options_reader.rb, line 44
def phase_1_read_options_file
  if ProjectValidator.new(@project).validate_file_options
    @options_from_file = YAML.load_file(@project.options_filename)
  end
end
phase_2_validate_options_file() click to toggle source
# File lib/muwu/project_options_builder/project_options_reader.rb, line 51
def phase_2_validate_options_file
  @options_validated = validate_options(@options_from_file)
end
phase_3_set_project_options() click to toggle source
# File lib/muwu/project_options_builder/project_options_reader.rb, line 56
def phase_3_set_project_options
  @options_validated.each_pair do |key, value|
    @project_options.set_option(key, value)
  end
end

Private Instance Methods

validate_options(options) click to toggle source
# File lib/muwu/project_options_builder/project_options_reader.rb, line 67
def validate_options(options)
  result = {}
  options.each_pair do |key, value|
    valid_option = ProjectOptionValidator.new_if_valid_key(key, value, @project)
    if valid_option
      result[valid_option.key] = valid_option.value
    end
  end
  result.reject { |k,v| (v == nil) || (v == '') }
end