class Render::ArrayAttribute
Constants
- DEFAULT_NAME
- FAUX_DATA_UPPER_LIMIT
Attributes
max_items[RW]
min_items[RW]
simple[RW]
unique[RW]
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
# File lib/render/attributes/array_attribute.rb, line 13 def initialize(options = {}) super self.name = options.fetch(:title, DEFAULT_NAME).to_sym self.min_items = options[:minItems] || 0 self.max_items = options[:maxItems] self.unique = !!options[:uniqueItems] options = options.fetch(:items) process_options!(options) if options.keys.include?(:properties) self.schema = Schema.new(options) else self.simple = true end end
Public Instance Methods
serialize(explicit_values = nil)
click to toggle source
# File lib/render/attributes/array_attribute.rb, line 31 def serialize(explicit_values = nil) explicit_values = faux_array_data if (Render.live == false && explicit_values.nil?) values = if simple explicit_values.collect do |value| value = (value || default_value) Type.to(types, value) end else explicit_values.collect do |value| schema.serialize!(value) end end unique ? values.uniq : values end
Private Instance Methods
faux_array_data()
click to toggle source
# File lib/render/attributes/array_attribute.rb, line 49 def faux_array_data faux_max = max_items || FAUX_DATA_UPPER_LIMIT rand(min_items..faux_max).times.collect do simple ? nil : {} end end