lib/fitting/configuration.rb in fitting-2.2.0 vs lib/fitting/configuration.rb in fitting-2.3.0

- old
+ new

@@ -1,17 +1,47 @@ +require 'fitting/configuration/yaml' +require 'fitting/configuration/legacy' +require 'yaml' + module Fitting class Configuration - attr_accessor :apib_path, - :drafter_yaml_path, - :strict, - :prefix, - :white_list, - :resource_white_list, - :ignore_list + class << self + def craft + if one_yaml? + one_yaml + elsif more_than_one_yaml? + more_than_one_yaml + else + legacy + end + end - def initialize - @strict = false - @prefix = '' - @ignore_list = [] + def one_yaml? + File.file?('.fitting.yml') + end + + def more_than_one_yaml? + !Dir['fitting/*.yml'].empty? + end + + def one_yaml + yaml = YAML.safe_load(File.read('.fitting.yml')) + Fitting::Configuration::Yaml.new(yaml) + end + + def more_than_one_yaml + files.map do |file| + yaml = YAML.safe_load(File.read(file)) + Fitting::Configuration::Yaml.new(yaml, file[8..-5]) + end + end + + def legacy + Fitting::Configuration::Legacy.new + end + + def files + Dir['fitting/*.yml'] + end end end end