Class: ApimaticCalculator::BaseModel
- Inherits:
-
Object
- Object
- ApimaticCalculator::BaseModel
- Defined in:
- lib/apimatic_calculator/models/base_model.rb
Overview
Base model.
Instance Method Summary collapse
-
#to_hash ⇒ Object
Returns a Hash representation of the current object.
-
#to_json(options = {}) ⇒ Object
Returns a JSON representation of the curent object.
Instance Method Details
#to_hash ⇒ Object
Returns a Hash representation of the current object.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/apimatic_calculator/models/base_model.rb', line 10 def to_hash hash = {} instance_variables.each do |name| value = instance_variable_get(name) name = name[1..-1] key = self.class.names.key?(name) ? self.class.names[name] : name optional_fields = optionals if respond_to? 'optionals' nullable_fields = nullables if respond_to? 'nullables' if value.nil? next unless nullable_fields.include?(name) if !optional_fields.include?(name) && !nullable_fields.include?(name) raise ArgumentError, "`#{name}` cannot be nil in `#{self.class}`. Please specify a valid value." end end hash[key] = nil unless value.nil? if respond_to?("to_#{name}") if (value.instance_of? Array) || (value.instance_of? Hash) params = [hash, key] hash[key] = send("to_#{name}", *params) else hash[key] = send("to_#{name}") end elsif value.instance_of? Array hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v } elsif value.instance_of? Hash hash[key] = {} value.each do |k, v| hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v end else hash[key] = value.is_a?(BaseModel) ? value.to_hash : value end end end hash end |
#to_json(options = {}) ⇒ Object
Returns a JSON representation of the curent object.
53 54 55 56 |
# File 'lib/apimatic_calculator/models/base_model.rb', line 53 def to_json( = {}) hash = to_hash hash.to_json() end |