charta 0.2.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +5 -5
  2. data/charta.gemspec +21 -20
  3. data/lib/charta/bounding_box.rb +5 -1
  4. data/lib/charta/coordinates.rb +65 -0
  5. data/lib/charta/ewkt_serializer.rb +101 -0
  6. data/lib/charta/factory/ewkt_feature_builder.rb +17 -0
  7. data/lib/charta/factory/feature_factory_base.rb +15 -0
  8. data/lib/charta/factory/simple_feature_factory.rb +50 -0
  9. data/lib/charta/factory/simple_geometry_factory.rb +46 -0
  10. data/lib/charta/factory/srid_provider.rb +36 -0
  11. data/lib/charta/factory/transformers/ewkt_passthrough.rb +20 -0
  12. data/lib/charta/factory/transformers/ewkt_transformer.rb +20 -0
  13. data/lib/charta/factory/transformers/ewkt_transformer_chain.rb +42 -0
  14. data/lib/charta/factory/transformers/from_geo_json_transformer.rb +20 -0
  15. data/lib/charta/factory/transformers/from_gml_transformer.rb +20 -0
  16. data/lib/charta/factory/transformers/from_kml_transformer.rb +20 -0
  17. data/lib/charta/factory/transformers/from_wkb_transformer.rb +24 -0
  18. data/lib/charta/factory/transformers/transformation_error.rb +10 -0
  19. data/lib/charta/geo_json.rb +12 -124
  20. data/lib/charta/geometry.rb +70 -16
  21. data/lib/charta/geometry_collection.rb +6 -4
  22. data/lib/charta/gml.rb +18 -2
  23. data/lib/charta/gml_import.rb +24 -24
  24. data/lib/charta/kml.rb +21 -3
  25. data/lib/charta/multi_polygon.rb +1 -1
  26. data/lib/charta/point.rb +6 -0
  27. data/lib/charta/polygon.rb +5 -0
  28. data/lib/charta/version.rb +1 -1
  29. data/lib/charta.rb +39 -87
  30. data/lib/rgeo/svg.rb +44 -44
  31. metadata +78 -44
  32. data/.gitignore +0 -11
  33. data/.gitlab-ci.yml +0 -14
  34. data/.travis.yml +0 -7
  35. data/CODE_OF_CONDUCT.md +0 -74
  36. data/Gemfile +0 -4
  37. data/LICENSE.txt +0 -21
  38. data/README.md +0 -44
  39. data/Rakefile +0 -10
data/lib/charta.rb CHANGED
@@ -1,17 +1,18 @@
1
1
  # Gathers geomatic calculations
2
2
  # Completes RGeo
3
+ require 'bigdecimal'
4
+ require 'bigdecimal/util'
3
5
  require 'rgeo'
4
6
  require 'rgeo/proj4'
5
- require 'charta/geometry'
6
- require 'charta/geometry_collection'
7
- require 'charta/point'
8
- require 'charta/line_string'
9
- require 'charta/polygon'
10
- require 'charta/multi_polygon'
11
- require 'charta/bounding_box'
12
- require 'charta/geo_json'
13
- require 'charta/gml'
14
- require 'charta/kml'
7
+ require 'zeitwerk'
8
+
9
+ loader = Zeitwerk::Loader.for_gem
10
+ loader.inflector.inflect(
11
+ 'geo_json' => 'GeoJSON',
12
+ 'gml' => 'GML',
13
+ 'kml' => 'KML'
14
+ )
15
+ loader.setup
15
16
 
16
17
  unless RGeo::CoordSys::Proj4.supported?
17
18
  puts "Proj4 is not supported. Some actions won't work"
@@ -26,75 +27,27 @@ module Charta
26
27
  }.freeze
27
28
 
28
29
  class << self
30
+ def default_feature_factory=(factory)
31
+ @default_feature_factory = factory
32
+ @geometry_factory = nil
33
+ end
34
+
35
+ # @deprecated This is deprecated and will be removed in 0.4
36
+ def default_feature_factory
37
+ @default_feature_factory || (self.default_feature_factory = Factory::SimpleFeatureFactory.build)
38
+ end
39
+
40
+ def geometry_factory
41
+ @geometry_factory ||= Factory::SimpleGeometryFactory.new(feature_factory: default_feature_factory)
42
+ end
43
+
44
+ # @deprecated This is deprecated and will be removed in 0.4
29
45
  def new_feature(coordinates, srs = nil, format = nil, _flatten_collection = true, _options = {})
30
- geom_ewkt = nil
31
- if coordinates.is_a?(RGeo::Feature::Instance)
32
- return Geometry.feature(coordinates)
33
- elsif coordinates.is_a?(::Charta::Geometry)
34
- return coordinates
35
- elsif coordinates.to_s =~ /\A[[:space:]]*\z/
36
- geom_ewkt = empty_geometry(srs).to_ewkt
37
- elsif coordinates.is_a?(Hash) || (coordinates.is_a?(String) && ::Charta::GeoJSON.valid?(coordinates)) # GeoJSON
38
- srid = srs ? find_srid(srs) : :WGS84
39
- geom_ewkt = ::Charta::GeoJSON.new(coordinates, srid).to_ewkt
40
- elsif coordinates.is_a?(String)
41
- geom_ewkt = if coordinates =~ /\A[A-F0-9]+\z/ # WKB
42
- if srs && srid = find_srid(srs)
43
- generate_ewkt RGeo::Geos.factory(srid: srid).parse_wkb(coordinates)
44
- else
45
- generate_ewkt Geometry.factory.parse_wkb(coordinates)
46
- end
47
- elsif format == 'gml' && ::Charta::GML.valid?(coordinates)
48
- # required format 'cause kml geometries return empty instead of failing
49
- ::Charta::GML.new(coordinates, srid).to_ewkt
50
- elsif format == 'kml' && ::Charta::KML.valid?(coordinates)
51
- ::Charta::KML.new(coordinates).to_ewkt
52
- elsif coordinates =~ /^SRID\=\d+\;/i
53
- if feature = Geometry.feature(coordinates)
54
- generate_ewkt feature
55
- else
56
- Charta::GeometryCollection.empty.feature
57
- end
58
- else # WKT expected
59
- if srs && srid = find_srid(srs)
60
- begin
61
- f = RGeo::Geos.factory(srid: srid).parse_wkt(coordinates)
62
- rescue RGeo::Error::ParseError => e
63
- raise "Invalid EWKT (#{e.message}): #{coordinates}"
64
- end
65
- generate_ewkt f
66
- else
67
- generate_ewkt Geometry.feature(coordinates)
68
- end
69
- end
70
- else # Default for RGeo
71
- geom_ewkt = generate_ewkt coordinates
72
- end
73
- if geom_ewkt.to_s =~ /\A[[:space:]]*\z/
74
- raise ArgumentError, "Invalid data: coordinates=#{coordinates.inspect}, srid=#{srid.inspect}"
75
- end
76
- Geometry.feature(geom_ewkt)
46
+ default_feature_factory.new_feature(coordinates, srs: srs, format: format)
77
47
  end
78
48
 
79
49
  def new_geometry(coordinates, srs = nil, format = nil, _flatten_collection = true, _options = {})
80
- return coordinates if coordinates.is_a?(::Charta::Geometry)
81
- feature = Charta.new_feature(coordinates, srs, format, _flatten_collection, _options)
82
- type = feature.geometry_type
83
- geom = case type
84
- when RGeo::Feature::Point then
85
- Point.new(feature)
86
- when RGeo::Feature::LineString then
87
- LineString.new(feature)
88
- when RGeo::Feature::Polygon then
89
- Polygon.new(feature)
90
- when RGeo::Feature::MultiPolygon then
91
- MultiPolygon.new(feature)
92
- when RGeo::Feature::GeometryCollection then
93
- GeometryCollection.new(feature)
94
- else
95
- Geometry.new(feature)
96
- end
97
- geom
50
+ geometry_factory.new_geometry(coordinates, srs: srs, format: format)
98
51
  end
99
52
 
100
53
  def new_point(lat, lon, srid = 4326)
@@ -106,12 +59,18 @@ module Charta
106
59
  options[:srid] ||= new_geometry(points.first).srid if points.any?
107
60
  options[:srid] ||= 4326
108
61
 
109
- ewkt = "SRID=#{options[:srid]};LINESTRING(" + points.map { |wkt| p = new_geometry(wkt); "#{p.x} #{p.y}" }.join(', ') + ')'
62
+ points_coordinates = points.map do |wkt|
63
+ p = new_geometry(wkt)
64
+
65
+ "#{p.x} #{p.y}"
66
+ end
67
+
68
+ ewkt = "SRID=#{options[:srid]};LINESTRING(#{points_coordinates.join(', ')})"
110
69
  new_geometry(ewkt)
111
70
  end
112
71
 
113
72
  def empty_geometry(srid = :WGS84)
114
- GeometryCollection.empty(srid)
73
+ geometry_factory.empty_geometry(srid)
115
74
  end
116
75
 
117
76
  def generate_ewkt(feature)
@@ -138,23 +97,16 @@ module Charta
138
97
  end
139
98
 
140
99
  # Check and returns the SRID matching with srname or SRID.
100
+ # @deprecated
141
101
  def find_srid(srname_or_srid)
142
- if srname_or_srid.to_s =~ /\Aurn:ogc:def:crs:.*\z/
143
- x = srname_or_srid.split(':').last.upcase.to_sym
144
- SRS[x] || x
145
- elsif srname_or_srid.to_s =~ /\AEPSG::?(\d{4,5})\z/
146
- srname_or_srid.split(':').last
147
- elsif srname_or_srid.to_s =~ /\A\d+\z/
148
- srname_or_srid.to_i
149
- else
150
- SRS[srname_or_srid] || srname_or_srid
151
- end
102
+ Factory::SridProvider.build.find(srname_or_srid)
152
103
  end
153
104
 
154
105
  def from(format, data)
155
106
  unless respond_to?("from_#{format}")
156
107
  raise "Unknown format: #{format.inspect}"
157
108
  end
109
+
158
110
  send("from_#{format}", data)
159
111
  end
160
112
 
data/lib/rgeo/svg.rb CHANGED
@@ -7,63 +7,63 @@ module RGeo
7
7
 
8
8
  protected
9
9
 
10
- def encode_point(feature)
11
- 'M' + coordinates(feature)
12
- end
10
+ def encode_point(feature)
11
+ 'M' + coordinates(feature)
12
+ end
13
13
 
14
- def encode_multi_point(feature)
15
- points = []
16
- feature.each do |point|
17
- points << encode_point(point)
14
+ def encode_multi_point(feature)
15
+ points = []
16
+ feature.each do |point|
17
+ points << encode_point(point)
18
+ end
19
+ points.join(' ')
18
20
  end
19
- points.join(' ')
20
- end
21
21
 
22
- def encode_line_string(feature)
23
- points = []
24
- feature.points.each do |point|
25
- points << coordinates(point)
22
+ def encode_line_string(feature)
23
+ points = []
24
+ feature.points.each do |point|
25
+ points << coordinates(point)
26
+ end
27
+ 'M' + points.join('L')
26
28
  end
27
- 'M' + points.join('L')
28
- end
29
29
 
30
- def encode_multi_line_string(feature)
31
- line_strings = []
32
- feature.each do |line_string|
33
- line_strings << encode_line_string(line_string)
30
+ def encode_multi_line_string(feature)
31
+ line_strings = []
32
+ feature.each do |line_string|
33
+ line_strings << encode_line_string(line_string)
34
+ end
35
+ line_strings.join(' ')
34
36
  end
