Sha256: d458f457e71d6f989167ca046d90a2a0bd90dcaae2dcb3fd3eae199e99440bff
Contents?: true
Size: 966 Bytes
Versions: 24
Compression:
Stored size: 966 Bytes
Contents
module JSONAPIonify::Types class ArrayType < BaseType after_initialize do unless options[:of].is_a? BaseType raise TypeError, "#{options[:of]} is not a valid JSON type." end end def sample(field_name) field_name = field_name.to_s.singularize.to_sym 3.times.map do (options[:of] || StringType.new).sample(field_name) end end loader do |value| raise LoadError, 'invalid type' unless value.is_a?(Array) return super(value) unless options[:of] value.map do |item| options[:of].load(item) end end dumper do |value| raise DumpError, 'cannot convert value to array' unless value.respond_to?(:to_a) value.to_a.tap do |array| raise DumpError, 'output value was not an array' unless array.is_a? Array end return super(value) unless options[:of] value.map do |item| options[:of].dump(item) end end end end
Version data entries
24 entries across 24 versions & 1 rubygems