class Archruby::Architecture::ConfigDefinition

Constants

ALLOWED_CONSTRAINTS

Attributes

allowed_modules[R]
files[R]
forbidden_modules[R]
gems[R]
module_name[R]
required_modules[R]

Public Class Methods

new(module_name, definitions) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 10
def initialize(module_name, definitions)
  @module_name = module_name
  @files = parse_files(definitions['files'])
  @gems = parse_gems(definitions['gems'])
  parse_constraints(definitions)
end

Public Instance Methods

allowed_modules=(modules) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 44
def allowed_modules=(modules)
  @allowed_modules = modules
end
forbidden_modules=(modules) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 52
def forbidden_modules=(modules)
  @forbidden_modules = modules
end
normalize_string_spaces(array_of_strings) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 40
def normalize_string_spaces(array_of_strings)
  array_of_strings.map! {|element| element.strip }
end
parse_constraints(definitions) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 31
def parse_constraints(definitions)
  check_constraints(definitions)
  ALLOWED_CONSTRAINTS.each do |constraint|
    constraint_definition = definitions[constraint]
    constraint_definition = '' if constraint_definition.nil?
    send("#{constraint}_modules=", normalize_string_spaces(constraint_definition.split(',')))
  end
end
parse_files(files) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 17
def parse_files(files)
  files = '' if files.nil?
  files = files.split(',')
  normalize_string_spaces(files)
  files
end
parse_gems(gems) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 24
def parse_gems(gems)
  gems = '' if gems.nil?
  gems = gems.split(',')
  normalize_string_spaces(gems)
  gems
end
required_modules=(modules) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 48
def required_modules=(modules)
  @required_modules = modules
end

Private Instance Methods

check_constraints(definitions) click to toggle source
# File lib/archruby/architecture/config_definition.rb, line 58
def check_constraints(definitions)
  raise MultipleConstraints if definitions['allowed'] && !definitions['allowed'].empty? && definitions['forbidden'] && !definitions['forbidden'].empty?
end