Module: BitBucket::Validations::Required

Included in:
BitBucket::Validations
Defined in:
lib/bitbucket_rest_api/validations/required.rb

Instance Method Summary collapse

Instance Method Details

#assert_required_keys(required, provided) ⇒ Object

Validate all keys present in a provided hash against required set, on mismatch raise BitBucket::Error::RequiredParams Note that keys need to be in the same format i.e. symbols or strings, otherwise the comparison will fail.



12
13
14
15
16
17
18
19
20
# File 'lib/bitbucket_rest_api/validations/required.rb', line 12

def assert_required_keys(required, provided)
  result = required.all? do |key|
    provided.has_deep_key? key
  end
  if !result
    raise BitBucket::Error::RequiredParams.new(provided, required)
  end
  result
end

#assert_required_values_present(params, *required) ⇒ Object

Validate that required values are not blank the *required are colon separated strings e.g. ‘source:branch:name’ tests value of params[:branch]



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/bitbucket_rest_api/validations/required.rb', line 26

def assert_required_values_present(params, *required)
  required.each do |encoded_string|
    keys = parse_values(encoded_string)
    value = keys.inject(params) { |params, key| params[key] }
    if value.is_a?(String)
      if value.empty?
        raise BitBucket::Error::BlankValue.new(encoded_string)
      end
    end
  end
end

#parse_values(string) ⇒ Object



38
39
40
# File 'lib/bitbucket_rest_api/validations/required.rb', line 38

def parse_values(string)
  string.split(':')
end