openapi_parser 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +4 -3
- data/CHANGELOG.md +5 -0
- data/lib/openapi_parser.rb +16 -4
- data/lib/openapi_parser/concerns/findable.rb +3 -0
- data/lib/openapi_parser/schema_validators/base.rb +1 -1
- data/lib/openapi_parser/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c94d0bbb5e44314e9cde71c23587355496214b1fdf6ca2e3bf43f404087b6220
         | 
| 4 | 
            +
              data.tar.gz: be8205b97559da91e85613df31c2ac0e060116046532e4285eb01127c0303eae
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a844336ca5d80573478d7e35d6978881c8d0581e2757584e227781c5b523e1f181f5403c4efb4047df3a9c519043ab0513bbaf5df83acff12d54f0d2c19874a2
         | 
| 7 | 
            +
              data.tar.gz: 406ad0fc2ad51af48b56ba1bf2ace1cac8b920adb85615e160e901aacbacf58c94a02cf4c737cf0601a6bab120bc2c51b3d7cd3f9da0295138edbc63bf7cf8ae
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,10 @@ | |
| 1 1 | 
             
            ## Unreleased
         | 
| 2 2 |  | 
| 3 | 
            +
            ## 0.11.0 (2020-05-09)
         | 
| 4 | 
            +
            * Add committee friendly interface to use remote references. #74
         | 
| 5 | 
            +
            * Prevent SystemStackError on recursive schema reference #76
         | 
| 6 | 
            +
            * support newest ruby versions #78
         | 
| 7 | 
            +
             | 
| 3 8 | 
             
            ## 0.10.0 (2020-04-01)
         | 
| 4 9 | 
             
            * Support $ref to objects in other OpenAPI yaml files #66
         | 
| 5 10 | 
             
            * Allow $ref for path item objects #71
         | 
    
        data/lib/openapi_parser.rb
    CHANGED
    
    | @@ -18,18 +18,24 @@ require 'openapi_parser/reference_expander' | |
| 18 18 |  | 
| 19 19 | 
             
            module OpenAPIParser
         | 
| 20 20 | 
             
              class << self
         | 
| 21 | 
            -
                # Load schema  | 
| 21 | 
            +
                # Load schema hash object. Uri is not set for returned schema.
         | 
| 22 22 | 
             
                # @return [OpenAPIParser::Schemas::OpenAPI]
         | 
| 23 23 | 
             
                def parse(schema, config = {})
         | 
| 24 24 | 
             
                  load_hash(schema, config: Config.new(config), uri: nil, schema_registry: {})
         | 
| 25 25 | 
             
                end
         | 
| 26 26 |  | 
| 27 | 
            +
                # @param filepath [String] Path of the file containing the passed schema.
         | 
| 28 | 
            +
                #   Used for resolving remote $ref if provided.
         | 
| 29 | 
            +
                #   If file path is relative, it is resolved using working directory.
         | 
| 30 | 
            +
                # @return [OpenAPIParser::Schemas::OpenAPI]
         | 
| 31 | 
            +
                def parse_with_filepath(schema, filepath, config = {})
         | 
| 32 | 
            +
                  load_hash(schema, config: Config.new(config), uri: filepath && file_uri(filepath), schema_registry: {})
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 27 35 | 
             
                # Load schema in specified filepath. If file path is relative, it is resolved using working directory.
         | 
| 28 36 | 
             
                # @return [OpenAPIParser::Schemas::OpenAPI]
         | 
| 29 37 | 
             
                def load(filepath, config = {})
         | 
| 30 | 
            -
                   | 
| 31 | 
            -
                  path = Pathname.getwd + path if path.relative?
         | 
| 32 | 
            -
                  load_uri(URI.join("file:///",  path.to_s), config: Config.new(config), schema_registry: {})
         | 
| 38 | 
            +
                  load_uri(file_uri(filepath), config: Config.new(config), schema_registry: {})
         | 
| 33 39 | 
             
                end
         | 
| 34 40 |  | 
| 35 41 | 
             
                # Load schema located by the passed uri. Uri must be absolute.
         | 
| @@ -49,6 +55,12 @@ module OpenAPIParser | |
| 49 55 |  | 
| 50 56 | 
             
                private
         | 
| 51 57 |  | 
| 58 | 
            +
                  def file_uri(filepath)
         | 
| 59 | 
            +
                    path = Pathname.new(filepath)
         | 
| 60 | 
            +
                    path = Pathname.getwd + path if path.relative?
         | 
| 61 | 
            +
                    URI.join("file:///",  path.to_s)
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
             | 
| 52 64 | 
             
                  def parse_file(content, extension)
         | 
| 53 65 | 
             
                    case extension.downcase
         | 
| 54 66 | 
             
                    when '.yaml', '.yml'
         | 
| @@ -34,7 +34,7 @@ class OpenAPIParser::SchemaValidator | |
| 34 34 | 
             
                  unless resolved_schema
         | 
| 35 35 | 
             
                    return [nil, OpenAPIParser::NotExistDiscriminatorMappedSchema.new(mapping_target, discriminator.object_reference)]
         | 
| 36 36 | 
             
                  end
         | 
| 37 | 
            -
                  validatable.validate_schema(value, resolved_schema, {discriminator_property_name: discriminator.property_name})
         | 
| 37 | 
            +
                  validatable.validate_schema(value, resolved_schema, **{discriminator_property_name: discriminator.property_name})
         | 
| 38 38 | 
             
                end
         | 
| 39 39 | 
             
              end
         | 
| 40 40 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: openapi_parser
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.11.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - ota42y
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020- | 
| 11 | 
            +
            date: 2020-05-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 222 222 | 
             
                - !ruby/object:Gem::Version
         | 
| 223 223 | 
             
                  version: '0'
         | 
| 224 224 | 
             
            requirements: []
         | 
| 225 | 
            -
            rubygems_version: 3. | 
| 225 | 
            +
            rubygems_version: 3.1.2
         | 
| 226 226 | 
             
            signing_key: 
         | 
| 227 227 | 
             
            specification_version: 4
         | 
| 228 228 | 
             
            summary: OpenAPI3 parser
         |