Class: Respect::HashDef

Inherits:
GlobalDef show all
Defined in:
lib/respect/hash_def.rb

Instance Method Summary (collapse)

Methods inherited from GlobalDef

#accept_name?, accept_name?, core_contexts, eval, #eval, include_core_statements

Constructor Details

- (HashDef) initialize(options = {})

A new instance of HashDef



5
6
7
# File 'lib/respect/hash_def.rb', line 5

def initialize(options = {})
  @hash_schema = HashSchema.new(options)
end

Instance Method Details

- (Object) []=(key, value)

Shortcut to say a schema key must be equal to a given value. When it does not recognize the value type it creates a "any" schema.

Example:

HashSchema.define do |s|
  s["a_string"] = "value"       # equivalent to: s.string("a_string", equal_to: "value")
  s["a_key"] = 0..5             # equivalent to: s.any("a_key", equal_to: "0..5")
end


21
22
23
24
25
26
27
28
# File 'lib/respect/hash_def.rb', line 21

def []=(key, value)
  case value
  when String
    string(key, equal_to: value.to_s)
  else
    any(key, equal_to: value.to_s)
  end
end

- (Object) extra(&block)



9
10
11
# File 'lib/respect/hash_def.rb', line 9

def extra(&block)
  with_options(required: false, &block)
end