class Nidyx::Property

Attributes

class_name[R]
collection_types[R]
description[R]
enum[R]
minimum[R]
name[R]
optional[R]
overriden_name[RW]
type[R]

Public Class Methods

new(name, class_name, optional, obj) click to toggle source
# File lib/nidyx/property.rb, line 16
def initialize(name, class_name, optional, obj)
  @name = name.camelize(false)
  @class_name = class_name
  @optional = optional
  @enum = obj[ENUM_KEY]
  @type = process_type(obj[TYPE_KEY], @enum)
  @description = obj[DESCRIPTION_KEY]
  @properties = obj[PROPERTIES_KEY]
  @collection_types = obj[COLLECTION_TYPES_KEY]
  @minimum = obj[MINIMUM_KEY]
end

Public Instance Methods

has_properties?() click to toggle source
# File lib/nidyx/property.rb, line 28
def has_properties?
  !!@properties
end

Private Instance Methods

process_type(type, enum) click to toggle source
# File lib/nidyx/property.rb, line 34
def process_type(type, enum)
  if enum
    raise NonArrayEnumError unless @enum.is_a?(Array)
    raise EmptyEnumError if @enum.empty?
    return
  end

  case type
  when Array
    raise UndefinedTypeError if type.empty?
    Set.new(type.map { |t| t.to_sym })
  when String
    type.to_sym
  else
    raise UndefinedTypeError
  end
end