module Cloudflair::Entity::ClassMethods
Public Class Methods
extended(other_klass)
click to toggle source
# File lib/cloudflair/entity.rb, line 14 def self.extended(other_klass) @other_klass = other_klass end
Public Instance Methods
array_object_fields(*fields_to_class_map)
click to toggle source
allowed values: array_object_fields :field_a, :field_b, :field_c, 'fieldname_as_string' # next is ame as previous array_object_fields field_a: nil, field_b: nil, field_c: nil, 'fieldname_as_string': nil # next defines the types of the objects array_object_fields field_a: Klass, field_b: proc { |data| Klass.new data }, field_c: nil, 'fieldname_as_string'
# File lib/cloudflair/entity.rb, line 64 def array_object_fields(*fields_to_class_map) return @array_object_fields if @array_object_fields if fields_to_class_map.nil? || fields_to_class_map.empty? @array_object_fields = {} else fields_map = turn_all_items_into_a_single_hash(fields_to_class_map) @array_object_fields = fields_map end end
deletable(deletable = false)
click to toggle source
# File lib/cloudflair/entity.rb, line 31 def deletable(deletable = false) return @deletable unless @deletable.nil? @deletable = deletable end
object_fields(*fields)
click to toggle source
# File lib/cloudflair/entity.rb, line 45 def object_fields(*fields) return @object_fields if @object_fields @object_fields = if fields.nil? || fields.empty? [] else fields.map(&:to_s) end end
patchable_fields(*fields)
click to toggle source
# File lib/cloudflair/entity.rb, line 18 def patchable_fields(*fields) return @patchable_fields if @patchable_fields @patchable_fields = if fields.nil? [] elsif fields.is_a?(Array) fields.map(&:to_s) else [fields.to_s] end end
path(path = nil)
click to toggle source
# File lib/cloudflair/entity.rb, line 37 def path(path = nil) return @path if @path raise ArgumentError, 'path is not defined' if path.nil? @path = path end
turn_all_items_into_a_single_hash(fields_to_class_map)
click to toggle source
# File lib/cloudflair/entity.rb, line 75 def turn_all_items_into_a_single_hash(fields_to_class_map) {}.tap do |fields_map| fields_to_class_map.each do |field_definition| if field_definition.is_a?(Hash) fields_to_class_map[0].each do |field, klass_or_proc| fields_map[field.to_s] = klass_or_proc end else fields_map[field_definition.to_s] = nil end end end end