relaton-cli 1.8.0 → 1.9.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d1136ef4b30917aa5a29aa324cfacacc3be729c3a83f6aa3a41ddefc93e12c2
4
- data.tar.gz: 8a727b79dce16e15467463d5bbf648a37fa6d49e988e904aa4826025e6b9c9e3
3
+ metadata.gz: 767e5966382c899d19561eb09eb1a623e6d70b3f7351d1af074a3ff5a07900a9
4
+ data.tar.gz: 52cc6b65943e3c5e02450f3479d6be987ca1c8253b393b5796d2455dc670970a
5
5
  SHA512:
6
- metadata.gz: b8eececfadffa4cdf1e9eb57cb47e3241bfbcb6547e779026f61dc72625e751f9acd93946922b22d0159ffd4f60ec24c8abaa4011313d35ad62fe236399abb9a
7
- data.tar.gz: e083e9481f91c42544e65426d05983bdc21841e5b8adf4ff4a90c7942cefbe65168842b22cc4e9e75d5d9cb6b6b46c6374a0233a6d8d6ac0147c2f53994aea65
6
+ metadata.gz: 4b57a654bf1eb73955fab8fdbc4b80d87f3d0bce522824e40d2ddbb16ea48975ce575f9974721483fa3e87a769ca1d5a71e8b7eeb9526c8ba3fdd28014443d14
7
+ data.tar.gz: fffae10fa7a938ccad785600bf61d4bca0d7cf65f7e7467ea1e8f39ee4debf46f74312d0aa6e292eb947d8fe27ef7ea1b6b972b78f4f2f8a41a56017e4de3680
@@ -16,19 +16,9 @@ jobs:
16
16
  strategy:
17
17
  fail-fast: false
18
18
  matrix:
19
- ruby: [ '2.7', '2.6', '2.5', '2.4' ]
19
+ ruby: [ '3.0', '2.7', '2.6', '2.5' ]
20
20
  os: [ ubuntu-latest, windows-latest, macos-latest ]
21
21
  experimental: [ false ]
22
- include:
23
- - ruby: '3.0'
24
- os: 'ubuntu-latest'
25
- experimental: true
26
- - ruby: '3.0'
27
- os: 'windows-latest'
28
- experimental: true
29
- - ruby: '3.0'
30
- os: 'macos-latest'
31
- experimental: true
32
22
  steps:
33
23
  - uses: actions/checkout@v2
34
24
  with:
data/.rubocop.yml CHANGED
@@ -5,6 +5,6 @@
5
5
  inherit_from:
6
6
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
7
7
  AllCops:
8
- TargetRubyVersion: 2.4
8
+ TargetRubyVersion: 2.5
9
9
  Rails:
10
10
  Enabled: true
data/docs/README.adoc CHANGED
@@ -54,7 +54,23 @@ Fetch the Relaton XML entry corresponding to the document identifier `CODE`.
54
54
  * `--all-parts` fetch all parts.
55
55
  * `--keep-year` undated reference should return actual reference with year.
56
56
 
57
- === relaton extract
57
+ === relaton fetch-data
58
+
59
+ [source,console]
60
+ ----
61
+ $ relaton fetch-data DATASET -o DIR -f FORMAT
62
+ ----
63
+
64
+ Fetch all the documents from a `DATASET` source and save them to a folder `DIR` in format `FORMAT`.
65
+
66
+ Foloowing datasets are availabe:
67
+
68
+ * `nist-tech-pubs` - https://raw.githubusercontent.com/usnistgov/NIST-Tech-Pubs/nist-pages/xml/allrecords.xml
69
+
70
+ Options:
71
+
72
+ * `DIR` - floder name to store documents (default `./data`).
73
+ * `FORMAT` - format in which the documents are saved. Possimle formats are: `yaml`, `xml` (default `yaml`).
58
74
 
59
75
  [source,console]
60
76
  ----
@@ -310,38 +326,38 @@ Import document or collection from XML `FILE` into `COLLECTION`.
310
326
  * `COLLECTION` is optional. If collection doesn't exist then it will be created.
