ogc 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []