adiwg-json_schemas 0.7.0 → 0.8.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 +0 -1
- data/adiwg-json_schemas.gemspec +1 -1
- data/examples/full_example.json +40 -3
- data/examples/full_example2.json +46 -2
- data/examples/lcc_project_example.json +5 -2
- data/lib/adiwg/json_schemas/validator.rb +42 -0
- data/lib/adiwg/json_schemas/version.rb +1 -1
- data/schema/schema.json +1 -0
- data/schema/schema/metadata.json +3 -3
- data/templates/adiwg_metadata_template.json +194 -17
- data/test/tc_schemas.rb +17 -0
- metadata +7 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e02358e3428ecb2d56fbf91c17ac0e4f0053d077
         | 
| 4 | 
            +
              data.tar.gz: aab6f7ed078b693d53abc174ddbc05526965197d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e39803ab5f10610c376eebfea86fb302b89e5d61434c70614504a48c5e56da520bb135271dd611c140563098506b376fe9d9177a6c86b09494db99f0b3b23855
         | 
| 7 | 
            +
              data.tar.gz: c6a3ed9fa8c54299a9c8d40db1c151e24e480d506caa17044dab95b564536f32f13463439aa7a8c33e7a45073dd8ceb7ce4e72a4901410fbd6bd860dc8a0ea40
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/adiwg-json_schemas.gemspec
    CHANGED
    
    | @@ -20,6 +20,6 @@ Gem::Specification.new do |spec| | |
| 20 20 |  | 
| 21 21 | 
             
              spec.add_development_dependency "bundler", "~> 1.3"
         | 
| 22 22 | 
             
              spec.add_development_dependency "rake"
         | 
| 23 | 
            -
              spec.add_development_dependency "json-schema"
         | 
| 23 | 
            +
              spec.add_development_dependency "json-schema", "~> 2.2"
         | 
| 24 24 | 
             
              spec.add_development_dependency "test-unit"
         | 
| 25 25 | 
             
            end
         | 
    
        data/examples/full_example.json
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "version":{
         | 
| 3 3 | 
             
                "name":"adiwgJSON",
         | 
| 4 | 
            -
                "version":"0. | 
| 4 | 
            +
                "version":"0.8.0"
         | 
| 5 5 | 
             
              },
         | 