311
327
  * `DIRECTORY` is optional, and specifies path to a directory with collections. Default is `$HOME/.relaton/collections`.
312
328
 
313
- === Cache DB manipulation
329
+ === Dadabase manipulation
314
330
 
315
- ==== Create cache DB
331
+ ==== Create database
316
332
 
317
333
  ----
318
334
  $ relaton db create DIR
319
335
  ----
320
336
 
321
- Creates a new cache DB in a directory `DIR` (optional, deafult is `/home/USER/.relaton/dbpath`). In case the target directory exists it will be used as a cache DB.
337
+ Creates a new database in a directory `DIR` (optional, deafult is `/home/USER/.relaton/dbpath`). In case the target directory exists it will be used as a database.
322
338
 
323
339
  ----
324
340
  $ relaton db create
325
- Cache DB is in "/Users/user/.relaton/cache"
341
+ Database is in "/Users/user/.relaton/cache"
326
342
 
327
343
  $ relaton db create cachedb
328
- Cache DB is in "/Users/user/RubyProjects/relaton-cli/cachedb"
344
+ Database is in "/Users/user/RubyProjects/relaton-cli/cachedb"
329
345
  ----
330
346
 
331
- ==== Move cache DB
347
+ ==== Move database
332
348
 
333
349
  ----
334
350
  $ relaton db mv DIR
335
351
  ----
336
352
 
337
- Move cache DB to another place `DIR`.
353
+ Move database to another place `DIR`.
338
354
 
339
355
  ----
340
356
  $ relaton db mv cache_dir
341
- Cache DB is moved to "/Users/user/RubyProjects/relaton-cli/cache_dir"
357
+ Database is moved to "/Users/user/RubyProjects/relaton-cli/cache_dir"
342
358
  ----
343
359
 
344
- ==== Clear cache DB
360
+ ==== Clear database
345
361
 
346
362
  Delete all entries from a chache DB.
347
363
 
@@ -349,13 +365,13 @@ Delete all entries from a chache DB.
349
365
  $ relaton db clear
350
366
  ----
351
367
 
352
- ==== Fetch from cache DB
368
+ ==== Fetch from database
353
369
 
354
370
  ----
355
371
  $ relaton db fetch -t TYPE -f FORMAT -y YEAR
356
372
  ----
357
373
 
