class Swagger::Api::ComponentSchema
Attributes
controller[RW]
Public Instance Methods
create()
click to toggle source
# File lib/swagger/api/component_schema.rb, line 8 def create { required: required, properties: properties, type: 'object' } end
Private Instance Methods
clean_required_attributes()
click to toggle source
# File lib/swagger/api/component_schema.rb, line 23 def clean_required_attributes required_attributes.map do |attribute| if model.reflect_on_all_associations(:belongs_to).map(&:name).map(&:to_s).include?(attribute) "#{attribute}_id" else attribute end end.compact.uniq.map(&:to_s) end
model()
click to toggle source
# File lib/swagger/api/component_schema.rb, line 47 def model controller.model.constantize end
properties()
click to toggle source
# File lib/swagger/api/component_schema.rb, line 39 def properties properties = {} columns.each do |column| properties[column.name] = ColumnSchema.new(column: column).create end properties end
required()
click to toggle source
# File lib/swagger/api/component_schema.rb, line 18 def required controller.try(:columns).try(:required) || columns.map(&:name) & clean_required_attributes end
required_attributes()
click to toggle source
# File lib/swagger/api/component_schema.rb, line 33 def required_attributes model.validators.map do |validator| validator.attributes if validator.is_a?(ActiveRecord::Validations::PresenceValidator) end.compact.flatten.uniq.map(&:to_s) end