35
- line_strings.join(' ')
36
- end
37
37
 
38
- def encode_polygon(feature)
39
- rings = []
40
- # TODO: Optimize useless last point repetition
41
- rings << encode_line_string(feature.exterior_ring) + 'Z'
42
- feature.interior_rings.each do |ring|
43
- rings << encode_line_string(ring) + 'Z'
38
+ def encode_polygon(feature)
39
+ rings = []
40
+ # TODO: Optimize useless last point repetition
41
+ rings << encode_line_string(feature.exterior_ring) + 'Z'
42
+ feature.interior_rings.each do |ring|
43
+ rings << encode_line_string(ring) + 'Z'
44
+ end
45
+ rings.join(' ')
44
46
  end
45
- rings.join(' ')
46
- end
47
47
 
48
- def encode_multi_polygon(feature)
49
- polygons = []
50
- feature.each do |polygon|
51
- polygons << encode_polygon(polygon)
48
+ def encode_multi_polygon(feature)
49
+ polygons = []
50
+ feature.each do |polygon|
51
+ polygons << encode_polygon(polygon)
52
+ end
53
+ polygons.join(' ')
52
54
  end
53
- polygons.join(' ')
54
- end
55
55
 
56
- def encode_geometry_collection(feature)
57
- geometries = []
58
- feature.each do |geometry|
59
- geometries << encode(geometry)
56
+ def encode_geometry_collection(feature)
57
+ geometries = []
58
+ feature.each do |geometry|
59
+ geometries << encode(geometry)
60
+ end
61
+ geometries.join(' ')
60
62
  end
61
- geometries.join(' ')
62
- end
63
63
 
64
- def coordinates(feature)
65
- feature.x.to_s + ',' + feature.y.to_s
66
- end
64
+ def coordinates(feature)
65
+ feature.x.to_s + ',' + feature.y.to_s
66
+ end
67
67
  end
68
68
  end
69
69
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: charta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - Brice TEXIER
7
+ - Ekylibre developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-30 00:00:00.000000000 Z
11
+ date: 2021-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.8.0
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: nokogiri
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -30,70 +58,70 @@ dependencies:
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: '1.0'
61
+ version: '2.0'
34
62
  type: :runtime
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: '1.0'
68
+ version: '2.0'
41
69
  - !ruby/object:Gem::Dependency
42
- name: json
70
+ name: rgeo-geojson
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
- - - ">="
73
+ - - "~>"
46
74
  - !ruby/object:Gem::Version
47
- version: 1.8.0
75
+ version: '2.0'
48
76
  type: :runtime
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
- - - ">="
80
+ - - "~>"
53
81
  - !ruby/object:Gem::Version
54
- version: 1.8.0
82
+ version: '2.0'
55
83
  - !ruby/object:Gem::Dependency
56
- name: rgeo-geojson
84
+ name: rgeo-proj4
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
87
  - - "~>"
60
88
  - !ruby/object:Gem::Version
61
- version: '1.0'
89
+ version: '2.0'
62
90
  type: :runtime
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
94
  - - "~>"
67
95
  - !ruby/object:Gem::Version
68
- version: '1.0'
96
+ version: '2.0'
69
97
  - !ruby/object:Gem::Dependency
70
- name: rgeo-proj4
98
+ name: victor
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: '1.0'
103
+ version: 0.3.3
76
104
  type: :runtime
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: '1.0'
110
+ version: 0.3.3
83
111
  - !ruby/object:Gem::Dependency
84
- name: activesupport
112
+ name: zeitwerk
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: '5.0'
117
+ version: 2.4.0
90
118
  type: :runtime
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: '5.0'
124
+ version: 2.4.0
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: bundler
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -109,65 +137,72 @@ dependencies:
109
137
  - !ruby/object:Gem::Version
110
138
  version: '2.0'
111
139
  - !ruby/object:Gem::Dependency
