geojsonlint 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b662b6380d4cd7fa2cc8db3bf5978304bb5fd27b
4
+ data.tar.gz: 5ab6dd81f7a190b819132f10babfa534612cd57e
5
+ SHA512:
6
+ metadata.gz: 7b9686cb74ba133b3f15a20087c3f8bf26de3f46979b1786ac7dc56c4120afce3f8de4d2bf99e3ff74dea7e61d10a1cef9cb10c5d84c7a22a78c8753976befe1
7
+ data.tar.gz: cedd747d55917f07a0a9d423bd4c7e6f8af880d69a5edd291581737a383faa67c77335e7162c76347e10f8c4fa2ba6f572f00097069c0b67bdfc7a4649674018
Binary file
Binary file
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+
11
+ .ruby-version
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --order random
2
+ --format documentation
3
+ --color
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.2.1
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :test do
4
+ gem 'activemodel', '>= 3.0.0'
5
+ gem 'coveralls', require: false
6
+ end
7
+
8
+ gemspec
@@ -0,0 +1,8 @@
1
+ Copyright (c) 2015, Can-Explore All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
+
5
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
7
+ Neither the name of the Mirego nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
8
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,106 @@
1
+ # Geojsonlint
2
+
3
+ A geoJSON validator.
4
+
5
+ [![Gem Version](https://badge.fury.io/rb/geojsonlint.png)](http://badge.fury.io/rb/geojsonlint)
6
+ [![Code Climate](https://codeclimate.com/github/can-explore/geojsonlint/badges/gpa.svg)](https://codeclimate.com/github/can-explore/geojsonlint)
7
+ [![Coverage Status](https://coveralls.io/repos/can-explore/geojsonlint/badge.svg)](https://coveralls.io/r/can-explore/geojsonlint)
8
+ [![Build Status](https://travis-ci.org/can-explore/geojsonlint.png)](https://travis-ci.org/can-explore/geojsonlint)
9
+
10
+ ## Usage
11
+
12
+ Validate a `Hash` or a JSON `String` object.
13
+
14
+ ```ruby
15
+ data = {
16
+ type: 'Feature',
17
+ geometry: {
18
+ type: 'Point',
19
+ coordinates: [-80.72, 35.26]
20
+ },
21
+ properties: {}
22
+ }
23
+
24
+ geojson = Geojsonlint.validate(data)
25
+ geojson.valid? # => true
26
+
27
+ data = {
28
+ type: 'Feature',
29
+ geometry: {
30
+ type: 'Point',
31
+ coordinates: 'invalid'
32
+ },
33
+ properties: {}
34
+ }
35
+
36
+ geojson = Geojsonlint.validate(data)
37
+ geojson.valid? # => false
38
+ geojson.errors # => [{ schema: {...}, fragment: "...", message: "...", failed_attribute: "...", errors: [...] }]
39
+ ```
40
+
41
+ Also included is a custom validator for your `ActiveModel` objects.
42
+
43
+ ```ruby
44
+ class Feature
45
+ include ActiveModel::Model
46
+ include ActiveModel::Validations
47
+
48
+ attr_accessor :data
49
+
50
+ validates :data, geojson: true
51
+ end
52
+
53
+ feature = Feature.new(data: data)
54
+ feature.valid?
55
+ feature.errors[:data] # => ["Invalid geojson"]
56
+ ```
57
+
58
+ ## Installation
59
+
60
+ Add this line to your application's Gemfile:
61
+
62
+ ```ruby
63
+ gem 'geojsonlint'
64
+ ```
65
+
66
+ And then execute:
67
+
68
+ $ bundle
69
+
70
+ Or install it yourself as:
71
+
72
+ $ gem install geojsonlint
73
+
74
+ ## Development
75
+
76
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
77
+
78
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
79
+
80
+ ## Contributing
81
+
82
+ 1. Fork it ( https://github.com/can-explore/geojsonlint/fork )
83
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
84
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
85
+ 4. Push to the branch (`git push origin my-new-feature`)
86
+ 5. Create a new Pull Request
87
+ 6. Thank you!
88
+
89
+ ## See Also
90
+
91
+ * [mapbox/geojsonhint](https://github.com/mapbox/geojsonhint)
92
+ * [geojsonhint online](https://www.mapbox.com/geojsonhint/)
93
+ * [grunt-geojsonhint](https://github.com/jieter/grunt-geojsonhint) does it as a Grunt task
94
+ * [geojsonlint.com](http://geojsonlint.com/) does this server-side
95
+ * [GeoJSON-Validation](https://github.com/craveprogramminginc/GeoJSON-Validation) is another node module for this.
96
+ * [geojson-assert](https://github.com/calvinmetcalf/geojson-assert) does it in assertion tests
97
+
98
+ ## License
99
+
100
+ `geojsonlint` is © 2015 Can-Explore and may be freely distributed under the New BSD license. See the `LICENSE.md` file.
101
+
102
+ ## About Can-Explore
103
+
104
+ Can-Explore is a team of passionate people brdiging the gap between technology and the world of civil engineering. We love building new things and get out of our comfort zone.
105
+
106
+ We love [open-source](https://github.com/can-explore) and we try to give back to the community as much as we can.
@@ -0,0 +1,11 @@
1
+ require 'bundler'
2
+ require 'rake'
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+
6
+ task default: :spec
7
+
8
+ desc 'Run all specs'
9
+ RSpec::Core::RakeTask.new(:spec) do |task|
10
+ task.pattern = 'spec/**/*_spec.rb'
11
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "geojsonlint"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,36 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'geojsonlint/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "geojsonlint"
8
+ spec.version = Geojsonlint::VERSION
9
+ spec.authors = ["Philippe Dionne"]
10
+ spec.email = ["dionne.phil@gmail.com"]
11
+
12
+ spec.summary = %q{A geojson validator.}
13
+ spec.description = %q{A geojson validator.}
14
+ spec.homepage = "http://github.com/can-explore/geojsonlint"
15
+ spec.license = "BSD 3-Clause"
16
+
17
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
18
+ # delete this section to allow pushing this gem to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
21
+ else
22
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
+ end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_dependency "json-schema", "~> 2.5.0"
31
+ spec.add_dependency "activemodel", "~> 3.0.0"
32
+
33
+ spec.add_development_dependency "bundler"
34
+ spec.add_development_dependency "rake"
35
+ spec.add_development_dependency "rspec", "~> 3.2"
36
+ end
@@ -0,0 +1,63 @@
1
+ require 'geojsonlint/version'
2
+ require 'json'
3
+ require 'json-schema'
4
+
5
+ if defined?(ActiveModel)
6
+ require 'geojsonlint/geojson_validator'
7
+ end
8
+
9
+ module Geojsonlint
10
+
11
+ class Parser
12
+ attr_reader :schema, :data
13
+
14
+ # @param data [String, Hash]
15
+ def initialize(data)
16
+ @data = data
17
+ @schema = JSON.parse(File.read('./lib/geojsonlint/geojson_schema.json'))
18
+ self
19
+ end
20
+
21
+ # @return [Geojson]
22
+ def run
23
+ options = {
24
+ errors_as_objects: true,
25
+ validate_schema: true
26
+ }
27
+
28
+ geojson = Geojson.new
29
+ geojson.errors = JSON::Validator.fully_validate(@schema, @data, **options)
30
+
31
+ geojson
32
+ end
33
+ end
34
+
35
+ class Geojson
36
+ attr_accessor :errors
37
+
38
+ # @return [Geojson]
39
+ def initialize
40
+ self.errors = Array.new
41
+ self
42
+ end
43
+
44
+ # @return [Boolean]
45
+ def valid?
46
+ !invalid?
47
+ end
48
+
49
+ # @return [Boolean]
50
+ def invalid?
51
+ errors.any?
52
+ end
53
+ end
54
+
55
+ # Validates a geojson object
56
+ # @param geojson [String, Hash] a JSON string or a Ruby object representing JSON data
57
+ #
58
+ # @return [Geojson]
59
+ def validate(geojson)
60
+ Parser.new(geojson).run
61
+ end
62
+ module_function :validate
63
+ end
@@ -0,0 +1,145 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "title": "GeoJSON object",
4
+ "description": "Schema for a GeoJSON object",
5
+ "type": "object",
6
+ "required": [ "type" ],
7
+ "oneOf": [
8
+ { "$ref": "#/definitions/geometry" },
9
+ { "$ref": "#/definitions/geometryCollection" },
10
+ { "$ref": "#/definitions/feature" },
11
+ { "$ref": "#/definitions/featureCollection" }
12
+ ],
13
+ "definitions": {
14
+ "geometry": {
15
+ "title": "geometry",
16
+ "description": "One geometry as defined by GeoJSON",
17
+ "type": "object",
18
+ "required": [ "type", "coordinates" ],
19
+ "oneOf": [
20
+ {
21
+ "title": "Point",
22
+ "properties": {
23
+ "type": { "enum": [ "Point" ] },
24
+ "coordinates": { "$ref": "#/definitions/geometry/definitions/position" }
25
+ }
26
+ },
27
+ {
28
+ "title": "MultiPoint",
29
+ "properties": {
30
+ "type": { "enum": [ "MultiPoint" ] },
31
+ "coordinates": { "$ref": "#/definitions/geometry/definitions/positionArray" }
32
+ }
33
+ },
34
+ {
35
+ "title": "LineString",
36
+ "properties": {
37
+ "type": { "enum": [ "LineString" ] },
38
+ "coordinates": { "$ref": "#/definitions/geometry/definitions/lineString" }
39
+ }
40
+ },
41
+ {
42
+ "title": "MultiLineString",
43
+ "properties": {
44
+ "type": { "enum": [ "MultiLineString" ] },
45
+ "coordinates": {
46
+ "type": "array",
47
+ "items": { "$ref": "#/definitions/geometry/definitions/lineString" }
48
+ }
49
+ }
50
+ },
51
+ {
52
+ "title": "Polygon",
53
+ "properties": {
54
+ "type": { "enum": [ "Polygon" ] },
55
+ "coordinates": { "$ref": "#/definitions/geometry/definitions/polygon" }
56
+ }
57
+ },
58
+ {
59
+ "title": "MultiPolygon",
60
+ "properties": {
61
+ "type": { "enum": [ "MultiPolygon" ] },
62
+ "coordinates": {
63
+ "type": "array",
64
+ "items": { "$ref": "#/definitions/geometry/definitions/polygon" }
65
+ }
66
+ }
67
+ }
68
+ ],
69
+ "definitions": {
70
+ "position": {
71
+ "description": "A single position",
72
+ "type": "array",
73
+ "minItems": 2,
74
+ "items": [ { "type": "number" }, { "type": "number" } ],
75
+ "additionalItems": false
76
+ },
77
+ "positionArray": {
78
+ "description": "An array of positions",
79
+ "type": "array",
80
+ "minItems": 2,
81
+ "items": { "$ref": "#/definitions/geometry/definitions/position" }
82
+ },
83
+ "lineString": {
84
+ "description": "An array of two or more positions",
85
+ "allOf": [
86
+ { "$ref": "#/definitions/geometry/definitions/positionArray" },
87
+ { "minItems": 2 }
88
+ ]
89
+ },
90
+ "linearRing": {
91
+ "description": "An array of four positions where the first equals the last",
92
+ "allOf": [
93
+ { "$ref": "#/definitions/geometry/definitions/positionArray" },
94
+ { "minItems": 4 }
95
+ ]
96
+ },
97
+ "polygon": {
98
+ "description": "An array of linear rings",
99
+ "type": "array",
100
+ "items": { "$ref": "#/definitions/geometry/definitions/linearRing" }
101
+ }
102
+ }
103
+ },
104
+ "geometryCollection": {
105
+ "title": "GeometryCollection",
106
+ "description": "A collection of geometry objects",
107
+ "required": [ "geometries" ],
108
+ "properties": {
109
+ "type": { "enum": [ "GeometryCollection" ] },
110
+ "geometries": {
111
+ "type": "array",
112
+ "items": { "$ref": "#/definitions/geometry" }
113
+ }
114
+ }
115
+ },
116
+ "feature": {
117
+ "title": "Feature",
118
+ "description": "A Geo JSON feature object",
119
+ "required": [ "geometry", "properties" ],
120
+ "properties": {
121
+ "type": { "enum": [ "Feature" ] },
122
+ "geometry": {
123
+ "oneOf": [
124
+ { "type": "null" },
125
+ { "$ref": "#/definitions/geometry" }
126
+ ]
127
+ },
128
+ "properties": { "type": [ "object", "null" ] }
129
+ }
130
+ },
131
+ "featureCollection": {
132
+ "title": "FeatureCollection",
133
+ "description": "A Geo JSON feature collection",
134
+ "required": [ "features" ],
135
+ "properties": {
136
+ "type": { "enum": [ "FeatureCollection" ] },
137
+ "features": {
138
+ "type": "array",
139
+ "items": { "$ref": "#/definitions/feature" }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+
@@ -0,0 +1,19 @@
1
+ require 'active_model'
2
+
3
+ class GeojsonValidator < ActiveModel::EachValidator
4
+
5
+ def validate_each(record, attribute, value)
6
+ unless valid_geojson?(value)
7
+ message = options[:message] || "Invalid geojson"
8
+ record.errors.add(attribute, message)
9
+ end
10
+ end
11
+
12
+
13
+ private
14
+
15
+ # @return [Boolean]
16
+ def valid_geojson?(geojson)
17
+ Geojsonlint.validate(geojson).valid?
18
+ end
19
+ end
@@ -0,0 +1,3 @@
1
+ module Geojsonlint
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: geojsonlint
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Philippe Dionne
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQUFADBCMRQwEgYDVQQDDAtkaW9u
14
+ bmUucGhpbDEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
15
+ Y29tMB4XDTE0MDcxNDE0NTE0OFoXDTE1MDcxNDE0NTE0OFowQjEUMBIGA1UEAwwL
16
+ ZGlvbm5lLnBoaWwxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
17
+ ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPAnIUIT51jC
18
+ 2iMwhJWDe+D8N8nnIQEZQ6Iqc41WDAAfhFVnvSfxx6NOK4JdcfAqvEkSTNXlrM0p
19
+ f2WBAiLXSyMSXGEbTEnILD1RDtpj+zMr4dHLAd5bkrXTaV7IK8MhZ+/FnbJER+m3
20
+ 6qwDfwHkXqaFFYmZrGZh1lM0h7I0+O4zaRm05ixcMfgWr7lex1zpffk/ttMmd2Sl
21
+ EHIURJmq+GXHoJnK5og2xshhk0rK4qVKCtstsuo1HMf7Lb/tmpGD6td3ibkMPdxf
22
+ p1aZq4K1vmRh9G/bYBzmRwDVNj6K0xQ50d/0JRtdJG6MWe57kfBdmrfG6ZtUCsYU
23
+ gTyScDSKBfUCAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
24
+ BBYEFJbzGHKTBAkaDvK53edSBvuP4wrLMCAGA1UdEQQZMBeBFWRpb25uZS5waGls
25
+ QGdtYWlsLmNvbTAgBgNVHRIEGTAXgRVkaW9ubmUucGhpbEBnbWFpbC5jb20wDQYJ
26
+ KoZIhvcNAQEFBQADggEBAIRuOdnpiKISIGrqWTC4KBnyNkqizjGVu2w2Eh6pxrjm
27
+ QxNJafUokxWzMmFhUhAynUKAq9NMMYtvKpKh9JeZHP5C5hbmCOC596WPG1GHpXLa
28
+ k3jxSjL/pVLkcx1s94/dmKy45N5yX6AxJ50RBMtPpVGTnXCA68plB2hYu7UVhyw5
29
+ x/hfKYaRBs1f/AZVaCHfgcIWSJYZIZ3X32PkYSlWJA2ROd/u25y8upo8myZC92r5
30
+ 43TXU6gCzN7VhxGu/S0jyaQEA7j5tJrhrhfUOCG62B6qhi43N/isFN3PtVwRN5XZ
31
+ ZpR7cUXWbK6hss65VhNnmbSkT3wqsHXyUbr4QNlhYhc=
32
+ -----END CERTIFICATE-----
33
+ date: 2015-05-04 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: json-schema
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 2.5.0
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 2.5.0
49
+ - !ruby/object:Gem::Dependency
50
+ name: activemodel
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 3.0.0
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 3.0.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: bundler
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ - !ruby/object:Gem::Dependency
78
+ name: rake
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: rspec
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '3.2'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '3.2'
105
+ description: A geojson validator.
106
+ email:
107
+ - dionne.phil@gmail.com
108
+ executables: []
109
+ extensions: []
110
+ extra_rdoc_files: []
111
+ files:
112
+ - ".gitignore"
113
+ - ".rspec"
114
+ - ".travis.yml"
115
+ - Gemfile
116
+ - LICENSE.md
117
+ - README.md
118
+ - Rakefile
119
+ - bin/console
120
+ - bin/setup
121
+ - geojsonlint.gemspec
122
+ - lib/geojsonlint.rb
123
+ - lib/geojsonlint/geojson_schema.json
124
+ - lib/geojsonlint/geojson_validator.rb
125
+ - lib/geojsonlint/version.rb
126
+ homepage: http://github.com/can-explore/geojsonlint
127
+ licenses:
128
+ - BSD 3-Clause
129
+ metadata:
130
+ allowed_push_host: https://rubygems.org
131
+ post_install_message:
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 2.4.5
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: A geojson validator.
151
+ test_files: []
Binary file