Module: Crabfarm::Assertion::Fields::ClassMethods

Defined in:
lib/crabfarm/assertion/fields.rb

Instance Method Summary collapse

Instance Method Details

#field_defaultsObject



59
60
61
# File 'lib/crabfarm/assertion/fields.rb', line 59

def field_defaults
  @field_defaults ||= {}
end

#fieldsObject



55
56
57
# File 'lib/crabfarm/assertion/fields.rb', line 55

def fields
  @fields ||= []
end

#has_array(_name) ⇒ Object



31
32
33
# File 'lib/crabfarm/assertion/fields.rb', line 31

def has_array(_name)
  has_field(_name, field_default: [], field_readonly: true)
end

#has_asserted_field(_name, _assertion, _options = {}) ⇒ Object



27
28
29
# File 'lib/crabfarm/assertion/fields.rb', line 27

def has_asserted_field(_name, _assertion, _options={})
  has_field(_name, _options.merge(field_assertion: _assertion))
end

#has_boolean(_name, _options = {}) ⇒ Object



51
52
53
# File 'lib/crabfarm/assertion/fields.rb', line 51

def has_boolean(_name, _options={})
  has_asserted_field _name, :is_boolean, _options
end

#has_field(_name, _options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/crabfarm/assertion/fields.rb', line 11

def has_field(_name, _options={})
  name = _name.to_sym

  fields << name
  field_defaults[name] = _options.delete :field_default

  assertion = _options.delete :field_assertion
  if assertion
    define_method("#{name}=") { |v| field_hash[name] = assert(v).send(assertion, _options) }
  elsif not _options[:field_readonly]
    define_method("#{name}=") { |v| field_hash[name] = v }
  end

  define_method(name) { field_hash[name] }
end

#has_float(_name, _options = {}) ⇒ Object



39
40
41
# File 'lib/crabfarm/assertion/fields.rb', line 39

def has_float(_name, _options={})
  has_asserted_field _name, :is_float, _options
end

#has_integer(_name, _options = {}) ⇒ Object



35
36
37
# File 'lib/crabfarm/assertion/fields.rb', line 35

def has_integer(_name, _options={})
  has_asserted_field _name, :is_integer, _options
end

#has_string(_name, _options = {}) ⇒ Object



43
44
45
# File 'lib/crabfarm/assertion/fields.rb', line 43

def has_string(_name, _options={})
  has_asserted_field _name, :is_string, _options
end

#has_word(_name, _options = {}) ⇒ Object



47
48
49
# File 'lib/crabfarm/assertion/fields.rb', line 47

def has_word(_name, _options={})
  has_asserted_field _name, :is_word, _options
end