Class: GoaModelGen::Type

Inherits:
Object
  • Object
show all
Defined in:
lib/goa_model_gen/type.rb

Direct Known Subclasses

Model, SwaggerDef

Constant Summary collapse

TIME_TYPE_PATTERN =
/\Atime\./

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, attrs) ⇒ Type

Returns a new instance of Type.



7
8
9
10
# File 'lib/goa_model_gen/type.rb', line 7

def initialize(name, attrs)
  @name = name
  @fields = []
end

Instance Attribute Details

#fieldsObject (readonly)

Returns the value of attribute fields.



5
6
7
# File 'lib/goa_model_gen/type.rb', line 5

def fields
  @fields
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/goa_model_gen/type.rb', line 5

def name
  @name
end

Instance Method Details

#assign_field_type_base(types) ⇒ Object



16
17
18
# File 'lib/goa_model_gen/type.rb', line 16

def assign_field_type_base(types)
  self.fields.each{|f| f.assign_type_base(types) }
end

#field_diffs(names) ⇒ Object



12
13
14
# File 'lib/goa_model_gen/type.rb', line 12

def field_diffs(names)
  self.fields.reject{|f| names.include?(f.name) }
end

#field_type_packagesObject



29
30
31
# File 'lib/goa_model_gen/type.rb', line 29

def field_type_packages
  fields.map(&:type_package).compact.uniq.sort
end

#has_time_field?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/goa_model_gen/type.rb', line 25

def has_time_field?
  fields.any?{|f| f.type =~ TIME_TYPE_PATTERN}
end

#use_uuid?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/goa_model_gen/type.rb', line 20

def use_uuid?
  false
end