112
- name: rake
140
+ name: minitest
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - "~>"
116
144
  - !ruby/object:Gem::Version
117
- version: '10.0'
145
+ version: '5.0'
118
146
  type: :development
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: '10.0'
152
+ version: '5.0'
125
153
  - !ruby/object:Gem::Dependency
126
- name: minitest
154
+ name: rake
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: '5.0'
159
+ version: '12.0'
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - "~>"
137
165
  - !ruby/object:Gem::Version
138
- version: '5.0'
166
+ version: '12.0'
139
167
  - !ruby/object:Gem::Dependency
140
- name: byebug
168
+ name: rubocop
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
- - - ">="
171
+ - - '='
144
172
  - !ruby/object:Gem::Version
145
- version: '0'
173
+ version: 1.3.1
146
174
  type: :development
147
175
  prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
- - - ">="
178
+ - - '='
151
179
  - !ruby/object:Gem::Version
152
- version: '0'
180
+ version: 1.3.1
153
181
  description:
154
182
  email:
155
- - brice@ekylibre.com
183
+ - dev@ekylibre.com
156
184
  executables: []
157
185
  extensions: []
158
186
  extra_rdoc_files: []
159
187
  files:
160
- - ".gitignore"
161
- - ".gitlab-ci.yml"
162
- - ".travis.yml"
163
- - CODE_OF_CONDUCT.md
164
- - Gemfile
165
- - LICENSE.txt
166
- - README.md
167
- - Rakefile
168
188
  - charta.gemspec
169
189
  - lib/charta.rb
170
190
  - lib/charta/bounding_box.rb
191
+ - lib/charta/coordinates.rb
192
+ - lib/charta/ewkt_serializer.rb
193
+ - lib/charta/factory/ewkt_feature_builder.rb
194
+ - lib/charta/factory/feature_factory_base.rb
195
+ - lib/charta/factory/simple_feature_factory.rb
196
+ - lib/charta/factory/simple_geometry_factory.rb
197
+ - lib/charta/factory/srid_provider.rb
198
+ - lib/charta/factory/transformers/ewkt_passthrough.rb
199
+ - lib/charta/factory/transformers/ewkt_transformer.rb
200
+ - lib/charta/factory/transformers/ewkt_transformer_chain.rb
201
+ - lib/charta/factory/transformers/from_geo_json_transformer.rb
202
+ - lib/charta/factory/transformers/from_gml_transformer.rb
203
+ - lib/charta/factory/transformers/from_kml_transformer.rb
204
+ - lib/charta/factory/transformers/from_wkb_transformer.rb
205
+ - lib/charta/factory/transformers/transformation_error.rb
171
206
  - lib/charta/geo_json.rb
172
207
  - lib/charta/geojson_import.rb
173
208
  - lib/charta/geometry.rb
@@ -181,9 +216,9 @@ files:
181
216
  - lib/charta/polygon.rb
182
217
  - lib/charta/version.rb
183
218
  - lib/rgeo/svg.rb
184
- homepage: https://github.com/ekylibre/charta
219
+ homepage: https://gitlab.com/ekylibre
185
220
  licenses:
186
- - MIT
221
+ - AGPL-3.0-only
187
222
  metadata: {}
188
223
  post_install_message:
189
224
  rdoc_options: []
@@ -193,15 +228,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
193
228
  requirements:
194
229
  - - ">="
195
230
  - !ruby/object:Gem::Version
196
- version: '0'
231
+ version: 2.6.0
197
232
  required_rubygems_version: !ruby/object:Gem::Requirement
198
233
  requirements:
199
234
  - - ">="
200
235
  - !ruby/object:Gem::Version
201
236
  version: '0'
202
237
  requirements: []
203
- rubyforge_project:
204
- rubygems_version: 2.5.2.3
238
+ rubygems_version: 3.2.26
205
239
  signing_key:
206
240
  specification_version: 4
207
241
  summary: Simple tool over geos and co
