Module: Zensana::Validate::Key
- Included in:
- Zendesk::Comment, Zendesk::Ticket, Zendesk::User
- Defined in:
- lib/zensana/validate/key.rb
Instance Method Summary collapse
- #has_required_keys?(hash) ⇒ Boolean
- #has_unknown_keys?(hash) ⇒ Boolean
- #optional_keys ⇒ Object
- #required_keys ⇒ Object
- #valid_keys ⇒ Object
- #validate_keys(hash) ⇒ Object
Instance Method Details
#has_required_keys?(hash) ⇒ Boolean
13 14 15 |
# File 'lib/zensana/validate/key.rb', line 13 def has_required_keys?(hash) required_keys.all? { |k| hash.key? k } end |
#has_unknown_keys?(hash) ⇒ Boolean
17 18 19 |
# File 'lib/zensana/validate/key.rb', line 17 def has_unknown_keys?(hash) ! (hash.keys - valid_keys).empty? end |
#optional_keys ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/zensana/validate/key.rb', line 34 def optional_keys @optional_keys ||= begin const = "#{self.class}::OPTIONAL_KEYS" Object.const_get const rescue NameError raise UndefinedKeys, "You must define #{const}" end end |
#required_keys ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/zensana/validate/key.rb', line 25 def required_keys @required_keys ||= begin const = "#{self.class}::REQUIRED_KEYS" Object.const_get const rescue NameError raise UndefinedKeys, "You must define #{const}" end end |
#valid_keys ⇒ Object
21 22 23 |
# File 'lib/zensana/validate/key.rb', line 21 def valid_keys @valid_keys ||= required_keys + optional_keys end |
#validate_keys(hash) ⇒ Object
8 9 10 11 |
# File 'lib/zensana/validate/key.rb', line 8 def validate_keys(hash) raise MissingKey, "Mandatory keys are: #{required_keys}" unless has_required_keys?(hash) raise UnknownKey, "Valid keys are: #{valid_keys}" if has_unknown_keys?(hash) end |