ndr_import 10.2.0 → 10.3.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 +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +1 -1
- data/lib/ndr_import/file/all.rb +1 -0
- data/lib/ndr_import/file/vcf.rb +25 -0
- data/lib/ndr_import/vcf/table.rb +21 -0
- data/lib/ndr_import/version.rb +1 -1
- data/lib/ndr_import.rb +1 -0
- metadata +22 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 877346774d65eccb73f913081d75a48345a92b9e4c11e6f87702c9e0d59ebc3d
|
4
|
+
data.tar.gz: e59f23137e7568ce5e6eb1e4734b9046aed8f8fa93f392a9f2d82091013c3c04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bd15b2baf53b654a9f2be306d45dd3a509c298427790c139431f9f77df84b14f6506d625620b6781e9d44315fb8ada40307865a059c2ae3e78945293065dc9f
|
7
|
+
data.tar.gz: 06070cd9f9d5311835a523f8f926c938e0c65561c863d8bc972a1250a278ccf06991013773c31f877173873b600bbee40e6ce9faa6d3da167dd93a4fc11b4965
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
## [Unreleased]
|
2
|
+
=======
|
2
3
|
*no unreleased changes*
|
3
4
|
|
5
|
+
## 10.3.0 / 2023-09-07
|
6
|
+
### Added
|
7
|
+
* VCF file support
|
8
|
+
* Support Ruby 3.2. Drop support for Ruby 2.7, Rails 6.0
|
9
|
+
|
4
10
|
## 10.2.0 / 2023-05-16
|
5
11
|
* avro file support
|
6
12
|
* allow storage of `significant_mapped_fields` in `Table`
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# NdrImport [](https://github.com/NHSDigital/ndr_import/actions?query=workflow%3Atest) [](https://rubygems.org/gems/ndr_import) [](https://www.rubydoc.info/gems/ndr_import)
|
2
2
|
This is the NHS Digital (NHSD) National Disease Registers (NDR) Import ETL ruby gem, providing:
|
3
3
|
|
4
|
-
1. file import handlers for *extracting* data from delimited files (csv, pipe, tab, thorn), JSON Lines, .xls(x) spreadsheets, .doc(x) word documents, PDF, PDF AcroForms, XML, 7-Zip, Zip and
|
4
|
+
1. file import handlers for *extracting* data from delimited files (csv, pipe, tab, thorn), JSON Lines, .xls(x) spreadsheets, .doc(x) word documents, PDF, PDF AcroForms, XML, 7-Zip, Zip, avro and VCF files.
|
5
5
|
2. table mappers for *transforming* tabular and non-tabular data into key value pairs grouped by a common "klass".
|
6
6
|
|
7
7
|
## Installation
|
data/lib/ndr_import/file/all.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'bio-vcf/vcfline'
|
2
|
+
require 'ndr_support/safe_file'
|
3
|
+
require_relative 'registry'
|
4
|
+
|
5
|
+
module NdrImport
|
6
|
+
# This is one of a collection of file handlers that deal with individual formats of data.
|
7
|
+
# They can be instantiated directly or via the factory method Registry.tables
|
8
|
+
module File
|
9
|
+
# This class is a vcf file handler that returns a single table.
|
10
|
+
class Vcf < Base
|
11
|
+
private
|
12
|
+
|
13
|
+
def rows(&block)
|
14
|
+
return enum_for(:rows) unless block
|
15
|
+
|
16
|
+
::File.read(@filename).each_line do |line|
|
17
|
+
next if line =~ /^##/
|
18
|
+
|
19
|
+
yield BioVcf::VcfLine.parse(line)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
Registry.register(Vcf, 'vcf')
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'ndr_import/table'
|
2
|
+
|
3
|
+
module NdrImport
|
4
|
+
module Vcf
|
5
|
+
# Syntatic sugar to ensure `header_lines` and `footer_lines` are 1 and 0 respectively.
|
6
|
+
# All other Table logic is inherited from `NdrImport::Table`
|
7
|
+
class Table < ::NdrImport::Table
|
8
|
+
def self.all_valid_options
|
9
|
+
super - %w[delimiter header_lines footer_lines xml_record_xpath]
|
10
|
+
end
|
11
|
+
|
12
|
+
def header_lines
|
13
|
+
1
|
14
|
+
end
|
15
|
+
|
16
|
+
def footer_lines
|
17
|
+
0
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/ndr_import/version.rb
CHANGED
data/lib/ndr_import.rb
CHANGED
@@ -10,6 +10,7 @@ require 'ndr_import/fixed_width/table'
|
|
10
10
|
require 'ndr_import/xml/table'
|
11
11
|
require 'ndr_import/pdf_form/table'
|
12
12
|
require 'ndr_import/avro/table'
|
13
|
+
require 'ndr_import/vcf/table'
|
13
14
|
require 'ndr_import/unmapped_data_error'
|
14
15
|
require 'ndr_import/acroform_reader'
|
15
16
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ndr_import
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.
|
4
|
+
version: 10.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NCRS Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '6.
|
33
|
+
version: '6.1'
|
34
34
|
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: '7.1'
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '6.
|
43
|
+
version: '6.1'
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '7.1'
|
@@ -106,6 +106,20 @@ dependencies:
|
|
106
106
|
- - "~>"
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: 1.11.0
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: bio-vcf
|
111
|
+
requirement: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - "~>"
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: 0.9.5
|
116
|
+
type: :runtime
|
117
|
+
prerelease: false
|
118
|
+
version_requirements: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - "~>"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 0.9.5
|
109
123
|
- !ruby/object:Gem::Dependency
|
110
124
|
name: docx
|
111
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -399,6 +413,7 @@ files:
|
|
399
413
|
- lib/ndr_import/file/seven_zip.rb
|
400
414
|
- lib/ndr_import/file/text.rb
|
401
415
|
- lib/ndr_import/file/unregistered_filetype.rb
|
416
|
+
- lib/ndr_import/file/vcf.rb
|
402
417
|
- lib/ndr_import/file/word.rb
|
403
418
|
- lib/ndr_import/file/xml.rb
|
404
419
|
- lib/ndr_import/file/zip.rb
|
@@ -424,6 +439,7 @@ files:
|
|
424
439
|
- lib/ndr_import/table.rb
|
425
440
|
- lib/ndr_import/universal_importer_helper.rb
|
426
441
|
- lib/ndr_import/unmapped_data_error.rb
|
442
|
+
- lib/ndr_import/vcf/table.rb
|
427
443
|
- lib/ndr_import/version.rb
|
428
444
|
- lib/ndr_import/xml/control_char_escaper.rb
|
429
445
|
- lib/ndr_import/xml/table.rb
|
@@ -439,14 +455,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
439
455
|
requirements:
|
440
456
|
- - ">="
|
441
457
|
- !ruby/object:Gem::Version
|
442
|
-
version: '
|
458
|
+
version: '3.0'
|
443
459
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
444
460
|
requirements:
|
445
461
|
- - ">="
|
446
462
|
- !ruby/object:Gem::Version
|
447
463
|
version: '0'
|
448
464
|
requirements: []
|
449
|
-
rubygems_version: 3.
|
465
|
+
rubygems_version: 3.4.10
|
450
466
|
signing_key:
|
451
467
|
specification_version: 4
|
452
468
|
summary: NDR Import
|