Module: JsonSchematize::Introspect::InstanceMethods

Included in:
Generator
Defined in:
lib/json_schematize/introspect_instance_methods.rb

Instance Method Summary collapse

Instance Method Details

#deep_inspect(with_raw_params: false, with_field: false) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/json_schematize/introspect_instance_methods.rb', line 21

def deep_inspect(with_raw_params: false, with_field: false)
  self.class.fields.map do |field|
    value = {
      required: field.required,
      acceptable_types: field.acceptable_types,
      value: instance_variable_get(:"@#{field.name}"),
    }
    value[:field] = field if with_field
    value[:raw_params] = @__raw_params if with_raw_params
    [field.name, value]
  end.to_h
end

#inspectObject



34
35
36
37
# File 'lib/json_schematize/introspect_instance_methods.rb', line 34

def inspect
  stringify = to_h.map { |k, v| "#{k}:#{v}" }.join(", ")
  "#<#{self.class} - required fields: #{self.class.required_fields.map(&:name)}; #{stringify}>"
end

#to_hObject Also known as: to_hash



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/json_schematize/introspect_instance_methods.rb', line 5

def to_h
  self.class.fields.map do |field|
    value = method(:"#{field.name}").()
    if field.array_of_types
      [field.name, value.map(&:to_h)]
    elsif value.class == Class
      [field.name, value.to_s]
    elsif JsonSchematize::Generator > value.class
      [field.name, value.to_h]
    else
      [field.name, value]
    end
  end.to_h
end