rgeo-geojson 1.0.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8822528ccb5ba382e80fc9713194331cd1d959c330268255cb2209de89fbcaa4
4
- data.tar.gz: 5083e680f0aff2d54ceadfb3c7304e5ade6890cb93990e10ca51f0da2d5afd33
3
+ metadata.gz: d19417fa49fc036ec401b5d31bcd199127f4763271ea4dabf9ba71c42f52c597
4
+ data.tar.gz: 5cc770263b8cf0fabaab1afc4e5460ba09286817eb6e6c5141ceb60a79e141fe
5
5
  SHA512:
6
- metadata.gz: 0d5433b8f2993175a546ee059e220ce0c6b4146eab7d87dd4c183809a998565125696865f46535f7fda09beb723103b12143a5cc5a501f31649ea7a396e5eac1
7
- data.tar.gz: 6eacff7a1aefc10ae96b4ce0eca4efab188a7ddcd905b6fea17af30d15a676b98e08e352553bcccceb6c30c27997dce01e92817d10f76f99a87d6feb0ec343e3
6
+ metadata.gz: 2674558dd3cc38448be259d1559b8e8e30a6320a35c20d09c6ddb7e16a02cd5c6ef78cbf6629793781921a6dcae8ce5360ade73fb9e0b35b7cc52c362c2dcc80
7
+ data.tar.gz: 42cbf6b73fede00bd88970eb29cecdd6a6128450615cd366da2bae91a40243182ed17dccbd21c7e7f97a8a9622f1f9ac402f2ff9b64545eb69b0f5cb488bc302
data/History.md CHANGED
@@ -1,4 +1,16 @@
1
- ### 0.4.2 / 2016-1-5
1
+ ### 2.0.0 / 2018-01-13
2
+
3
+ * Remove :json_parser option #38
4
+ * Use stdlib JSON parser
5
+
6
+
7
+ ### 1.0.0 / 2017-12-02
8
+
9
+ * Require ruby 2.1+
10
+ * Require rgeo 1.0+ #36
11
+
12
+
13
+ ### 0.4.2 / 2016-01-05
2
14
 
3
15
  * Fix Feature#inspect #21
4
16
 
@@ -10,9 +22,9 @@
10
22
 
11
23
  ### 0.4.0 / 2015-12-28
12
24
 
13
- * Removed error handling for missing parser gems
14
- * Removed class variables in Coder
15
- * Removed rgeo/geo_json.rb
25
+ * Remove error handling for missing parser gems
26
+ * Remove class variables in Coder
27
+ * Remove rgeo/geo_json.rb
16
28
 
17
29
 
18
30
  ### 0.3.3 / 2015-12-23
@@ -24,7 +36,7 @@
24
36
  ### 0.3.2 / 2015-12-10
25
37
 
26
38
  * Faster coordinates methods (tneems) #18
27
- * Requires rgeo 0.5.0+
39
+ * Require rgeo 0.5.0+
28
40
 
29
41
 
30
42
  ### 0.3.1 / 2014-05-29
data/README.md CHANGED
@@ -25,13 +25,13 @@ Example:
25
25
  require 'rgeo/geo_json'
26
26
 
27
27
  str1 = '{"type":"Point","coordinates":[1,2]}'
28
- geom = RGeo::GeoJSON.decode(str1, json_parser: :json)
29
- geom.as_text # => "POINT(1.0 2.0)"
28
+ geom = RGeo::GeoJSON.decode(str1)
29
+ geom.as_text # => "POINT (1.0 2.0)"
30
30
 
31
31
  str2 = '{"type":"Feature","geometry":{"type":"Point","coordinates":[2.5,4.0]},"properties":{"color":"red"}}'
32
- feature = RGeo::GeoJSON.decode(str2, json_parser: :json)
32
+ feature = RGeo::GeoJSON.decode(str2)
33
33
  feature['color'] # => 'red'
34
- feature.geometry.as_text # => "POINT(2.5 4.0)"
34
+ feature.geometry.as_text # => "POINT (2.5 4.0)"
35
35
 
36
36
  hash = RGeo::GeoJSON.encode(feature)
37
37
  hash.to_json == str2 # => true
@@ -39,10 +39,10 @@ hash.to_json == str2 # => true
39
39
 
40
40
  ## Install
41
41
 
42
- `RGeo::GeoJSON` has the following requirements:
42
+ `RGeo::GeoJSON` requires:
43
43
 
44
- * Ruby 1.9.3 or later
45
- * rgeo 0.5.0 or later.
44
+ * Ruby 2.1.0 or later
45
+ * rgeo 1.0.0 or later
46
46
 
47
47
  Include in your bundle:
48
48
 
@@ -56,7 +56,7 @@ Install `rgeo-geojson` as a gem:
56
56
  gem install rgeo-geojson