| 6 6 | 
             
              "contact":[
         | 
| 7 7 | 
             
                {
         | 
| @@ -341,8 +341,45 @@ | |
| 341 341 | 
             
              ],
         | 
| 342 342 | 
             
              "metadata":{
         | 
| 343 343 | 
             
                "metadataInfo":{
         | 
| 344 | 
            -
                  "metadataIdentifier": | 
| 345 | 
            -
             | 
| 344 | 
            +
                  "metadataIdentifier":{
         | 
| 345 | 
            +
                    "identifier":"D5D16D06-CEEB-E011-8260-000C2952247E",
         | 
| 346 | 
            +
                    "type":"uuid"
         | 
| 347 | 
            +
                  },
         | 
| 348 | 
            +
                  "parentMetadata":{
         | 
| 349 | 
            +
                    "title":"Changing Arctic Ecosystems Initiative (CAE)",
         | 
| 350 | 
            +
                    "date":[
         | 
| 351 | 
            +
                      {
         | 
| 352 | 
            +
                        "date":"2011-09-14",
         | 
| 353 | 
            +
                        "dateType":"publication"
         | 
| 354 | 
            +
                      }
         | 
| 355 | 
            +
                    ],
         | 
| 356 | 
            +
                    "identifier":[
         | 
| 357 | 
            +
                      {
         | 
| 358 | 
            +
                        "identifier":"D5B16D06-CFEB-E011-8260-000C2952247E",
         | 
| 359 | 
            +
                        "type":"uuid"
         | 
| 360 | 
            +
                      },
         | 
| 361 | 
            +
                      {
         | 
| 362 | 
            +
                        "identifier":"ALCC2018-99",
         | 
| 363 | 
            +
                        "type":"project"
         | 
| 364 | 
            +
                      }
         | 
| 365 | 
            +
                    ],
         | 
| 366 | 
            +
                    "responsibleParty":[
         | 
| 367 | 
            +
                      {
         | 
| 368 | 
            +
                        "contactId":"1",
         | 
| 369 | 
            +
                        "role":"pointOfContact"
         | 
| 370 | 
            +
                      }
         | 
| 371 | 
            +
                    ],
         | 
| 372 | 
            +
                    "presentationForm":[
         | 
| 373 | 
            +
                      "documentDigital"
         | 
| 374 | 
            +
                    ],
         | 
| 375 | 
            +
                    "onlineResource":[
         | 
| 376 | 
            +
                      {
         | 
| 377 | 
            +
                        "uri":"http://alaska.usgs.gov/rex/adiwg/public/projects/316?format=xml",
         | 
| 378 | 
            +
                        "protocol":"http",
         | 
| 379 | 
            +
                        "description":"Project metadata record for CAE"
         | 
| 380 | 
            +
                      }
         | 
| 381 | 
            +
                    ]
         | 
| 382 | 
            +
                  },
         | 
| 346 383 | 
             
                  "metadataScope":[
         | 
| 347 384 | 
             
                    "dataset",
         | 
| 348 385 | 
             
                    "project"
         | 
    
        data/examples/full_example2.json
    CHANGED
    
    | @@ -341,8 +341,45 @@ | |
| 341 341 | 
             
              ],
         | 
| 342 342 | 
             
              "metadata":{
         | 
| 343 343 | 
             
                "metadataInfo":{
         | 
| 344 | 
            -
                  "metadataIdentifier": | 
| 345 | 
            -
             | 
| 344 | 
            +
                  "metadataIdentifier":{
         | 
| 345 | 
            +
                    "identifier":"D5D16D06-CEEB-E011-8260-000C2952247E",
         | 
| 346 | 
            +
                    "type":"uuid"
         | 
| 347 | 
            +
                  },
         | 
| 348 | 
            +
                  "parentMetadata":{
         | 
| 349 | 
            +
                    "title":"Changing Arctic Ecosystems Initiative (CAE)",
         | 
| 350 | 
            +
                    "date":[
         | 
| 351 | 
            +
                      {
         | 
| 352 | 
            +
                        "date":"2011-09-14",
         | 
| 353 | 
            +
                        "dateType":"publication"
         | 
| 354 | 
            +
                      }
         | 
| 355 | 
            +
                    ],
         | 
| 356 | 
            +
                    "identifier":[
         | 
| 357 | 
            +
                      {
         | 
| 358 | 
            +
                        "identifier":"D5B16D06-CFEB-E011-8260-000C2952247E",
         | 
| 359 | 
            +
                        "type":"uuid"
         | 
| 360 | 
            +
                      },
         | 
| 361 | 
            +
                      {
         | 
| 362 | 
            +
                        "identifier":"ALCC2018-99",
         | 
| 363 | 
            +
                        "type":"project"
         | 
| 364 | 
            +
                      }
         | 
| 365 | 
            +
                    ],
         | 
| 366 | 
            +
                    "responsibleParty":[
         | 
| 367 | 
            +
                      {
         | 
| 368 | 
            +
                        "contactId":"1",
         | 
| 369 | 
            +
                        "role":"pointOfContact"
         | 
| 370 | 
            +
                      }
         | 
| 371 | 
            +
                    ],
         | 
| 372 | 
            +
                    "presentationForm":[
         | 
| 373 | 
            +
                      "documentDigital"
         | 
| 374 | 
            +
                    ],
         | 
| 375 | 
            +
                    "onlineResource":[
         | 
| 376 | 
            +
                      {
         | 
| 377 | 
            +
                        "uri":"http://alaska.usgs.gov/rex/adiwg/public/projects/316?format=xml",
         | 
| 378 | 
            +
                        "protocol":"http",
         | 
| 379 | 
            +
                        "description":"Project metadata record for CAE"
         | 
| 380 | 
            +
                      }
         | 
| 381 | 
            +
                    ]
         | 
| 382 | 
            +
                  },
         | 
| 346 383 | 
             
                  "metadataScope":[
         | 
| 347 384 | 
             
                    "dataset",
         | 
| 348 385 | 
             
                    "project"
         | 
| @@ -412,6 +449,13 @@ | |
| 412 449 | 
             
                        "identifier":"10/1256.0011",
         | 
| 413 450 | 
             
                        "type":"doi"
         | 
| 414 451 | 
             
                      },
         | 
| 452 | 
            +
                      {
         | 
| 453 | 
            +
                        "identifier":"id with nil type",
         | 
| 454 | 
            +
                        "type":""
         | 
| 455 | 
            +
                      },
         | 
| 456 | 
            +
                      {
         | 
| 457 | 
            +
                        "identifier":"id with missing type"
         | 
| 458 | 
            +
                      },
         | 
| 415 459 | 
             
                      {
         | 
| 416 460 | 
             
                        "identifier":"978-1490564098",
         | 
| 417 461 | 
             
                        "type":"isbn"
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "version":{
         | 
| 3 3 | 
             
                "name":"adiwgJSON",
         | 
| 4 | 
            -
                "version":"0. | 
| 4 | 
            +
                "version":"0.8.0"
         | 
| 5 5 | 
             
              },
         | 
| 6 6 | 
             
              "contact":[
         | 
| 7 7 | 
             
                {
         | 
| @@ -92,7 +92,10 @@ | |
| 92 92 | 
             
              ],
         | 
| 93 93 | 
             
              "metadata":{
         | 
| 94 94 | 
             
                "metadataInfo":{
         | 
| 95 | 
            -
                  "metadataIdentifier": | 
| 95 | 
            +
                  "metadataIdentifier":{
         | 
| 96 | 
            +
                    "identifier":"D5D16D06-CEEB-E011-8260-000C2952247E",
         | 
| 97 | 
            +
                    "type":"uuid"
         | 
| 98 | 
            +
                  },
         | 
| 96 99 | 
             
                  "metadataScope":[
         | 
| 97 100 | 
             
                    "project"
         | 
| 98 101 | 
             
                  ],
         | 
| @@ -0,0 +1,42 @@ | |
| 1 | 
            +
            =begin
         | 
| 2 | 
            +
            * Description: Patches json-schema gem to work on windows
         | 
| 3 | 
            +
            * Author: Josh Bradley
         | 
| 4 | 
            +
            * Date: 2014-09-17
         | 
| 5 | 
            +
            * License: Public Domain
         | 
| 6 | 
            +
            =end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            module JSON
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              class Validator
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                def load_ref_schema(parent_schema,ref)
         | 
| 13 | 
            +
                  uri = URI.parse(ref)
         | 
| 14 | 
            +
                  if uri.relative?
         | 
| 15 | 
            +
                    uri = parent_schema.uri.clone
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                    # Check for absolute path
         | 
| 18 | 
            +
                    path = ref.split("#")[0]
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                    # This is a self reference and thus the schema does not need to be
         | 
| 21 | 
            +
                    # re-loaded
         | 
| 22 | 
            +
                    if path.nil? || path == ''
         | 
| 23 | 
            +
                    return
         | 
| 24 | 
            +
                    end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                    if path && path[0,1] == '/'
         | 
| 27 | 
            +
                      uri.path = Pathname.new(path).cleanpath.to_s
         | 
| 28 | 
            +
                    else
         | 
| 29 | 
            +
                    uri = parent_schema.uri.merge(path)
         | 
| 30 | 
            +
                    end
         | 
| 31 | 
            +
                    uri.fragment = ''
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  if Validator.schemas[uri.to_s].nil?
         | 
| 35 | 
            +
                    schema = JSON::Schema.new(JSON::Validator.parse(open(uri.to_s.chomp('#')).read), uri, @options[:version])
         | 
| 36 | 
            +
                    Validator.add_schema(schema)
         | 
| 37 | 
            +
                    build_schemas(schema)
         | 
| 38 | 
            +
                  end
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
            end
         | 
    
        data/schema/schema.json
    CHANGED
    
    
    
        data/schema/schema/metadata.json
    CHANGED
    
    | @@ -11,10 +11,10 @@ | |
| 11 11 | 
             
                  "additionalProperties": false,
         | 
| 12 12 | 
             
                  "properties": {
         | 
| 13 13 | 
             
                    "metadataIdentifier": {
         | 
| 14 | 
            -
                      " | 
| 14 | 
            +
                      "$ref": "citation.json#/definitions/identifier"
         | 
| 15 15 | 
             
                    },
         | 
| 16 | 
            -
                    " | 
| 17 | 
            -
                      " | 
| 16 | 
            +
                    "parentMetadata": {
         | 
| 17 | 
            +
                      "$ref": "citation.json#/definitions/citationFull"
         | 
| 18 18 | 
             
                    },
         | 
| 19 19 | 
             
                    "metadataScope": {
         | 
| 20 20 | 
             
                      "type": "array",
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "version": {
         | 
| 3 3 | 
             
                "name": "adiwgJSON",
         | 
| 4 | 
            -
                "version": "0. | 
| 4 | 
            +
                "version": "0.8.0"
         | 
| 5 5 | 
             
              },
         | 
| 6 6 | 
             
              "contact": [
         | 
| 7 7 | 
             
                {
         | 
| @@ -38,8 +38,42 @@ | |
| 38 38 | 
             
              ],
         | 
| 39 39 | 
             
              "metadata": {
         | 
| 40 40 | 
             
                "metadataInfo": {
         | 
| 41 | 
            -
                  "metadataIdentifier":  | 
| 42 | 
            -
             | 
| 41 | 
            +
                  "metadataIdentifier": {
         | 
| 42 | 
            +
                    "identifier": "",
         | 
| 43 | 
            +
                    "type": ""
         | 
| 44 | 
            +
                  },
         | 
| 45 | 
            +
                  "parentMetadata": {
         | 
| 46 | 
            +
                    "title": "",
         | 
| 47 | 
            +
                    "date": [
         | 
| 48 | 
            +
                      {
         | 
| 49 | 
            +
                        "date": "0000-00-00",
         | 
| 50 | 
            +
                        "dateType": ""
         | 
| 51 | 
            +
                      }
         | 
| 52 | 
            +
                    ],
         | 
| 53 | 
            +
                    "edition": "",
         | 
| 54 | 
            +
                    "responsibleParty": [
         | 
| 55 | 
            +
                      {
         | 
| 56 | 
            +
                        "contactId": "",
         | 
| 57 | 
            +
                        "role": ""
         | 
| 58 | 
            +
                      }
         | 
| 59 | 
            +
                    ],
         | 
| 60 | 
            +
                    "presentationForm": [""],
         | 
| 61 | 
            +
                    "identifier": [
         | 
| 62 | 
            +
                      {
         | 
| 63 | 
            +
                        "identifier": "",
         | 
| 64 | 
            +
                        "type": ""
         | 
| 65 | 
            +
                      }
         | 
| 66 | 
            +
                    ],
         | 
| 67 | 
            +
                    "onlineResource": [
         | 
| 68 | 
            +
                      {
         | 
| 69 | 
            +
                        "uri": "http://thisisanexample.com",
         | 
| 70 | 
            +
                        "protocol": "",
         | 
| 71 | 
            +
                        "name": "",
         | 
| 72 | 
            +
                        "description": "",
         | 
| 73 | 
            +
                        "function": ""
         | 
| 74 | 
            +
                      }
         | 
| 75 | 
            +
                    ]
         | 
| 76 | 
            +
                  },
         | 
| 43 77 | 
             
                  "metadataScope": [""],
         | 
| 44 78 | 
             
                  "metadataContact": [
         | 
| 45 79 | 
             
                    {
         | 
| @@ -49,8 +83,8 @@ | |
| 49 83 | 
             
                  ],
         | 
| 50 84 | 
             
                  "metadataCreationDate": "0000-00-00",
         | 
| 51 85 | 
             
                  "metadataLastUpdate": "0000-00-00",
         | 
| 86 | 
            +
                  "metadataCharacterSet": "utf8",
         | 
| 52 87 | 
             
                  "metadataUri": "http://thisisanexample.com",
         | 
| 53 | 
            -
                  "metadataCharacterSet": "",
         | 
| 54 88 | 
             
                  "metadataStatus": "",
         | 
| 55 89 | 
             
                  "metadataMaintenance": {
         | 
| 56 90 | 
             
                    "maintenanceFrequency": "",
         | 
| @@ -80,15 +114,6 @@ | |
| 80 114 | 
             
                      }
         | 
| 81 115 | 
             
                    ],
         | 
| 82 116 | 
             
                    "presentationForm": [""],
         | 
| 83 | 
            -
                    "onlineResource": [
         | 
| 84 | 
            -
                      {
         | 
| 85 | 
            -
                        "uri": "http://thisisanexample.com",
         | 
| 86 | 
            -
                        "protocol": "",
         | 
| 87 | 
            -
                        "name": "",
         | 
| 88 | 
            -
                        "description": "",
         | 
| 89 | 
            -
                        "function": ""
         | 
| 90 | 
            -
                      }
         | 
| 91 | 
            -
                    ],
         | 
| 92 117 | 
             
                    "identifier": [
         | 
| 93 118 | 
             
                      {
         | 
| 94 119 | 
             
                        "identifier": "",
         | 
| @@ -118,6 +143,15 @@ | |
| 118 143 | 
             
                          ]
         | 
| 119 144 | 
             
                        }
         | 
| 120 145 | 
             
                      }
         | 
| 146 | 
            +
                    ],
         | 
| 147 | 
            +
                    "onlineResource": [
         | 
| 148 | 
            +
                      {
         | 
| 149 | 
            +
                        "uri": "http://thisisanexample.com",
         | 
| 150 | 
            +
                        "protocol": "",
         | 
| 151 | 
            +
                        "name": "",
         | 
| 152 | 
            +
                        "description": "",
         | 
| 153 | 
            +
                        "function": ""
         | 
| 154 | 
            +
                      }
         | 
| 121 155 | 
             
                    ]
         | 
| 122 156 | 
             
                  },
         | 
| 123 157 | 
             
                  "pointOfContact": [
         | 
| @@ -191,6 +225,15 @@ | |
| 191 225 | 
             
                              ]
         | 
| 192 226 | 
             
                            }
         | 
| 193 227 | 
             
                          }
         | 
| 228 | 
            +
                        ],
         | 
| 229 | 
            +
                        "onlineResource": [
         | 
| 230 | 
            +
                          {
         | 
| 231 | 
            +
                            "uri": "http://thisisanexample.com",
         | 
| 232 | 
            +
                            "protocol": "",
         | 
| 233 | 
            +
                            "name": "",
         | 
| 234 | 
            +
                            "description": "",
         | 
| 235 | 
            +
                            "function": ""
         | 
| 236 | 
            +
                          }
         | 
| 194 237 | 
             
                        ]
         | 
| 195 238 | 
             
                      }
         | 
| 196 239 | 
             
                    }
         | 
| @@ -224,7 +267,7 @@ | |
| 224 267 | 
             
                      "fileName": "",
         | 
| 225 268 | 
             
                      "fileDescription": "",
         | 
| 226 269 | 
             
                      "fileType": "",
         | 
| 227 | 
            -
                      " | 
| 270 | 
            +
                      "fileUri": "http://thisisanexample.com"
         | 
| 228 271 | 
             
                    }
         | 
| 229 272 | 
             
                  ],
         | 
| 230 273 | 
             
                  "constraint": {
         | 
| @@ -292,6 +335,15 @@ | |
| 292 335 | 
             
                              ]
         | 
| 293 336 | 
             
                            }
         | 
| 294 337 | 
             
                          }
         | 
| 338 | 
            +
                        ],
         | 
| 339 | 
            +
                        "onlineResource": [
         | 
| 340 | 
            +
                          {
         | 
| 341 | 
            +
                            "uri": "http://thisisanexample.com",
         | 
| 342 | 
            +
                            "protocol": "",
         | 
| 343 | 
            +
                            "name": "",
         | 
| 344 | 
            +
                            "description": "",
         | 
| 345 | 
            +
                            "function": ""
         | 
| 346 | 
            +
                          }
         | 
| 295 347 | 
             
                        ]
         | 
| 296 348 | 
             
                      }
         | 
