gunwale 0.5.1 → 0.6.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/Gemfile +4 -0
- data/README.md +1 -1
- data/Rakefile +2 -3
- data/lib/row_boat/base.rb +6 -6
- data/lib/row_boat/helpers.rb +8 -0
- data/lib/row_boat/version.rb +1 -1
- data/row_boat.gemspec +21 -22
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52461a6f1dea23bbcf0b8fa37d85ea21832a5bd9e4a24e133e04c1e2c4d8246a
|
4
|
+
data.tar.gz: bd4a920b50c3333e0590413808e67e9dc5a5f214014f26f44b74c905b1244ffb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 758d23294d5c60560bbf9e48e1d20d1bf304ddac4134d473099b257db34538368f6b421a954aa36ed3969475a36c7220fec97d44391e7c56d15ae40b1ba2dc58
|
7
|
+
data.tar.gz: 8b3d23b63453c8c7e6371310d84706d428f82777b1daac7ef36d5165ddcaeecc9e62c8d4ce4f8ce54fd5b9438c3818392a7bb2b2cc2cc2f72bab33619bf46005
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -25,7 +25,7 @@ It uses [SmarterCSV](https://github.com/tilo/smarter_csv) and [`activerecord-imp
|
|
25
25
|
Add this line to your application's Gemfile:
|
26
26
|
|
27
27
|
```ruby
|
28
|
-
gem "gunwale",
|
28
|
+
gem "gunwale", require: "row_boat"
|
29
29
|
```
|
30
30
|
|
31
31
|
And then execute:
|
data/Rakefile
CHANGED
@@ -2,11 +2,10 @@
|
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
4
|
require "rspec/core/rake_task"
|
5
|
-
require "
|
5
|
+
require "standard/rake"
|
6
6
|
require "standalone_migrations"
|
7
7
|
|
8
8
|
RSpec::Core::RakeTask.new(:spec)
|
9
|
-
RuboCop::RakeTask.new
|
10
9
|
StandaloneMigrations::Tasks.load_tasks
|
11
10
|
|
12
|
-
task default: %i[
|
11
|
+
task default: %i[standard spec]
|
data/lib/row_boat/base.rb
CHANGED
@@ -19,8 +19,8 @@ module RowBoat
|
|
19
19
|
# @return [Hash] a hash with +:invalid_records+, +:total_inserts+, +:inserted_ids+, and +:skipped_rows+.
|
20
20
|
#
|
21
21
|
# @see https://github.com/tilo/smarter_csv#documentation SmarterCSV Docs
|
22
|
-
def import(
|
23
|
-
new(
|
22
|
+
def import(*, &)
|
23
|
+
new(*, &).import
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -266,9 +266,9 @@ module RowBoat
|
|
266
266
|
def column_mapping_options
|
267
267
|
case column_mapping
|
268
268
|
when Hash
|
269
|
-
{
|
269
|
+
{key_mapping: column_mapping, remove_unmapped_keys: true}
|
270
270
|
when Array
|
271
|
-
{
|
271
|
+
{user_provided_headers: column_mapping}
|
272
272
|
else
|
273
273
|
raise InvalidColumnMapping, "#column_mapping must be a Hash or an Array: got `#{column_mapping}`"
|
274
274
|
end
|
@@ -282,9 +282,9 @@ module RowBoat
|
|
282
282
|
|
283
283
|
# @api private
|
284
284
|
# @private
|
285
|
-
def parse_rows(&
|
285
|
+
def parse_rows(&)
|
286
286
|
csv_options = ::RowBoat::Helpers.extract_csv_options(merged_options)
|
287
|
-
::SmarterCSV.process(csv_source, csv_options, &
|
287
|
+
::SmarterCSV.process(csv_source, csv_options, &)
|
288
288
|
end
|
289
289
|
|
290
290
|
# @api private
|
data/lib/row_boat/helpers.rb
CHANGED
@@ -4,11 +4,13 @@ module RowBoat
|
|
4
4
|
# @api private
|
5
5
|
module Helpers
|
6
6
|
CSV_OPTION_KEYS = %i[
|
7
|
+
auto_row_sep_chars
|
7
8
|
chunk_size
|
8
9
|
col_sep
|
9
10
|
comment_regexp
|
10
11
|
convert_values_to_numeric
|
11
12
|
downcase_header
|
13
|
+
duplicate_header_suffix
|
12
14
|
file_encoding
|
13
15
|
force_simple_split
|
14
16
|
force_utf8
|
@@ -16,20 +18,26 @@ module RowBoat
|
|
16
18
|
invalid_byte_sequence
|
17
19
|
keep_original_headers
|
18
20
|
key_mapping
|
21
|
+
missing_header_prefix
|
19
22
|
quote_char
|
20
23
|
remove_empty_hashes
|
21
24
|
remove_empty_values
|
22
25
|
remove_unmapped_keys
|
23
26
|
remove_values_matching
|
24
27
|
remove_zero_values
|
28
|
+
required_headers
|
29
|
+
required_keys
|
25
30
|
row_sep
|
31
|
+
silence_missing_keys
|
26
32
|
skip_lines
|
33
|
+
strict
|
27
34
|
strings_as_keys
|
28
35
|
strip_chars_from_headers
|
29
36
|
strip_whitespace
|
30
37
|
user_provided_headers
|
31
38
|
value_converters
|
32
39
|
verbose
|
40
|
+
with_line_numbers
|
33
41
|
].freeze
|
34
42
|
|
35
43
|
IMPORT_OPTION_KEYS = %i[
|
data/lib/row_boat/version.rb
CHANGED
data/row_boat.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
lib = File.expand_path("../lib", __FILE__)
|
@@ -6,38 +5,38 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
6
5
|
require "row_boat/version"
|
7
6
|
|
8
7
|
Gem::Specification.new do |spec|
|
9
|
-
spec.name
|
10
|
-
spec.version
|
11
|
-
spec.authors
|
12
|
-
spec.email
|
8
|
+
spec.name = "gunwale"
|
9
|
+
spec.version = RowBoat::VERSION
|
10
|
+
spec.authors = ["Charlton Trezevant"]
|
11
|
+
spec.email = ["charlton@packfiles.io"]
|
13
12
|
|
14
|
-
spec.summary
|
15
|
-
spec.description
|
16
|
-
spec.homepage
|
17
|
-
spec.license
|
13
|
+
spec.summary = "Turn the rows of your CSV into rows in your database"
|
14
|
+
spec.description = "Turn the rows of your CSV into rows in your database"
|
15
|
+
spec.homepage = "https://github.com/packfiles/gunwale"
|
16
|
+
spec.license = "MIT"
|
18
17
|
|
19
|
-
spec.files
|
18
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
20
19
|
f.match(%r{^(test|spec|features)/})
|
21
20
|
end
|
22
|
-
spec.bindir
|
23
|
-
spec.executables
|
21
|
+
spec.bindir = "exe"
|
22
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
23
|
spec.require_paths = ["lib"]
|
25
24
|
|
26
|
-
spec.add_dependency "activerecord",
|
27
|
-
spec.add_dependency
|
28
|
-
spec.add_dependency "smarter_csv",
|
25
|
+
spec.add_dependency "activerecord", "~> 7.1", ">= 7.1.3.2"
|
26
|
+
spec.add_dependency "activerecord-import", "~> 1.6"
|
27
|
+
spec.add_dependency "smarter_csv", "~> 1.13", ">= 1.13.0"
|
29
28
|
|
30
|
-
spec.add_development_dependency "appraisal",
|
29
|
+
spec.add_development_dependency "appraisal", "~> 2.5"
|
31
30
|
spec.add_development_dependency "awesome_print"
|
32
31
|
spec.add_development_dependency "bundler", "~> 2.5.9"
|
33
|
-
spec.add_development_dependency "database_cleaner",
|
32
|
+
spec.add_development_dependency "database_cleaner", "~> 2.0", ">= 2.0.2"
|
34
33
|
spec.add_development_dependency "pg"
|
35
34
|
spec.add_development_dependency "pry"
|
36
35
|
spec.add_development_dependency "pry-doc"
|
37
36
|
spec.add_development_dependency "pry-nav"
|
38
|
-
spec.add_development_dependency "rake",
|
39
|
-
spec.add_development_dependency "rspec",
|
40
|
-
spec.add_development_dependency "rubocop",
|
41
|
-
spec.add_development_dependency "standalone_migrations",
|
42
|
-
spec.add_development_dependency "yard",
|
37
|
+
spec.add_development_dependency "rake", "~> 13.2", ">= 13.2.1"
|
38
|
+
spec.add_development_dependency "rspec", "~> 3.13"
|
39
|
+
spec.add_development_dependency "rubocop", "~> 1.63", ">= 1.63.5"
|
40
|
+
spec.add_development_dependency "standalone_migrations", "~> 7.1", ">= 7.1.3"
|
41
|
+
spec.add_development_dependency "yard", "~> 0.9.36"
|
43
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gunwale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charlton Trezevant
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -50,20 +50,20 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '1.
|
53
|
+
version: '1.13'
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 1.
|
56
|
+
version: 1.13.0
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: '1.
|
63
|
+
version: '1.13'
|
64
64
|
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: 1.
|
66
|
+
version: 1.13.0
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: appraisal
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|