57
57
  ```
58
58
 
59
- See the README for the "rgeo" gem, a required dependency, for further installation information.
59
+ See the README for the `rgeo` gem, a required dependency, for further installation information.
60
60
 
61
61
  ### Development and support
62
62
 
@@ -72,7 +72,7 @@ Report bugs on Github issues at http://github.com/rgeo/rgeo-geojson/issues
72
72
 
73
73
  RGeo was created by Daniel Azuma (http://www.daniel-azuma.com).
74
74
 
75
- Development is supported by [Pirq](http://www.pirq.com) and
75
+ Development is/was supported by [Pirq](http://www.pirq.com) and
76
76
  [Neighborland](https://neighborland.com).
77
77
 
78
78
  ### License
@@ -3,3 +3,4 @@ require "rgeo/geo_json/version"
3
3
  require "rgeo/geo_json/entities"
4
4
  require "rgeo/geo_json/coder"
5
5
  require "rgeo/geo_json/interface"
6
+ require "json"
@@ -20,37 +20,9 @@ module RGeo
20
20
  # RGeo::GeoJSON::EntityFactory, which generates objects of type
21
21
  # RGeo::GeoJSON::Feature or RGeo::GeoJSON::FeatureCollection.
22
22
  # See RGeo::GeoJSON::EntityFactory for more information.
23
- # [<tt>:json_parser</tt>]
24
- # Specifies a JSON parser to use when decoding a String or IO
25
- # object. The value may be a Proc object taking the string as the
26
- # sole argument and returning the JSON hash, or it may be one of
27
- # the special values <tt>:json</tt>, <tt>:yajl</tt>, or
28
- # <tt>:active_support</tt>. Setting one of those special values
29
- # will require the corresponding library to be available. Note
30
- # that the <tt>:json</tt> library is present in the standard
31
- # library in Ruby 1.9.
32
- # If a parser is not specified, then the decode method will not
33
- # accept a String or IO object; it will require a Hash.
34
-
35
23
  def initialize(opts = {})
36
24
  @geo_factory = opts[:geo_factory] || RGeo::Cartesian.preferred_factory
37
25
  @entity_factory = opts[:entity_factory] || EntityFactory.instance
38
- @json_parser = opts[:json_parser]
39
- case @json_parser
40
- when :json
41
- require "json" unless defined?(JSON)
42
- @json_parser = proc { |str| JSON.parse(str) }
43
- when :yajl
44
- require "yajl" unless defined?(Yajl)
45
- @json_parser = proc { |str| Yajl::Parser.new.parse(str) }
46
- when :active_support
47
- require "active_support/json" unless defined?(ActiveSupport::JSON)
48
- @json_parser = proc { |str| ActiveSupport::JSON.decode(str) }
49
- when Proc, nil
50
- # Leave as is
51
- else
52
- raise ::ArgumentError, "Unrecognzied json_parser: #{@json_parser.inspect}"
53
- end
54
26
  @num_coordinates = 2
55
27
  @num_coordinates += 1 if @geo_factory.property(:has_z_coordinate)
56
28
  @num_coordinates += 1 if @geo_factory.property(:has_m_coordinate)
@@ -92,7 +64,7 @@ module RGeo
92
64
  input = input.read rescue nil
93
65
  end
94
66
  if input.is_a?(String)
95
- input = @json_parser.call(input) rescue nil
67
+ input = JSON.parse(input)
96
68
  end
97
69
  unless input.is_a?(Hash)
98
70
  return nil
@@ -124,6 +96,8 @@ module RGeo
124
96
 
125
97
  attr_reader :entity_factory
126
98
 
99
+ private
100
+
127
101
  def _encode_feature(object) # :nodoc:
128
102
  json = {
129
103
  "type" => "Feature",
@@ -31,18 +31,6 @@ module RGeo
31
31
  # RGeo::GeoJSON::EntityFactory, which generates objects of type
32
32
  # RGeo::GeoJSON::Feature or RGeo::GeoJSON::FeatureCollection.
33
33
  # See RGeo::GeoJSON::EntityFactory for more information.
34
- # [<tt>:json_parser</tt>]
35
- # Specifies a JSON parser to use when decoding a String or IO
36
- # object. The value may be a Proc object taking the string as the
37
- # sole argument and returning the JSON hash, or it may be one of
38
- # the special values <tt>:json</tt>, <tt>:yajl</tt>, or
39
- # <tt>:active_support</tt>. Setting one of those special values
40
- # will require the corresponding library to be available. Note
41
- # that the <tt>:json</tt> library is present in the standard
42
- # library in Ruby 1.9, but requires the "json" gem in Ruby 1.8.
43
- # If a parser is not specified, then the decode method will not
44
- # accept a String or IO object; it will require a Hash.
45
-
46
34
  def decode(input_, opts = {})
47
35
  Coder.new(opts).decode(input_)
48
36
  end
@@ -63,18 +51,6 @@ module RGeo
63
51
  # RGeo::GeoJSON::EntityFactory, which generates objects of type
64
52
  # RGeo::GeoJSON::Feature or RGeo::GeoJSON::FeatureCollection.
65
53
  # See RGeo::GeoJSON::EntityFactory for more information.
66
- # [<tt>:json_parser</tt>]
67
- # Specifies a JSON parser to use when decoding a String or IO
68
- # object. The value may be a Proc object taking the string as the
69
- # sole argument and returning the JSON hash, or it may be one of
70
- # the special values <tt>:json</tt>, <tt>:yajl</tt>, or
71
- # <tt>:active_support</tt>. Setting one of those special values
72
- # will require the corresponding library to be available. Note
73
- # that the <tt>:json</tt> library is present in the standard
74
- # library in Ruby 1.9, but requires the "json" gem in Ruby 1.8.
75
- # If a parser is not specified, then the decode method will not
76
- # accept a String or IO object; it will require a Hash.
77
-
78
54
  def coder(opts = {})
79
55
  Coder.new(opts)
80
56
  end
@@ -1,5 +1,5 @@
1
1
  module RGeo
2
2
  module GeoJSON
3
- VERSION = "1.0.0".freeze
3
+ VERSION = "2.0.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rgeo-geojson
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Azuma
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-12-02 00:00:00.000000000 Z
12
+ date: 2018-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rgeo
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  version: '0'
106
106
  requirements: []
107
107
  rubyforge_project:
108
- rubygems_version: 2.7.0
108
+ rubygems_version: 2.7.4
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: Convert RGeo data to and from GeoJSON.