class Poisol::StubFactory

Public Instance Methods

build(folder) click to toggle source
# File lib/poisol/stub_factory.rb, line 3
def build folder
  @folder = folder.chomp '/'
  @configs = []
  load_domain
  load_stub_configs
  return @configs
end

Private Instance Methods

create_class(class_name,stub_config) click to toggle source
# File lib/poisol/stub_factory.rb, line 44
def create_class class_name,stub_config
  dynamic_stub_class = Object.const_set class_name,Class.new(StubBuilder)
  dynamic_stub_class.set_stub_config stub_config
  dynamic_stub_class.generate_methods_to_alter_sutb
  PoisolLog.info "Generated #{class_name}"
  PoisolLog.debug "with methods #{dynamic_stub_class.instance_methods - Object.methods}"
  @configs << dynamic_stub_class
end
generate_exploded_config(explolded_configs) click to toggle source
# File lib/poisol/stub_factory.rb, line 26
def generate_exploded_config explolded_configs
  explolded_configs.each do |config_file|
    PoisolLog.info "Processing #{config_file}"
    dynamic_name = (FileName.get_dir_name config_file).camelize
    config = StubConfigBuilder.new.is_exploded.with_file(config_file).with_domain(@domain.full_url).build
    create_class dynamic_name,config
  end
end
generate_inline_config(inline_configs) click to toggle source
# File lib/poisol/stub_factory.rb, line 35
def generate_inline_config inline_configs
  inline_configs.each do |config_file|
    PoisolLog.debug "Processing #{config_file}"
    dynamic_name = (FileName.get_file_name config_file).camelize
    stub_config = StubConfigBuilder.new.is_inline.with_file(config_file).with_domain(@domain.full_url).build
    create_class dynamic_name,stub_config
  end
end
load_domain() click to toggle source
# File lib/poisol/stub_factory.rb, line 13
def load_domain
  domain_config_file = Dir["#{@folder}/domain.yml"].first
  @domain = Domain.new domain_config_file
end
load_stub_configs() click to toggle source
# File lib/poisol/stub_factory.rb, line 18
def load_stub_configs
  explolded_configs =  Dir["#{@folder}/**/config.yml"]
  inline_configs = Dir["#{@folder}/**/*.yml"] - ( (explolded_configs.nil?) ?  [] : explolded_configs) - [@domain.file]
  generate_exploded_config explolded_configs unless explolded_configs.nil?
  generate_inline_config inline_configs unless inline_configs.nil?
end