ogc 0.1.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.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.rubocop.yml +20 -0
  4. data/.travis.yml +5 -0
  5. data/CODE_OF_CONDUCT.md +13 -0
  6. data/Gemfile +4 -0
  7. data/Guardfile +28 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +76 -0
  10. data/Rakefile +10 -0
  11. data/bin/console +14 -0
  12. data/bin/guard +16 -0
  13. data/bin/setup +8 -0
  14. data/lib/ogc.rb +9 -0
  15. data/lib/ogc/clean_xml.rb +13 -0
  16. data/lib/ogc/exceptions.rb +8 -0
  17. data/lib/ogc/exceptions/exception_report.rb +44 -0
  18. data/lib/ogc/exceptions/ogc_exception.rb +5 -0
  19. data/lib/ogc/exceptions/request_error_exception.rb +7 -0
  20. data/lib/ogc/exceptions/request_failed_exception.rb +12 -0
  21. data/lib/ogc/query.rb +11 -0
  22. data/lib/ogc/version.rb +3 -0
  23. data/lib/ogc/web_feature_service.rb +19 -0
  24. data/lib/ogc/web_feature_service/base.rb +95 -0
  25. data/lib/ogc/web_feature_service/get_capabilities.rb +9 -0
  26. data/lib/ogc/web_feature_service/get_feature.rb +14 -0
  27. data/ogc.gemspec +50 -0
  28. data/test/ogc/clean_xml_test.rb +31 -0
  29. data/test/ogc/exceptions/exception_report_test.rb +74 -0
  30. data/test/ogc/exceptions/ogc_exception_test.rb +11 -0
  31. data/test/ogc/exceptions/request_error_exception_test.rb +11 -0
  32. data/test/ogc/exceptions/request_failed_exception_test.rb +25 -0
  33. data/test/ogc/exceptions_test.rb +9 -0
  34. data/test/ogc/query_test.rb +21 -0
  35. data/test/ogc/version_test.rb +15 -0
  36. data/test/ogc/web_feature_service/base_test.rb +145 -0
  37. data/test/ogc/web_feature_service/get_capabilities_test.rb +34 -0
  38. data/test/ogc/web_feature_service/get_feature_test.rb +38 -0
  39. data/test/ogc/web_feature_service_test.rb +22 -0
  40. data/test/ogc_test.rb +7 -0
  41. data/test/test_helper.rb +51 -0
  42. data/test/xml/wfs/exception_report.xml +6 -0
  43. data/test/xml/wfs/fake_report.xml +4 -0
  44. data/test/xml/wfs/get_capabilities_request.xml +2 -0
  45. data/test/xml/wfs/get_capabilities_response.xml +188 -0
  46. data/test/xml/wfs/get_feature_response.xml +28 -0
  47. data/test/xml/wfs/service_exception_report.xml +4 -0
  48. metadata +231 -0
