charta 0.2.2 → 0.4.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 (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.