osgeo-termbase 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: db12b312efde02595ac7f15528c801a3a8214b81ecbabb182f9703fa124f7499
4
+ data.tar.gz: e8796a7029e7a1dd935e430a1b458361ed645c2ebbb340ae8cbe9cf2febcf9c9
5
+ SHA512:
6
+ metadata.gz: 7cb3dfb165e1c8d9480a2ac478046a3be51f9d55165f3502288df3b7d7b716e5bf192b13a9ce6b280323eed5467efcd98fad656eb3a65ad7497c418670b5ec67
7
+ data.tar.gz: ce2b45928f43c767fc0a895f8aeabf8e73a5d9b356ea183ee065183da208801d5d81bbd6bbfdd13814397ba2f77ad45a7afbac99f719ea39dd6a9aeb37b179e0
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ .DS_Store
2
+ concepts/
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ gem "tsv"
6
+
7
+ # gem "pry"
8
+ # gem "pry-coolline"
9
+
10
+ # Specify your gem's dependencies in osgeo-termbase.gemspec
11
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,94 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ osgeo-termbase (0.1.12)
5
+ relaton (~> 0.5)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ addressable (2.7.0)
11
+ public_suffix (>= 2.0.2, < 5.0)
12
+ cnccs (0.1.5)
13
+ debase (0.2.4.1)
14
+ debase-ruby_core_source (>= 0.10.2)
15
+ debase-ruby_core_source (0.10.6)
16
+ diff-lcs (1.3)
17
+ faraday (0.17.0)
18
+ multipart-post (>= 1.2, < 3)
19
+ gb-agencies (0.0.6)
20
+ isoics (0.1.8)
21
+ mini_portile2 (2.4.0)
22
+ multipart-post (2.1.1)
23
+ nokogiri (1.10.4)
24
+ mini_portile2 (~> 2.4.0)
25
+ public_suffix (4.0.1)
26
+ rake (10.5.0)
27
+ relaton (0.5.9)
28
+ relaton-gb (~> 0.6.0)
29
+ relaton-iec (~> 0.4.0)
30
+ relaton-ietf (~> 0.6.0)
31
+ relaton-iso (~> 0.6.0)
32
+ relaton-itu (~> 0.3.0)
33
+ relaton-nist (~> 0.3.0)
34
+ relaton-ogc (~> 0.1.0)
35
+ relaton-bib (0.3.11)
36
+ addressable
37
+ nokogiri
38
+ relaton-gb (0.6.6)
39
+ cnccs (~> 0.1.1)
40
+ gb-agencies (~> 0.0.1)
41
+ relaton-iso-bib (~> 0.3.0)
42
+ relaton-iec (0.4.9)
43
+ addressable
44
+ relaton-iso-bib (~> 0.3.0)
45
+ relaton-ietf (0.6.7)
46
+ relaton-bib (~> 0.3.0)
47
+ relaton-iso (0.6.8)
48
+ relaton-iec (~> 0.4.0)
49
+ relaton-iso-bib (~> 0.3.0)
50
+ relaton-iso-bib (0.3.11)
51
+ isoics (~> 0.1.6)
52
+ relaton-bib (~> 0.3.0)
53
+ ruby_deep_clone (~> 0.8.0)
54
+ relaton-itu (0.3.6)
55
+ relaton-iso-bib (~> 0.3.0)
56
+ relaton-nist (0.3.7)
57
+ relaton-bib (~> 0.3.0)
58
+ rubyzip
59
+ relaton-ogc (0.1.3)
60
+ faraday
61
+ relaton-iso-bib (~> 0.3.0)
62
+ rspec (3.9.0)
63
+ rspec-core (~> 3.9.0)
64
+ rspec-expectations (~> 3.9.0)
65
+ rspec-mocks (~> 3.9.0)
66
+ rspec-core (3.9.0)
67
+ rspec-support (~> 3.9.0)
68
+ rspec-expectations (3.9.0)
69
+ diff-lcs (>= 1.2.0, < 2.0)
70
+ rspec-support (~> 3.9.0)
71
+ rspec-mocks (3.9.0)
72
+ diff-lcs (>= 1.2.0, < 2.0)
73
+ rspec-support (~> 3.9.0)
74
+ rspec-support (3.9.0)
75
+ ruby-debug-ide (0.7.0)
76
+ rake (>= 0.8.1)
77
+ ruby_deep_clone (0.8.0)
78
+ rubyzip (2.0.0)
79
+ tsv (1.0.0)
80
+
81
+ PLATFORMS
82
+ ruby
83
+
84
+ DEPENDENCIES
85
+ bundler (~> 2.0.1)
86
+ debase
87
+ osgeo-termbase!
88
+ rake (~> 10.0)
89
+ rspec (~> 3.0)
90
+ ruby-debug-ide
91
+ tsv
92
+
93
+ BUNDLED WITH
94
+ 2.0.2
data/README.adoc ADDED
@@ -0,0 +1,86 @@
1
+ = OSGeo Termbase programs
2
+
3
+ == Purpose
4
+
5
+ This gem is used for the creation and deployment of OSGeo Geolexica,
6
+ the OSGeo Glossary,
7
+ located at https://osgeo.geolexica.org.
8
+
9
+ The repository for the site is located at:
10
+
11
+ * https://github.com/geolexica/osgeo.geolexica.org
12
+
13
+
14
+ == Install
15
+
16
+ Add this line to your Gemfile:
17
+
18
+ [source,ruby]
19
+ ----
20
+ gem 'osgeo-termbase'
21
+ ----
22
+
23
+ And then execute:
24
+
25
+ [source,sh]
26
+ ----
27
+ $ bundle
28
+ ----
29
+
30
+ Or install it yourself as:
31
+
32
+ [source,sh]
33
+ ----
34
+ $ gem install osgeo-termbase
35
+ ----
36
+
37
+
38
+ == Usage
39
+
40
+ The gem comes with the following executable:
41
+
42
+ * `osgeo-termbase-csv2yaml`: used to extract terms from the official
43
+ OSGeo glossary table, into ConceptYAML and TermYAML files.
44
+
45
+ * `osgeo-termbase-fetchcsv`: used to fetch the latest OSGeo glossary
46
+ in CSV format.
47
+
48
+
49
+ === Using `osgeo-termbase-csv2yaml`
50
+
51
+ Run the following command:
52
+
53
+ [source,sh]
54
+ ----
55
+ $ osgeo-termbase-csv2yaml [termbase.csv]
56
+ ----
57
+
58
+ Where,
59
+
60
+ * the ConceptCollection YAML will be created at `[termbase.yaml]` at
61
+ the current working directory;
62
+
63
+ * ConceptYAML files for each concept (each concept identified by a unique "`Term-ID`")
64
+ are created under the `concepts/` directory (based on the current working directory).
65
+ i.e. `concepts/concept-338.yaml`.
66
+
67
+
68
+ === Using `osgeo-termbase-fetchcsv`
69
+
70
+ Run the following command:
71
+
72
+ [source,sh]
73
+ ----
74
+ $ osgeo-termbase-fetchcsv [termbase.csv]
75
+ ----
76
+
77
+ Where,
78
+
79
+ * the OSGeo glossary CSV file will be created at `[termbase.yaml]` in
80
+ the current working directory.
81
+
82
+
83
+ == Credits
84
+
85
+ This program is created and maintained by Ribose / Geolexica
86
+ for the OSGeo Lexicon Committee (OSGeo LC).
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'pp'
4
+ require 'pathname'
5
+ require 'fileutils'
6
+ require_relative '../lib/osgeo/termbase.rb'
7
+ # require 'pry'
8
+
9
+ filepath = ARGV[0]
10
+ #'./osgeo-termbase.xlsx'
11
+
12
+ if filepath.nil?
13
+ puts 'Error: no filepath given as first argument.'
14
+ exit 1
15
+ end
16
+
17
+ if Pathname.new(filepath).extname != ".csv"
18
+ puts 'Error: filepath given must have extension .csv.'
19
+ exit 1
20
+ end
21
+
22
+
23
+ table = Osgeo::Termbase::Csv.new(filepath)
24
+
25
+ # registries = {
26
+ # "eng" => {
27
+ # metadata: {},
28
+ # terms: table.concept_collection
29
+ # }
30
+ # }
31
+
32
+ output_dir = Dir.pwd
33
+
34
+ # metadata = {
35
+ # 'header' => workbook.glossary_info.metadata_section.to_hash["metadata"]
36
+ # }
37
+ # # Write registry metadata
38
+ # metadata['languages'] = registries.inject({}) do |acc, (lang, data)|
39
+ # acc.merge({lang => data[:metadata]})
40
+ # end
41
+
42
+ # File.open(File.join(output_dir, Pathname.new(filepath).basename.sub_ext(".meta.yaml")),"w") do |file|
43
+ # file.write(metadata.to_yaml)
44
+ # end
45
+
46
+ collection = table.concept_collection
47
+
48
+ collection.to_file(File.join(output_dir, Pathname.new(filepath).basename.sub_ext(".yaml")))
49
+
50
+ collection_output_dir = File.join(output_dir, "concepts")
51
+
52
+ FileUtils.mkdir_p(collection_output_dir)
53
+
54
+ collection.keys.each do |id|
55
+ collection[id].to_file(File.join(collection_output_dir, "concept-#{id}.yaml"))
56
+ end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'net/http'
4
+ require 'uri'
5
+
6
+ filepath = ARGV[0]
7
+ #'./osgeo-termbase.xlsx'
8
+
9
+ if filepath.nil?
10
+ puts 'Error: no filepath given as first argument.'
11
+ exit 1
12
+ end
13
+
14
+ if Pathname.new(filepath).extname != ".csv"
15
+ puts 'Error: filepath given must have extension .csv.'
16
+ exit 1
17
+ end
18
+
19
+ uri = URI.parse("https://docs.google.com/spreadsheets/d/e/2PACX-1vRiH36W8s6WfxFCdb_FfHSqMebxRXgq-bIbTgzYyRGzELHvLrhESiasPO6hqEWLsELlXtRcXhxcSIbQ/pub?gid=222410614&single=true&output=csv")
20
+ response = Net::HTTP.get_response(uri)
21
+
22
+ # response.code
23
+ # response.body
24
+
25
+ File.open(filepath, "w") do |f|
26
+ f.puts response.body
27
+ end
@@ -0,0 +1,11 @@
1
+ require "osgeo/termbase/version"
2
+
3
+ module Osgeo
4
+ module Termbase
5
+ class Error < StandardError; end
6
+ # Your code goes here...
7
+ end
8
+ end
9
+
10
+ require 'osgeo/termbase/csv'
11
+ require 'osgeo/termbase/concept_collection'
@@ -0,0 +1,58 @@
1
+ require_relative "term"
2
+
3
+ module Osgeo::Termbase
4
+
5
+ class Concept < Hash
6
+ attr_accessor :id
7
+ attr_accessor :terms
8
+ DEFAULT_LANGUAGE = "eng"
9
+
10
+ def initialize(options={})
11
+ terms = options.delete(:terms) || []
12
+ terms.each do |term|
13
+ add_term(term)
14
+ end
15
+
16
+ options.each_pair do |k,v|
17
+ self.send("#{k}=", v)
18
+ end
19
+ end
20
+
21
+ # The concept id should ALWAYS be an integer.
22
+ # https://github.com/riboseinc/osgeo-termbase/issues/1
23
+ def id=(newid)
24
+ @id = Integer(newid)
25
+ end
26
+
27
+ def add_term(term)
28
+ self[term.language_code] = term
29
+ end
30
+
31
+ def default_term
32
+ if self[DEFAULT_LANGUAGE]
33
+ self[DEFAULT_LANGUAGE]
34
+ else
35
+ puts "[osgeo-termbase] term (lang: #{keys.first}, ID: #{id}) is missing a corresponding English term, probably needs updating."
36
+ self[keys.first]
37
+ end
38
+ end
39
+
40
+ def to_hash
41
+ default_hash = {
42
+ "term" => default_term.term,
43
+ "termid" => id
44
+ }
45
+
46
+ self.inject(default_hash) do |acc, (lang, term)|
47
+ acc.merge!(lang => term.to_hash)
48
+ end
49
+ end
50
+
51
+ def to_file(filename)
52
+ File.open(filename,"w") do |file|
53
+ file.write(to_hash.to_yaml)
54
+ end
55
+ end
56
+
57
+ end
58
+ end
@@ -0,0 +1,32 @@
1
+ require_relative "concept"
2
+
3
+ module Osgeo::Termbase
4
+
5
+ class ConceptCollection < Hash
6
+
7
+ def add_term(term)
8
+ if self[term.id]
9
+ self[term.id].add_term(term)
10
+ else
11
+ self[term.id] = Concept.new(
12
+ id: term.id,
13
+ terms: [term]
14
+ )
15
+ end
16
+ end
17
+
18
+ def to_hash
19
+ self.inject({}) do |acc, (id, concept)|
20
+ acc.merge!(id => concept.to_hash)
21
+ end
22
+ end
23
+
24
+ def to_file(filename)
25
+ File.open(filename,"w") do |file|
26
+ file.write(to_hash.to_yaml)
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,45 @@
1
+
2
+ require "csv"
3
+ require "yaml"
4
+ require "pathname"
5
+
6
+ module Osgeo::Termbase
7
+
8
+ class Csv
9
+ attr_accessor :filename
10
+
11
+ def initialize(filepath)
12
+ @filename = filepath
13
+ @languages = languages_supported
14
+ self
15
+ end
16
+
17
+ def languages_supported
18
+ "eng"
19
+ end
20
+
21
+ def concept_collection
22
+ collection = ConceptCollection.new
23
+
24
+ CSV.foreach(@filename).each_with_index do |row, i|
25
+ next if i < 3
26
+ term = Term.new(
27
+ id: i - 2,
28
+ term: row[0],
29
+ type: row[1],
30
+ domain: row[2],
31
+ comments: row[3] && [row[3]],
32
+ definition: row[4],
33
+ authoritative_source: row[5],
34
+ entry_status: row[6],
35
+ language_code: "eng"
36
+ )
37
+
38
+ collection.add_term(term)
39
+ end
40
+
41
+ collection
42
+ end
43
+
44
+ end
45
+ end
@@ -0,0 +1,275 @@
1
+ module Osgeo::Termbase
2
+
3
+ class Term
4
+
5
+ ATTRIBS = %i(
6
+ id
7
+ term
8
+ abbrev
9
+ synonyms
10
+ alt
11
+ domain
12
+ definition
13
+ country_code
14
+ language_code
15
+ notes
16
+ examples
17
+ entry_status
18
+ type
19
+ comments
20
+ classification
21
+ review_indicator
22
+ authoritative_source
23
+ authoritative_source_similarity
24
+ lineage_source
25
+ lineage_source_similarity
26
+ date_accepted
27
+ date_amended
28
+ review_date
29
+ review_status
30
+ review_type
31
+ review_decision
32
+ review_decision_date
33
+ review_decision_event
34
+ review_decision_notes
35
+ release
36
+ )
37
+
38
+ attr_accessor *ATTRIBS
39
+
40
+ def initialize(options={})
41
+ @examples = []
42
+ @notes = []
43
+
44
+ # puts "options #{options.inspect}"
45
+
46
+ options.each_pair do |k, v|
47
+ key = k.to_s
48
+ v = v.strip if v.is_a?(String)
49
+ next unless v
50
+ case key
51
+ when /^example/
52
+ add_example(v)
53
+ when /^note/
54
+ add_note(v)
55
+ else
56
+ # puts"Key #{k}"
57
+ key = key.gsub("-", "_")
58
+ self.send("#{key}=", v)
59
+ end
60
+ end
61
+ self
62
+ end
63
+
64
+ STRIP_PUNCTUATION = [
65
+ ":",
66
+ ":",
67
+ ".",
68
+ "–",
69
+ "\-"
70
+ ]
71
+
72
+ # WARNING
73
+ # Always put the longer Regexp match in front!
74
+ EXAMPLE_PREFIXES = {
75
+ # TODO: fix this, we should not have "EXAMPLES"
76
+ eng: ["EXAMPLES", "EXAMPLE"],
77
+ ara: "مثال",
78
+ chi: "示例",
79
+ dan: "EKSEMPEL",
80
+ dut: ["VOORBEELD", "VOORBEELDEN"],
81
+ fin: "ESIM",
82
+ fre: "Exemple",
83
+ # ger: "",
84
+ jpn: "例",
85
+ kor: "보기",
86
+ pol: "PRZYKŁAD",
87
+ may: "Contoh",
88
+ rus: "Пример",
89
+ spa: "Ejemplo",
90
+ swe: "Exempel"
91
+ }
92
+
93
+ # WARNING
94
+ # Always put the longer Regexp match in front!
95
+ NOTE_PREFIXES = {
96
+ eng: ["Note \\d to entry", "NOTE"],
97
+ ara: "ملاحظة",
98
+ chi: "注",
99
+ dan: "Note",
100
+ dut: "OPMERKING",
101
+ fin: "HUOM\\.?", # Matches "HUOM", "HUOM.", "HUOM 1." and "HUOM. 1." (numeral added by the method)
102
+ fre: "A noter",
103
+ # ger: "",
104
+ jpn: "備考",
105
+ kor: "비고",
106
+ pol: "UWAGA",
107
+ may: "catatan",
108
+ rus: "нота",
109
+ spa: "Nota",
110
+ swe: ["Anm. \\d till termpost", "Anm. \\d till terpost", "Anm."]
111
+ }
112
+
113
+ # To match Chinese and Japanese numerals
114
+ ALL_FULL_HALF_WIDTH_NUMBERS = "[0-90-9]"
115
+
116
+ def add_example(example)
117
+ c = clean_prefixed_string(example, EXAMPLE_PREFIXES)
118
+ @examples << c unless c.empty?
119
+ end
120
+
121
+ def add_note(note)
122
+ c = clean_prefixed_string(note, NOTE_PREFIXES)
123
+ @notes << c unless c.empty?
124
+ end
125
+
126
+ def clean_prefixed_string(string, criterion_map)
127
+ carry = string.strip
128
+ criterion_map.values.flatten.each do |mat|
129
+ # puts "example string: #{carry}, mat: #{mat}"
130
+
131
+ # puts "note string: #{carry}, mat: #{mat}"
132
+ # if @id == 318 and mat == "Nota" and string == "NOTA 1 Una operación tiene un nombre y una lista de parámetros."
133
+ # require "pry"
134
+ # binding.pry
135
+ # end
136
+
137
+ # Arabic notes/examples sometimes use parantheses around numbers
138
+ carry = carry.sub(
139
+ Regexp.new(
140
+ "^#{mat}\s*[#{STRIP_PUNCTUATION.join('')}]?" +
141
+ "\s*\\(?#{ALL_FULL_HALF_WIDTH_NUMBERS}*\\)?\s*"+
142
+ "[#{STRIP_PUNCTUATION.join('')}]?\s*",
143
+ Regexp::IGNORECASE
144
+ ),
145
+ '')
146
+ end
147
+
148
+ carry
149
+ end
150
+
151
+
152
+ # The termid should ALWAYS be an integer.
153
+ # https://github.com/riboseinc/osgeo-termbase/issues/1
154
+ def id=(newid)
155
+ @id = Integer(newid)
156
+ end
157
+
158
+ def to_hash
159
+ ATTRIBS.inject({}) do |acc, attrib|
160
+ value = self.send(attrib)
161
+ unless value.nil?
162
+ acc.merge(attrib.to_s => value)
163
+ else
164
+ acc
165
+ end
166
+ end
167
+ end
168
+
169
+ # OSGEO SPECIFIC
170
+ # type
171
+ ## Must be one of term, abbrev, soft, other, check
172
+ def type=(value)
173
+ @type = case value.to_s
174
+ when "term", "abbrev", "soft", "other", "check"
175
+ value.to_s
176
+ end
177
+ end
178
+
179
+ # OSGEO SPECIFIC
180
+ # domain
181
+ ## Must be one of term, abbrev, soft, other, check
182
+ def domain=(value)
183
+ @domain = case value.to_s
184
+ when "concept", "org_acedemic", "org_indus", "org_intl", "org_govt"
185
+ value.to_s
186
+ end
187
+ end
188
+
189
+ # entry-status
190
+ ## Must be one of notValid valid superseded retired
191
+ def entry_status=(value)
192
+ case value
193
+ when "有效的", "käytössä", "действующий", "válido"
194
+ value = "valid"
195
+ when "korvattu", "reemplazado"
196
+ value = "superseded"
197
+ when "информация отсутствует" # "information absent"!?
198
+ value = "retired"
199
+ when %w(notValid valid superseded retired)
200
+ # do nothing
201
+ end
202
+ @entry_status = value
203
+ end
204
+
205
+ # classification
206
+ ## Must be one of the following: preferred admitted deprecated
207
+ def classification=(value)
208
+ case value
209
+ when ""
210
+ value = "admitted"
211
+ when "认可的", "допустимый", "admitido"
212
+ value = "admitted"
213
+ when "首选的", "suositettava", "suositeltava", "рекомендуемый", "preferente"
214
+ value = "preferred"
215
+ when %w(preferred admitted deprecated)
216
+ # do nothing
217
+ end
218
+ @classification = value
219
+ end
220
+
221
+ # review-indicator
222
+ ## Must be one of the following <empty field> Under Review in Source Document",
223
+ def review_indicator=(value)
224
+ unless ["", "Under Review in Source Document"].include?(value)
225
+ value = ""
226
+ end
227
+ @review_indicator = value
228
+ end
229
+
230
+ # authoritative-source-similarity
231
+ # ## Must be one of the following codes: identical = 1 restyled = 2 context added = 3 generalisation = 4 specialisation = 5 unspecified = 6",
232
+ def authoritative_source_similarity=(value)
233
+ unless (1..6).include?(value)
234
+ value = 6
235
+ end
236
+ @authoritative_source_similarity = value
237
+ end
238
+
239
+ # lineage-source-similarity
240
+ # ## Must be one of the following codes: identical = 1 restyled = 2 context added = 3 generalisation = 4 specialisation = 5 unspecified = 6",
241
+ def authoritative_source_similarity=(value)
242
+ unless (1..6).include?(value)
243
+ value = 6
244
+ end
245
+ @authoritative_source_similarity
246
+ end
247
+
248
+ def review_status=(value) ## Must be one of pending tentative final
249
+ unless ["", "pending", "tentative", "final"].include?(value)
250
+ value = ""
251
+ end
252
+ @review_status = value
253
+ end
254
+
255
+ def review_type=(value) ## Must be one of supersession, retirement
256
+ unless ["", "supersession", "retirement"].include?(value)
257
+ value = ""
258
+ end
259
+ @review_type = value
260
+ end
261
+
262
+ def review_decision=(value) ## Must be one of withdrawn, accepted notAccepted
263
+ unless ["", "withdrawn", "accepted", "notAccepted"].include?(value)
264
+ value = ""
265
+ end
266
+ @review_decision = value
267
+ end
268
+
269
+ def retired?
270
+ release >= 0
271
+ end
272
+
273
+ end
274
+
275
+ end
@@ -0,0 +1,5 @@
1
+ module Osgeo
2
+ module Termbase
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,32 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "osgeo/termbase/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "osgeo-termbase"
8
+ spec.version = Osgeo::Termbase::VERSION
9
+ spec.authors = ["Ribose"]
10
+ spec.email = ["open.source@ribose.com"]
11
+
12
+ spec.summary = %q{Build scripts for the OSGeo Termbase}
13
+ spec.description = %q{Build scripts for the OSGeo Termbase}
14
+ spec.homepage = "https://open.ribose.com"
15
+
16
+ # Specify which files should be added to the gem when it is released.
17
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
18
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
19
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ end
21
+ spec.bindir = "exe"
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ["lib"]
24
+
25
+ spec.add_runtime_dependency "relaton", "~> 0.5"
26
+
27
+ spec.add_development_dependency "bundler", "~> 2.0.1"
28
+ spec.add_development_dependency "debase"
29
+ spec.add_development_dependency "rake", "~> 10.0"
30
+ spec.add_development_dependency "rspec", "~> 3.0"
31
+ spec.add_development_dependency "ruby-debug-ide"
32
+ end
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: osgeo-termbase
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ribose
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-10-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: relaton
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.1
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.0.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: debase
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: ruby-debug-ide
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Build scripts for the OSGeo Termbase
98
+ email:
99
+ - open.source@ribose.com
100
+ executables:
101
+ - osgeo-termbase-csv2yaml
102
+ - osgeo-termbase-fetchcsv
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - ".gitignore"
107
+ - Gemfile
108
+ - Gemfile.lock
109
+ - README.adoc
110
+ - Rakefile
111
+ - exe/osgeo-termbase-csv2yaml
112
+ - exe/osgeo-termbase-fetchcsv
113
+ - lib/osgeo/termbase.rb
114
+ - lib/osgeo/termbase/concept.rb
115
+ - lib/osgeo/termbase/concept_collection.rb
116
+ - lib/osgeo/termbase/csv.rb
117
+ - lib/osgeo/termbase/term.rb
118
+ - lib/osgeo/termbase/version.rb
119
+ - osgeo-termbase.gemspec
120
+ homepage: https://open.ribose.com
121
+ licenses: []
122
+ metadata: {}
123
+ post_install_message:
124
+ rdoc_options: []
125
+ require_paths:
126
+ - lib
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ requirements: []
138
+ rubygems_version: 3.0.3
139
+ signing_key:
140
+ specification_version: 4
141
+ summary: Build scripts for the OSGeo Termbase
142
+ test_files: []