Sha256: 52ce36bdbd63b98db2a6be85953158ad2beeb8327b77e36e00822643eaffd036

Contents?: true

Size: 1.02 KB

Versions: 13

Compression:

Stored size: 1.02 KB

Contents

require "json/schema/serializer"
require_relative "../util"

module Swagger
  class Schema
    class Parameters < Array
      class Deserializer
        def initialize(parameters, options = {})
          @parameters = parameters
          @options = options
        end

        def data(data)
          DataDeserializer.new(@parameters, data, @options)
        end

        class DataDeserializer
          def initialize(parameters, data, options)
            @parameters = parameters
            @data = data
            @options = options
          end

          def deserialize
            JSON::Schema::Serializer.new(@parameters.to_json_schema, @options).serialize(@data)
          end

          def [](name)
            parameter = @parameters.by_name(name)
            value = Util.try_hash(data, name)
            return nil if value.nil? && !parameter.required && !parameter.path?

            JSON::Schema::Serializer.new(parameter.to_json_schema, @options).serialize(value)
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
swagger-serializer-0.9.1 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.9.0 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.8.3 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.8.2 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.8.1 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.8.0 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.7.0 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.6.2 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.6.1 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.6.0 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.5.2 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.5.1 lib/swagger/schema/parameters/deserializer.rb
swagger-serializer-0.5.0 lib/swagger/schema/parameters/deserializer.rb