Sha256: 627c6ce70a92a7ac77efcd26887fc85c22ac535b3d20a55495002aeb292da83d

Contents?: true

Size: 687 Bytes

Versions: 2

Compression:

Stored size: 687 Bytes

Contents

module Lurker
  class SchemaModifier
    class Hash
      def initialize(json_schema_hash)
        @hash = json_schema_hash
      end

      def merge!(data)
        build_hash

        data.each do |name, value|
          unless @hash[name]
            @hash["properties"][name] ||= {}
            Lurker::SchemaModifier.merge!(@hash["properties"][name], value)
          end
        end
      end

      private

      def build_hash
        @hash["description"] ||= ""
        @hash["type"] ||= "object"
        @hash["additionalProperties"] = false if @hash["additionalProperties"].nil?
        @hash["required"] ||= []
        @hash["properties"] ||= {}
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lurker-0.6.2 lib/lurker/schema_modifier/hash.rb
lurker-0.6.1 lib/lurker/schema_modifier/hash.rb