data/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- *~
2
- /.bundle/
3
- /.yardoc
4
- /Gemfile.lock
5
- /_yardoc/
6
- /coverage/
7
- /doc/
8
- /pkg/
9
- /spec/reports/
10
- /tmp/
11
- .byebug_history
data/.gitlab-ci.yml DELETED
@@ -1,14 +0,0 @@
1
- stages:
2
- - test
3
-
4
- test:
5
- image: registry.gitlab.com/ekylibre/docker-base-images/ruby2.3:master
6
- before_script:
7
- - gem install bundler
8
- - bundle install --path vendor/bundle
9
- cache:
10
- key: bundle
11
- paths:
12
- - vendor/bundle
13
- script:
14
- - bundle exec rake test
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2.7
4
- before_install:
5
- - gem install bundler -v 1.14.6
6
- - sudo apt-get install -f libgeos-dev libproj-dev
7
- script: bundle exec rake test
data/CODE_OF_CONDUCT.md DELETED
@@ -1,74 +0,0 @@
1
- # Contributor Covenant Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- In the interest of fostering an open and welcoming environment, we as
6
- contributors and maintainers pledge to making participation in our project and
7
- our community a harassment-free experience for everyone, regardless of age, body
8
- size, disability, ethnicity, gender identity and expression, level of experience,
9
- nationality, personal appearance, race, religion, or sexual identity and
10
- orientation.
11
-
12
- ## Our Standards
13
-
14
- Examples of behavior that contributes to creating a positive environment
15
- include:
16
-
17
- * Using welcoming and inclusive language
18
- * Being respectful of differing viewpoints and experiences
19
- * Gracefully accepting constructive criticism
20
- * Focusing on what is best for the community
21
- * Showing empathy towards other community members
22
-
23
- Examples of unacceptable behavior by participants include:
24
-
25
- * The use of sexualized language or imagery and unwelcome sexual attention or
26
- advances
27
- * Trolling, insulting/derogatory comments, and personal or political attacks
28
- * Public or private harassment
29
- * Publishing others' private information, such as a physical or electronic
30
- address, without explicit permission
31
- * Other conduct which could reasonably be considered inappropriate in a
32
- professional setting
33
-
34
- ## Our Responsibilities
35
-
36
- Project maintainers are responsible for clarifying the standards of acceptable
37
- behavior and are expected to take appropriate and fair corrective action in
38
- response to any instances of unacceptable behavior.
39
-
40
- Project maintainers have the right and responsibility to remove, edit, or
41
- reject comments, commits, code, wiki edits, issues, and other contributions
42
- that are not aligned to this Code of Conduct, or to ban temporarily or
43
- permanently any contributor for other behaviors that they deem inappropriate,
44
- threatening, offensive, or harmful.
45
-
46
- ## Scope
47
-
48
- This Code of Conduct applies both within project spaces and in public spaces
49
- when an individual is representing the project or its community. Examples of
50
- representing a project or community include using an official project e-mail
51
- address, posting via an official social media account, or acting as an appointed
52
- representative at an online or offline event. Representation of a project may be
53
- further defined and clarified by project maintainers.
54
-
55
- ## Enforcement
56
-
57
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
- reported by contacting the project team at brice@ekylibre.com. All
59
- complaints will be reviewed and investigated and will result in a response that
60
- is deemed necessary and appropriate to the circumstances. The project team is
61
- obligated to maintain confidentiality with regard to the reporter of an incident.
62
- Further details of specific enforcement policies may be posted separately.
63
-
64
- Project maintainers who do not follow or enforce the Code of Conduct in good
65
- faith may face temporary or permanent repercussions as determined by other
66
- members of the project's leadership.
67
-
68
- ## Attribution
69
-
70
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
- available at [http://contributor-covenant.org/version/1/4][version]
72
-
73
- [homepage]: http://contributor-covenant.org
74
- [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in charta.gemspec
4
- gemspec
data/LICENSE.txt DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2017 Brice TEXIER
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.