@@ -0,0 +1,38 @@
1
+ require 'test_helper'
2
+
3
+ module Ogc
4
+ module WebFeatureService
5
+ class GetFeatureTest < TestCase
6
+ using CleanXML
7
+
8
+ URL = 'http://localhost/wfs'
9
+ PARAMS = {
10
+ 'version' => '1.0.0',
11
+ 'key' => 'ABCDE',
12
+ 'typeName' => 'HYDROGRAPHY'
13
+ }
14
+ FULL_PARAMS = PARAMS.merge(Base::DEFAULT_PARAMS)
15
+
16
+ setup do
17
+ @base = GetFeature.new(URL, PARAMS)
18
+
19
+ # XML files
20
+ @response = read_file('wfs/get_feature_response')
21
+
22
+ query = FULL_PARAMS.merge(request: GetFeature.request_name).to_query
23
+
24
+ # Get method returns xml response:
25
+ stub_request(:get, "#{URL}?#{query}").to_return(body: @response)
26
+ end
27
+
28
+ test 'class inherits from Base' do
29
+ assert GetFeature < Base
30
+ end
31
+
32
+ test 'get method returns xml response' do
33
+ xml = Nokogiri::XML(@response.clean_xml!).to_xml
34
+ assert_equal xml, @base.get(:HYDROGRAPHY).to_xml
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ require 'active_support/core_ext/string/inflections'
4
+
5
+ module Ogc
6
+ class WebFeatureServiceTest < TestCase
7
+ URL = 'http://localhost/wfs'
8
+ PARAMS = { 'version' => '1.0.0', 'key' => 'ABCDE' }
9
+
10
+ test 'WebFeatureService module is defined' do
11
+ refute_nil WebFeatureService
12
+ end
13
+
14
+ WebFeatureService::SUPPORTED_METHODS.each do |method|
15
+ test "#{method} class method returns #{method.to_s.camelize} instance" do
16
+ klass = "#{WebFeatureService}::#{method.to_s.camelize}".constantize
17
+ instance = WebFeatureService.send(method, URL, PARAMS)
18
+ assert_instance_of klass, instance
19
+ end
20
+ end
21
+ end
22
+ end
data/test/ogc_test.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class OgcTest < Ogc::TestCase
4
+ test 'ogc module is defined' do
5
+ refute_nil ::Ogc
6
+ end
7
+ end
@@ -0,0 +1,51 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+
3
+ require 'ogc'
4
+
5
+ require 'nokogiri'
6
+
7
+ require 'webmock/minitest'
8
+ require 'minitest/pride'
9
+ require 'minitest/autorun'
10
+
11
+ module Ogc
12
+ class TestCase < Minitest::Test
13
+ using CleanXML
14
+
15
+ class << self
16
+ def setup(&block)
17
+ define_method(:setup, &block)
18
+ end
19
+
20
+ def teardown(&block)
21
+ define_method(:teardown, &block)
22
+ end
23
+
24
+ def test(name, &block)
25
+ test_name = "test_#{name.gsub(/\s+/, '_')}".to_sym
26
+ defined = method_defined? test_name
27
+ raise "#{test_name} is already defined in #{self}" if defined
28
+ if block_given?
29
+ define_method(test_name, &block)
30
+ else
31
+ define_method(test_name) do
32
+ flunk "No implementation provided for #{name}"
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ def assert_nothing_raised(*)
39
+ yield
40
+ end
41
+
42
+ def read_file(name)
43
+ File.read(File.join('test/xml', "#{name}.xml"))
44
+ end
45
+
46
+ def read_xml(name, clean = true)
47
+ file = read_file(name)
48
+ Nokogiri::XML(clean ? file.clean_xml! : file)
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" ?>
2
+ <ExceptionReport version="1.1.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="owsExceptionReport.xsd">
3
+ <Exception code="999" locator="INSERT STMT 01">
4
+ <ExceptionText>parse error: missing closing tag for element wkbGeom</ExceptionText>
5
+ </Exception>
6
+ </ExceptionReport>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" ?>
2
+ <FakeReport version="0.9.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc ../wfs/1.0.0/OGC-exception.xsd">
3
+ <ServiceException code="999" locator="INSERT STMT 01"></ServiceException>
4
+ </FakeReport>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0"?>
2
+ <wfs:GetCapabilities xmlns:wfs="http://www.opengis.net/wfs" service="wfs"/>
@@ -0,0 +1,188 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <WFS_Capabilities xmlns="http://www.opengis.net/wfs" xmlns:myns="http://www.someserver.com/myns" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
3
+ <Service>
4
+ <Name>CubeWerx WFS</Name>
5
+ <Title>CubeWerx Web Feature Service</Title>
6
+ <Abstract>Web Feature Server maintained by CubeWerx Inc.</Abstract>
7
+ <OnlineResource>http://www.someserver.com/wfs/cwwfs.cgi?</OnlineResource>
8
+ </Service>
9
+ <Capability>
10
+ <Request>
11
+ <GetCapabilities>
12
+ <DCPType>
13
+ <HTTP>
14
+ <Get onlineResource="http://www.someserver.com/wfs/cwwfs.cgi?" />
15
+ </HTTP>
16
+ </DCPType>
17
+ <DCPType>
18
+ <HTTP>
19
+ <Post onlineResource="http://www.someserver.com/wfs/cwwfs.cgi" />
20
+ </HTTP>
21
+ </DCPType>
22
+ </GetCapabilities>
23
+ <DescribeFeatureType>
24
+ <SchemaDescriptionLanguage>
25
+ <XMLSCHEMA />
26
+ </SchemaDescriptionLanguage>
27
+ <DCPType>
28
+ <HTTP>
29
+ <Get onlineResource="http://www.someserver.com/wfs/cwwfs.cgi?" />
30
+ </HTTP>
31
+ </DCPType>
32
+ <DCPType>
33
+ <HTTP>
34
+ <Post onlineResource="http://www.someserver.com/wfs/cwwfs.cgi" />
35
+ </HTTP>
36
+ </DCPType>
37
+ </DescribeFeatureType>
38
+ <GetFeature>
39
+ <ResultFormat>
40
+ <GML2 />
41
+ </ResultFormat>
42
+ <DCPType>
43
+ <HTTP>
44
+ <Get onlineResource="http://www.someserver.com/wfs/cwwfs.cgi?" />
45
+ </HTTP>
46
+ </DCPType>
47
+ <DCPType>
48
+ <HTTP>
49
+ <Post onlineResource="http://www.someserver.com/wfs/cwwfs.cgi" />
50
+ </HTTP>
51
+ </DCPType>
52
+ </GetFeature>
53
+ <GetFeatureWithLock>
54
+ <ResultFormat>
55
+ <GML2 />
56
+ </ResultFormat>
57
+ <DCPType>
58
+ <HTTP>
59
+ <Get onlineResource="http://www.someserver.com/wfs/cwwfs.cgi?" />
60
+ </HTTP>
61
+ </DCPType>
62
+ <DCPType>
63
+ <HTTP>
64
+ <Post onlineResource="http://www.someserver.com/wfs/cwwfs.cgi" />
65
+ </HTTP>
66
+ </DCPType>
67
+ </GetFeatureWithLock>
68
+ <Transaction>
69
+ <DCPType>
70
+ <HTTP>
71
+ <Get onlineResource="http://www.someserver.com/wfs/cwwfs.cgi?" />
72
+ </HTTP>
73
+ </DCPType>
74
+ <DCPType>
75
+ <HTTP>
76
+ <Post onlineResource="http://www.someserver.com/wfs/cwwfs.cgi" />
77
+ </HTTP>
78
+ </DCPType>
79
+ </Transaction>
80
+ <LockFeature>
81
+ <DCPType>
82
+ <HTTP>
83
+ <Get onlineResource="http://www.someserver.com/wfs/cwwfs.cgi?" />
84
+ </HTTP>
85
+ </DCPType>
86
+ <DCPType>
87
+ <HTTP>
88
+ <Post onlineResource="http://www.someserver.com/wfs/cwwfs.cgi" />
89
+ </HTTP>
90
+ </DCPType>
91
+ </LockFeature>
92
+ </Request>
93
+ </Capability>
94
+ <FeatureTypeList>
95
+ <Operations>
96
+ <Query />
97
+ </Operations>
98
+ <FeatureType>
99
+ <Name>myns:BUILTUPA_1M</Name>
100
+ <SRS>EPSG:4326</SRS>
101
+ <Operations>
102
+ <Insert />
103
+ <Update />
104
+ <Delete />
105
+ </Operations>
106
+ <LatLongBoundingBox minx="-179.1296081543" miny="-53.167423248291" maxx="178.44325256348" maxy="70.992721557617" />
107
+ </FeatureType>
108
+ <FeatureType>
109
+ <Name>myns:COASTL_1M</Name>
110
+ <SRS>EPSG:4326</SRS>
111
+ <LatLongBoundingBox minx="-179.99942016602" miny="-85.582763671875" maxx="179.9999" maxy="83.627418518066" />
112
+ </FeatureType>
113
+ <FeatureType>
114
+ <Name>myns:ELEVP_1M</Name>
115
+ <SRS>EPSG:4326</SRS>
116
+ <Operations>
117
+ <Insert />
118
+ <Update />
119
+ <Delete />
120
+ </Operations>
121
+ <LatLongBoundingBox minx="-179.9984893715" miny="-89.83837892767" maxx="179.99234007206" maxy="83.520408603363" />
122
+ </FeatureType>
123
+ <FeatureType>
124
+ <Name>myns:OCEANSEA_1M</Name>
125
+ <SRS>EPSG:4326</SRS>
126
+ <Operations>
127
+ <Insert />
128
+ <Update />
129
+ <Delete />
130
+ </Operations>
131
+ <LatLongBoundingBox minx="-179.9999" miny="-85.582763671875" maxx="179.99996948242" maxy="89.9999" />
132
+ </FeatureType>
133
+ <FeatureType>
134
+ <Name>myns:RAILRDL_1M</Name>
135
+ <SRS>EPSG:4326</SRS>
136
+ <Operations>
137
+ <Insert />
138
+ <Update />
139
+ <Delete />
140
+ </Operations>
141
+ <LatLongBoundingBox minx="-165.24467468262" miny="-53.138427734375" maxx="179.60989379883" maxy="78.16796875" />
142
+ </FeatureType>
143
+ <FeatureType>
144
+ <Name>myns:TREESA_1M</Name>
145
+ <SRS>EPSG:4326</SRS>
146
+ <Operations>
147
+ <Insert />
148
+ <Update />
149
+ <Delete />
150
+ </Operations>
151
+ <LatLongBoundingBox minx="-139.99757385254" miny="25.281270980835" maxx="-52.661720275879" maxy="66.718765258789" />
152
+ </FeatureType>
153
+ </FeatureTypeList>
154
+ <ogc:Filter_Capabilities>
155
+ <ogc:Spatial_Capabilities>
156
+ <ogc:Spatial_Operators>
157
+ <ogc:BBOX />
158
+ <ogc:Equals />
159
+ <ogc:Disjoint />
160
+ <ogc:Intersect />
161
+ <ogc:Touches />
162
+ <ogc:Crosses />
163
+ <ogc:Contains />
164
+ <ogc:Overlaps />
165
+ </ogc:Spatial_Operators>
166
+ </ogc:Spatial_Capabilities>
167
+ <ogc:Scalar_Capabilities>
168
+ <ogc:Logical_Operators />
169
+ <ogc:Comparison_Operators>
170
+ <ogc:Simple_Comparisons />
171
+ <ogc:Like />
172
+ <ogc:Between />
173
+ <ogc:NullCheck />
174
+ </ogc:Comparison_Operators>
175
+ <ogc:Arithmetic_Operators>
176
+ <ogc:Simple_Arithmetic />
177
+ <ogc:Functions>
178
+ <ogc:Function_Names>
179
+ <ogc:Function_Name nArgs="1">MIN</ogc:Function_Name>
180
+ <ogc:Function_Name nArgs="1">MAX</ogc:Function_Name>
181
+ <ogc:Function_Name nArgs="1">COUNT</ogc:Function_Name>
182
+ <ogc:Function_Name nArgs="1">DISTINCT</ogc:Function_Name>
183
+ </ogc:Function_Names>
184
+ </ogc:Functions>
185
+ </ogc:Arithmetic_Operators>
186
+ </ogc:Scalar_Capabilities>
187
+ </ogc:Filter_Capabilities>
188
+ </WFS_Capabilities>
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" ?>
2
+ <wfs:FeatureCollection xmlns="http://www.someserver.com/myns" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.someserver.com/myns HYDROGRAPHY.xsd http://www.opengis.net/wfs ../wfs/1.0.0/WFS-basic.xsd">
3
+ <gml:boundedBy>
4
+ <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
5
+ <gml:coordinates>10,10 20,20</gml:coordinates>
6
+ </gml:Box>
7
+ </gml:boundedBy>
8
+ <gml:featureMember>
9
+ <HYDROGRAPHY fid="HYDROGRAPHY.450">
10
+ <GEOTEMP>
11
+ <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
12
+ <gml:coordinates>10,10</gml:coordinates>
13
+ </gml:Point>
14
+ </GEOTEMP>
15
+ <DEPTH>565</DEPTH>
16
+ </HYDROGRAPHY>
17
+ </gml:featureMember>
18
+ <gml:featureMember>
19
+ <HYDROGRAPHY fid="HYDROGRAPHY.450">
20
+ <GEOTEMP>
21
+ <gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
22
+ <gml:coordinates>10,11</gml:coordinates>
23
+ </gml:Point>
24
+ </GEOTEMP>
25
+ <DEPTH>566</DEPTH>
26
+ </HYDROGRAPHY>
27
+ </gml:featureMember>
28
+ </wfs:FeatureCollection>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" ?>
2
+ <ServiceExceptionReport version="1.2.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc ../wfs/1.0.0/OGC-exception.xsd">
3
+ <ServiceException code="999" locator="INSERT STMT 01">Unable to INSERT STMT</ServiceException>
4
+ </ServiceExceptionReport>
metadata ADDED
@@ -0,0 +1,231 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ogc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Geoffrey Roguelon
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-11-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.6.6
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.6'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.6.6
33
+ - !ruby/object:Gem::Dependency
34
+ name: activesupport
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '4.0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '5.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '5.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: bundler
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.10'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '1.10'
67
+ - !ruby/object:Gem::Dependency
68
+ name: rake
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '10.0'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '10.0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: minitest
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '5.8'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '5.8'
95
+ - !ruby/object:Gem::Dependency
96
+ name: guard
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '2.13'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '2.13'
109
+ - !ruby/object:Gem::Dependency
110
+ name: guard-minitest
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '2.4'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '2.4'
123
+ - !ruby/object:Gem::Dependency
124
+ name: webmock
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '1.22'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '1.22'
137
+ - !ruby/object:Gem::Dependency
138
+ name: rubocop
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '0.35'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: '0.35'
151
+ description: |2
152
+ This gems allow you to make calls in using Web Feature Service protocol
153
+ defined by OGC (Open Geospatial Consortium) organization.
154
+ email:
155
+ - geoffrey.roguelon@gmail.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".gitignore"
161
+ - ".rubocop.yml"
162
+ - ".travis.yml"
163
+ - CODE_OF_CONDUCT.md
164
+ - Gemfile
165
+ - Guardfile
166
+ - LICENSE.txt
167
+ - README.md
168
+ - Rakefile
169
+ - bin/console
170
+ - bin/guard
171
+ - bin/setup
172
+ - lib/ogc.rb
173
+ - lib/ogc/clean_xml.rb
174
+ - lib/ogc/exceptions.rb
175
+ - lib/ogc/exceptions/exception_report.rb
176
+ - lib/ogc/exceptions/ogc_exception.rb
177
+ - lib/ogc/exceptions/request_error_exception.rb
178
+ - lib/ogc/exceptions/request_failed_exception.rb
179
+ - lib/ogc/query.rb
180
+ - lib/ogc/version.rb
181
+ - lib/ogc/web_feature_service.rb
182
+ - lib/ogc/web_feature_service/base.rb
183
+ - lib/ogc/web_feature_service/get_capabilities.rb
184
+ - lib/ogc/web_feature_service/get_feature.rb
185
+ - ogc.gemspec
186
+ - test/ogc/clean_xml_test.rb
187
+ - test/ogc/exceptions/exception_report_test.rb
188
+ - test/ogc/exceptions/ogc_exception_test.rb
189
+ - test/ogc/exceptions/request_error_exception_test.rb
190
+ - test/ogc/exceptions/request_failed_exception_test.rb
191
+ - test/ogc/exceptions_test.rb
192
+ - test/ogc/query_test.rb
193
+ - test/ogc/version_test.rb
194
+ - test/ogc/web_feature_service/base_test.rb
195
+ - test/ogc/web_feature_service/get_capabilities_test.rb
196
+ - test/ogc/web_feature_service/get_feature_test.rb
197
+ - test/ogc/web_feature_service_test.rb
198
+ - test/ogc_test.rb
199
+ - test/test_helper.rb
200
+ - test/xml/wfs/exception_report.xml
201
+ - test/xml/wfs/fake_report.xml
202
+ - test/xml/wfs/get_capabilities_request.xml
203
+ - test/xml/wfs/get_capabilities_response.xml
204
+ - test/xml/wfs/get_feature_response.xml
205
+ - test/xml/wfs/service_exception_report.xml
206
+ homepage: https://github.com/GRoguelon/ogc
207
+ licenses:
208
+ - MIT
209
+ metadata:
210
+ allowed_push_host: https://rubygems.org
211
+ post_install_message:
212
+ rdoc_options: []
213
+ require_paths:
214
+ - lib
215
+ required_ruby_version: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: '2.1'
220
+ required_rubygems_version: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: '0'
225
+ requirements: []
226
+ rubyforge_project:
227
+ rubygems_version: 2.2.5
228
+ signing_key:
229
+ specification_version: 4
230
+ summary: Allow you to use WFS protocol defined by OGC.
231
+ test_files: []