358
- Fetch an entry from a cache DB. See [relaton fetch](#relaton-fetch) for the arguments explanation.
374
+ Fetch an entry from a database. See [relaton fetch](#relaton-fetch) for the arguments explanation.
359
375
 
360
376
  ==== Fetch all
361
377
 
@@ -1,6 +1,7 @@
1
1
  require "relaton/cli/relaton_file"
2
2
  require "relaton/cli/xml_convertor"
3
3
  require "relaton/cli/yaml_convertor"
4
+ require "relaton/cli/data_fetcher"
4
5
  require "relaton/cli/subcommand_collection"
5
6
  require "relaton/cli/subcommand_db"
6
7
  require "fcntl"
@@ -14,19 +15,19 @@ module Relaton
14
15
 
15
16
  desc "fetch CODE", "Fetch Relaton XML for Standard identifier CODE"
16
17
  option :type, aliases: :t, desc: "Type of standard to "\
17
- "get bibliographic entry for"
18
+ "get bibliographic entry for"
18
19
  option :format, aliases: :f, desc: "Output format (xml, yaml, bibtex). "\
19
- "Default xml."
20
+ "Default xml."
20
21
  option :year, aliases: :y, type: :numeric, desc: "Year the standard was "\
21
- "published"
22
+ "published"
22
23
  option :"all-parts", type: :boolean, desc: "Fetch all parts"
23
24
  option :"keep-year", type: :boolean, desc: "Undated reference should "\
24
- "return actual reference with year"
25
+ "return actual reference with year"
25
26
  option :retries, aliases: :r, type: :numeric, desc: "Number of network "\
26
27
  "retries. Default 1."
27
28
 
28
29
  def fetch(code)
29
- io = IO.new(STDOUT.fcntl(::Fcntl::F_DUPFD), mode: "w:UTF-8")
30
+ io = IO.new($stdout.fcntl(::Fcntl::F_DUPFD), mode: "w:UTF-8")
30
31
  io.puts(fetch_document(code, options) || supported_type_message)
31
32
  end
32
33
 
@@ -43,7 +44,7 @@ module Relaton
43
44
  "DIRECTORY (containing Relaton-XML or YAML) into a Relaton Collection"
44
45
  option :title, aliases: :t, desc: "Title of resulting Relaton collection"
45
46
  option :organization, aliases: :g, desc: "Organization owner of Relaton "\
46
- "collection"
47
+ "collection"
47
48
  option :extension, aliases: :x, desc: "File extension of destination "\
48
49
  "Relaton file, defaults to 'rxl'"
49
50
 
@@ -61,15 +62,15 @@ module Relaton
61
62
  end
62
63
 
63
64
  desc "yaml2xml YAML", "Convert Relaton YAML into Relaton Collection XML "\
64
- "or separate files"
65
+ "or separate files"
65
66
  option :extension, aliases: :x, default: "rxl", desc: "File extension "\
66
67
  "of Relaton XML files, defaults to 'rxl'"
67
68
  option :prefix, aliases: :p, desc: "Filename prefix of individual "\
68
- "Relaton XML files, defaults to empty"
69
+ "Relaton XML files, defaults to empty"
69
70
  option :outdir, aliases: :o, desc: "Output to the specified directory "\
70
71
  "with individual Relaton Bibdata XML files"
71
72
  option :require, aliases: :r, type: :array, desc: "Require LIBRARY "\
72
- "prior to execution"
73
+ "prior to execution"
73
74
  option :overwrite, aliases: :f, type: :boolean, default: false,
74
75
  desc: "Overwrite the existing file"
75
76
 
@@ -78,15 +79,15 @@ module Relaton
78
79
  end
79
80
 
80
81
  desc "xml2yaml XML", "Convert Relaton XML into Relaton Bibdata / "\
81
- "Bibcollection YAML (and separate files)"
82
+ "Bibcollection YAML (and separate files)"
82
83
  option :extension, aliases: :x, default: "yaml", desc: "File extension "\
83
84
  "of Relaton YAML files, defaults to 'yaml'"
84
85
  option :prefix, aliases: :p, desc: "Filename prefix of Relaton XML "\
85
- "files, defaults to empty"
86
+ "files, defaults to empty"
86
87
  option :outdir, aliases: :o, desc: "Output to the specified directory "\
87
- "with individual Relaton Bibdata YAML files"
88
+ "with individual Relaton Bibdata YAML files"
88
89
  option :require, aliases: :r, type: :array, desc: "Require LIBRARY "\
89
- "prior to execution"
90
+ "prior to execution"
90
91
  option :overwrite, aliases: :f, type: :boolean, default: false,
91
92
  desc: "Overwrite the existing file"
92
93
 
@@ -95,9 +96,9 @@ module Relaton
95
96
  end
96
97
 
97
98
  desc "xml2html RELATON-INDEX-XML", "Convert Relaton Collection XML into "\
98
- "HTML"
99
+ "HTML"
99
100
  option :stylesheet, aliases: :s, desc: "Stylesheet file path for "\
100
- "rendering HTML index"
101
+ "rendering HTML index"
101
102
  option :templatedir, aliases: :t, desc: "Liquid template directory for "\
102
103
  "rendering Relaton items and collection"
103
104
  option :overwrite, aliases: :f, type: :boolean, default: false,
@@ -108,9 +109,9 @@ module Relaton
108
109
  end
109
110
 
110
111
  desc "yaml2html RELATON-INDEX-YAML", "Concatenate Relaton Collection "\
111
- "YAML into HTML"
112
+ "YAML into HTML"
112
113
  option :stylesheet, aliases: :s, desc: "Stylesheet file path for "\
113
- "rendering HTML index"
114
+ "rendering HTML index"
114
115
  option :templatedir, aliases: :t, desc: "Liquid template directory for "\
115
116
  "rendering Relaton items and collection"
116
117
  option :overwrite, aliases: :f, type: :boolean, default: false,
@@ -137,10 +138,18 @@ module Relaton
137
138
  when "asciibib" then "adoc"
138
139
  else options[:format]
139
140
  end
140
- output = options[:output] || file.sub(/(?<=\.)[^\.]+$/, ext)
141
+ output = options[:output] || file.sub(/(?<=\.)[^.]+$/, ext)
141
142
  File.write output, result, encoding: "UTF-8"
142
143
  end
143
144
 
145
+ desc "fetch-data SOURCE", "Fetch all the documents from a source"
146
+ option :output, aliases: :o, desc: "Output dir. Default: ./data/"
147
+ option :format, aliases: :f, desc: "Output format (yaml, xml). Default: yaml"
148
+
149
+ def fetch_data(source)
150
+ DataFetcher.fetch source, options
151
+ end
152
+
144
153
  desc "collection SUBCOMMAND", "Collection manipulations"
145
154
  subcommand "collection", SubcommandCollection
146
155
 
@@ -0,0 +1,15 @@
1
+ module Relaton
2
+ module Cli
3
+ module DataFetcher
4
+ def fetch(source, options)
5
+ processor = Relaton::Registry.instance.find_processor_by_dataset source
6
+ opts = {}
7
+ opts[:output] = options[:output] if options[:output]
8
+ opts[:format] = options[:format] if options[:format]
9
+ processor.fetch_data source, opts
10
+ end
11
+
12
+ extend DataFetcher
13
+ end
14
+ end
15
+ end
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Cli
3
- VERSION = "1.8.0".freeze
3
+ VERSION = "1.9.2".freeze
4
4
  end
5
5
  end
data/relaton-cli.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.bindir = "exe"
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
- spec.required_ruby_version = ">= 2.4.0"
23
+ spec.required_ruby_version = ">= 2.5.0"
24
24
 
25
25
  spec.add_development_dependency "byebug", "~> 11.0"
26
26
  # spec.add_development_dependency "debase"
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency "webmock"
37
37
 
38
38
  spec.add_runtime_dependency "liquid", "~> 4"
39
- spec.add_runtime_dependency "relaton", ">=1.8.0"
39
+ spec.add_runtime_dependency "relaton", ">= 1.9.1"
40
40
  spec.add_runtime_dependency "thor"
41
41
  spec.add_runtime_dependency "thor-hollaback"
42
42
  end
@@ -17,7 +17,7 @@
17
17
 
18
18
  <div class="doc-type-wrap">
19
19
  <div class="doc-type {{ document.type | downcase | split: " " | join: "-" }}">
20
- {{ document.type }}
20
+ {{ document.doctype }}
21
21
  </div>
22
22
  </div>
23
23
  </div>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-17 00:00:00.000000000 Z
11
+ date: 2021-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: 1.8.0
173
+ version: 1.9.1
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: 1.8.0
180
+ version: 1.9.1
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: thor
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -237,6 +237,7 @@ files:
237
237
  - lib/relaton/cli.rb
238
238
  - lib/relaton/cli/base_convertor.rb
239
239
  - lib/relaton/cli/command.rb
240
+ - lib/relaton/cli/data_fetcher.rb
240
241
  - lib/relaton/cli/full_text_search.rb
241
242
  - lib/relaton/cli/relaton_file.rb
242
243
  - lib/relaton/cli/subcommand_collection.rb
@@ -262,7 +263,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
262
263
  requirements:
263
264
  - - ">="
264
265
  - !ruby/object:Gem::Version
265
- version: 2.4.0
266
+ version: 2.5.0
266
267
  required_rubygems_version: !ruby/object:Gem::Requirement
267
268
  requirements:
268
269
  - - ">="