| 297 349 | 
             
                    ],
         | 
| @@ -319,9 +371,9 @@ | |
| 319 371 | 
             
                    ]
         | 
| 320 372 | 
             
                  },
         | 
| 321 373 | 
             
                  "spatialReferenceSystem": {
         | 
| 322 | 
            -
                    "name": [" | 
| 374 | 
            +
                    "name": [""],
         | 
| 323 375 | 
             
                    "epsgNumber": [0],
         | 
| 324 | 
            -
                    "wkt": [" | 
| 376 | 
            +
                    "wkt": [""]
         | 
| 325 377 | 
             
                  },
         | 
| 326 378 | 
             
                  "spatialRepresentation": [""],
         | 
| 327 379 | 
             
                  "spatialResolution": [
         | 
| @@ -337,6 +389,130 @@ | |
| 337 389 | 
             
                      "description": "",
         | 
| 338 390 | 
             
                      "geographicElement": [
         | 
| 339 391 | 
             
                        {
         | 
| 392 | 
            +
                          "type": "Point",
         | 
| 393 | 
            +
                          "bbox": [0, 0, 0, 0],
         | 
| 394 | 
            +
                          "coordinates": [0, 0, 0],
         | 
| 395 | 
            +
                          "crs": {
         | 
| 396 | 
            +
                            "type": "name",
         | 
| 397 | 
            +
                            "properties": {
         | 
| 398 | 
            +
                              "name": ""
         | 
| 399 | 
            +
                            }
         | 
| 400 | 
            +
                          }
         | 
| 401 | 
            +
                        }, {
         | 
| 402 | 
            +
                          "type": "LineString",
         | 
| 403 | 
            +
                          "bbox": [0, 0, 0, 0],
         | 
| 404 | 
            +
                          "coordinates": [
         | 
| 405 | 
            +
                            [0, 0, 0],
         | 
| 406 | 
            +
                            [0, 0, 0]
         | 
| 407 | 
            +
                          ],
         | 
| 408 | 
            +
                          "crs": {
         | 
| 409 | 
            +
                            "type": "name",
         | 
| 410 | 
            +
                            "properties": {
         | 
| 411 | 
            +
                              "name": ""
         | 
| 412 | 
            +
                            }
         | 
| 413 | 
            +
                          }
         | 
| 414 | 
            +
                        }, {
         | 
| 415 | 
            +
                          "type": "Polygon",
         | 
| 416 | 
            +
                          "bbox": [0, 0, 0, 0],
         | 
| 417 | 
            +
                          "coordinates": [
         | 
| 418 | 
            +
                            [
         | 
| 419 | 
            +
                              [0, 0, 0],
         | 
| 420 | 
            +
                              [0, 0, 0],
         | 
| 421 | 
            +
                              [0, 0, 0],
         | 
| 422 | 
            +
                              [0, 0, 0]
         | 
| 423 | 
            +
                            ],
         | 
| 424 | 
            +
                            [
         | 
| 425 | 
            +
                              [0, 0, 0],
         | 
| 426 | 
            +
                              [0, 0, 0],
         | 
| 427 | 
            +
                              [0, 0, 0],
         | 
| 428 | 
            +
                              [0, 0, 0]
         | 
| 429 | 
            +
                            ]
         | 
| 430 | 
            +
                          ],
         | 
| 431 | 
            +
                          "crs": {
         | 
| 432 | 
            +
                            "type": "name",
         | 
| 433 | 
            +
                            "properties": {
         | 
| 434 | 
            +
                              "name": ""
         | 
| 435 | 
            +
                            }
         | 
| 436 | 
            +
                          }
         | 
| 437 | 
            +
                        }, {
         | 
| 438 | 
            +
                          "type": "MultiPoint",
         | 
| 439 | 
            +
                          "bbox": [0, 0, 0, 0],
         | 
| 440 | 
            +
                          "coordinates": [
         | 
| 441 | 
            +
                            [0, 0, 0],
         | 
| 442 | 
            +
                            [0, 0, 0]
         | 
| 443 | 
            +
                          ],
         | 
| 444 | 
            +
                          "crs": {
         | 
| 445 | 
            +
                            "type": "name",
         | 
| 446 | 
            +
                            "properties": {
         | 
| 447 | 
            +
                              "name": ""
         | 
| 448 | 
            +
                            }
         | 
| 449 | 
            +
                          }
         | 
| 450 | 
            +
                        }, {
         | 
| 451 | 
            +
                          "type": "MultiLineString",
         | 
| 452 | 
            +
                          "bbox": [0, 0, 0, 0],
         | 
| 453 | 
            +
                          "coordinates": [
         | 
| 454 | 
            +
                            [
         | 
| 455 | 
            +
                              [0, 0, 0],
         | 
| 456 | 
            +
                              [0, 0, 0],
         | 
| 457 | 
            +
                              [0, 0, 0],
         | 
| 458 | 
            +
                              [0, 0, 0]
         | 
| 459 | 
            +
                            ],
         | 
| 460 | 
            +
                            [
         | 
| 461 | 
            +
                              [0, 0, 0],
         | 
| 462 | 
            +
                              [0, 0, 0],
         | 
| 463 | 
            +
                              [0, 0, 0],
         | 
| 464 | 
            +
                              [0, 0, 0]
         | 
| 465 | 
            +
                            ]
         | 
| 466 | 
            +
                          ],
         | 
| 467 | 
            +
                          "crs": {
         | 
| 468 | 
            +
                            "type": "name",
         | 
| 469 | 
            +
                            "properties": {
         | 
| 470 | 
            +
                              "name": ""
         | 
| 471 | 
            +
                            }
         | 
| 472 | 
            +
                          }
         | 
| 473 | 
            +
                        }, {
         | 
| 474 | 
            +
                          "type": "MultiPolygon",
         | 
| 475 | 
            +
                          "bbox": [0, 0, 0, 0],
         | 
| 476 | 
            +
                          "coordinates": [
         | 
| 477 | 
            +
                            [
         | 
| 478 | 
            +
                              [
         | 
| 479 | 
            +
                                [0, 0, 0],
         | 
| 480 | 
            +
                                [0, 0, 0],
         | 
| 481 | 
            +
                                [0, 0, 0],
         | 
| 482 | 
            +
                                [0, 0, 0]
         | 
| 483 | 
            +
                              ],
         | 
| 484 | 
            +
                              [
         | 
| 485 | 
            +
                                [0, 0, 0],
         | 
| 486 | 
            +
                                [0, 0, 0],
         | 
| 487 | 
            +
                                [0, 0, 0],
         | 
| 488 | 
            +
                                [0, 0, 0]
         | 
| 489 | 
            +
                              ]
         | 
| 490 | 
            +
                            ],
         | 
| 491 | 
            +
                            [
         | 
| 492 | 
            +
                              [
         | 
| 493 | 
            +
                                [0, 0, 0],
         | 
| 494 | 
            +
                                [0, 0, 0],
         | 
| 495 | 
            +
                                [0, 0, 0],
         | 
| 496 | 
            +
                                [0, 0, 0]
         | 
| 497 | 
            +
                              ],
         | 
| 498 | 
            +
                              [
         | 
| 499 | 
            +
                                [0, 0, 0],
         | 
| 500 | 
            +
                                [0, 0, 0],
         | 
| 501 | 
            +
                                [0, 0, 0],
         | 
| 502 | 
            +
                                [0, 0, 0]
         | 
| 503 | 
            +
                              ]
         | 
| 504 | 
            +
                            ]
         | 
| 505 | 
            +
                          ],
         | 
| 506 | 
            +
                          "crs": {
         | 
| 507 | 
            +
                            "type": "name",
         | 
| 508 | 
            +
                            "properties": {
         | 
| 509 | 
            +
                              "name": ""
         | 
| 510 | 
            +
                            }
         | 
| 511 | 
            +
                          }
         | 
| 512 | 
            +
                        }, {
         | 
| 513 | 
            +
                          "type": "GeometryCollection",
         | 
| 514 | 
            +
                          "geometries": []
         | 
| 515 | 
            +
                        }, {
         | 
| 340 516 | 
             
                          "type": "Feature",
         | 
| 341 517 | 
             
                          "id": "",
         | 
| 342 518 | 
             
                          "bbox": [0, 0, 0, 0],
         | 
| @@ -407,6 +583,7 @@ | |
| 407 583 | 
             
                            "identifier": [
         | 
| 408 584 | 
             
                              {
         | 
| 409 585 | 
             
                                "identifier": "",
         | 
| 586 | 
            +
                                "type": "",
         | 
| 410 587 | 
             
                                "authority": {
         | 
| 411 588 | 
             
                                  "title": "",
         | 
| 412 589 | 
             
                                  "date": [
         | 
| @@ -790,4 +967,4 @@ | |
| 790 967 | 
             
                  }
         | 
| 791 968 | 
             
                ]
         | 
| 792 969 | 
             
              }
         | 
| 793 | 
            -
            }
         | 
| 970 | 
            +
            }
         | 
    
        data/test/tc_schemas.rb
    CHANGED
    
    | @@ -10,12 +10,29 @@ require 'json' | |
| 10 10 | 
             
            require 'json-schema'
         | 
| 11 11 | 
             
            require File.join(File.dirname(__FILE__),'..','lib', 'adiwg-json_schemas.rb')
         | 
| 12 12 |  | 
| 13 | 
            +
            #json-schema patch
         | 
| 14 | 
            +
            require File.join(File.dirname(__FILE__),'..','lib', 'adiwg', 'json_schemas', 'validator.rb')
         | 
| 15 | 
            +
             | 
| 13 16 | 
             
            class TestExamples < Test::Unit::TestCase
         | 
| 14 17 |  | 
| 15 18 | 
             
              @@dir = File.join(File.dirname(__FILE__),'..','schema/')
         | 
| 16 19 | 
             
              @@ex = File.join(File.dirname(__FILE__),'..','examples/')
         | 
| 17 20 | 
             
              @@schema = File.join(File.dirname(__FILE__),'..','schema','schema.json')
         | 
| 18 21 |  | 
| 22 | 
            +
              def test_schemas
         | 
| 23 | 
            +
                #Validate the schemas themselves
         | 
| 24 | 
            +
                puts "\nValidating schemas, Please wait... \n"
         | 
| 25 | 
            +
                schemas = `git ls-files #{@@dir}`.split($/)
         | 
| 26 | 
            +
                errors = Array.new
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                schemas.each do |schema|
         | 
| 29 | 
            +
                  error = JSON::Validator.fully_validate('http://json-schema.org/draft-04/schema', schema)
         | 
| 30 | 
            +
                  errors += error
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                assert(errors.empty?, errors.join("/n"))
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
             | 
| 19 36 | 
             
              def test_data_template
         | 
| 20 37 | 
             
                errors = JSON::Validator.fully_validate(@@schema, @@dir + '../templates/adiwg_metadata_template.json', :strict => false)
         | 
| 21 38 | 
             
                assert(errors.empty?, errors.join("/n"))
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: adiwg-json_schemas
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.8.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Josh Bradley, Stan Smith
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-09- | 
| 11 | 
            +
            date: 2014-09-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -42,16 +42,16 @@ dependencies: | |
| 42 42 | 
             
              name: json-schema
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - ~>
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: ' | 
| 47 | 
            +
                    version: '2.2'
         | 
| 48 48 | 
             
              type: :development
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - ~>
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: ' | 
| 54 | 
            +
                    version: '2.2'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: test-unit
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -111,6 +111,7 @@ files: | |
| 111 111 | 
             
            - lib/adiwg-json_schemas.rb
         | 
| 112 112 | 
             
            - lib/adiwg/json_schemas.rb
         | 
| 113 113 | 
             
            - lib/adiwg/json_schemas/utils.rb
         | 
| 114 | 
            +
            - lib/adiwg/json_schemas/validator.rb
         | 
| 114 115 | 
             
            - lib/adiwg/json_schemas/version.rb
         | 
| 115 116 | 
             
            - schema/schema.json
         | 
| 116 117 | 
             
            - schema/schema/citation.json
         |