Sha256: 4a37420a6774dd757b7fde2a5e0d755f1a576370095f37b03bc5d08085a5385f

Contents?: true

Size: 1 KB

Versions: 7

Compression:

Stored size: 1 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'fog'))
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'fog', 'bin'))

# TODO: Currently is true even if some of the keys in format do not appear
def validate_format(original_data, format)
  valid = true
  data = original_data.dup
  for key, value in format
    valid &&= data.has_key?(key)
    datum = data.delete(key)
    case value
    when Array
      valid &&= datum.is_a?(Array)
      for element in datum
        type = value.first
        if type.is_a?(Hash)
          valid &&= validate_format({:element => element}, {:element => type})
        else
          valid &&= element.is_a?(type)
        end
      end
    when Hash
      valid &&= datum.is_a?(Hash)
      valid &&= validate_format(datum, value)
    else
      valid &&= datum.is_a?(value)
    end
  end
  valid &&= data.empty?
  unless valid
    @formatador.display_line("[red]#{original_data.inspect} does not match #{format.inspect}[/]")
  end
  valid
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
fog-0.0.91 tests/helper.rb
fog-0.0.90 tests/helper.rb
fog-0.0.89 tests/helper.rb
fog-0.0.88 tests/helper.rb
fog-0.0.87 tests/helper.rb
fog-0.0.86 tests/helper.rb
fog-0.0.85 tests/helper.rb