Sha256: 40630116b3b64acd21d7982eafaf06997062279a50b649209264a08ea72c1b37
Contents?: true
Size: 1.17 KB
Versions: 1
Compression:
Stored size: 1.17 KB
Contents
module SyncFiles module Config class Validation class Invalid < Exception; end def initialize(config:) @config = config end def valid? validate! true rescue SyncFiles::Config::Validation::Invalid => e puts e.message false end def validate! raise Invalid.new("ERROR: No config file found. Please create one of the following files: #{CONFIG_FILENAMES.join(", ")}") unless @config raise Invalid.new("ERROR: No groups specified in the config file.") unless validate_groups raise Invalid.new("ERROR: No files specified in the config file.") unless validate_fixtures raise Invalid.new("ERROR: No destination specified in the config file.") unless validate_settings end def validate_settings groups.all? { |group| !group["settings"].nil? && !group["settings"]["destination"].nil? } end def validate_fixtures groups.all? { |group| !group["fixtures"].nil? && !group["fixtures"].empty? } end def validate_groups !(@config["groups"].nil?) end def groups @config["groups"] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sync_files-0.2.0 | lib/sync_files/config/validation.rb |