csv_migration 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/csv_migration.rb +18 -8
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d180b6a00033dbef40820646796a215483303081d9c08261bc92a5084578536d
|
4
|
+
data.tar.gz: 5484cb761e2c94362c34237612045071094008b7dcfe862c3d8e017a664fc75c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fa91eaa85268edcdd25c096dc6da6368c53e372eb9c53cdd82900b1b99b8f23d4062dbb2cf089e9286bc926c4e0758ca377084c7d4253b4670856545703dedd
|
7
|
+
data.tar.gz: 7b460fcff8625c7418f7636a3e5b6883fd6f57aa7df8a7f9f313534c3747d6b1a4900fd74a60c467d3c8fa442cdf4a3305599feeae3e564d48137277d68e4d1c
|
data/lib/csv_migration.rb
CHANGED
@@ -3,22 +3,26 @@
|
|
3
3
|
# Description: Parse and test data from a csv file.
|
4
4
|
class CsvMigration
|
5
5
|
# @param [String] file_name with extension (my_file.csv)
|
6
|
+
# @param [String] file_path path to file. By default current folder
|
6
7
|
# @param [String] delimiter for parsing, by default = ';'
|
7
|
-
|
8
|
+
# @param [String] cli mode. If true then class will use only for command line. By default false
|
9
|
+
def initialize(file_name:, file_path: '', delimiter: ';', cli: false)
|
8
10
|
# File name for parsing in csv format
|
9
11
|
@file_name_csv = file_name
|
12
|
+
@file_path = file_path
|
10
13
|
@delimiter = delimiter
|
14
|
+
@cli = cli
|
11
15
|
|
12
16
|
@file_name = @file_name_csv.split('.csv').first
|
13
17
|
|
14
18
|
# File for export correct data from the base file
|
15
|
-
@correct_file_data_csv = File.expand_path("v_parser_correct_#{@file_name}.csv")
|
16
|
-
@errors_log = File.expand_path("v_parser_errors_#{@file_name}.log")
|
17
|
-
@duplicates_log = File.expand_path("v_parser_duplicates_#{@file_name}.log")
|
18
|
-
@not_saved_file_data_errors = File.expand_path("v_parser_not_saved_#{@file_name}.log")
|
19
|
+
@correct_file_data_csv = File.expand_path("#{@file_path}v_parser_correct_#{@file_name}.csv")
|
20
|
+
@errors_log = File.expand_path("#{@file_path}v_parser_errors_#{@file_name}.log")
|
21
|
+
@duplicates_log = File.expand_path("#{@file_path}v_parser_duplicates_#{@file_name}.log")
|
22
|
+
@not_saved_file_data_errors = File.expand_path("#{@file_path}v_parser_not_saved_#{@file_name}.log")
|
19
23
|
|
20
24
|
# Parsing file
|
21
|
-
@file_for_parsing = File.expand_path(@file_name_csv)
|
25
|
+
@file_for_parsing = File.expand_path(@file_path + @file_name_csv)
|
22
26
|
|
23
27
|
# Remove old files
|
24
28
|
remove_old_files
|
@@ -155,6 +159,8 @@ class CsvMigration
|
|
155
159
|
|
156
160
|
# Question action before saving data if exist errors
|
157
161
|
def error_actions
|
162
|
+
return unless @cli
|
163
|
+
|
158
164
|
print 'This file has errors. Do you want to save data without errors Y/n: '
|
159
165
|
respond = STDIN.gets.chomp
|
160
166
|
|
@@ -201,8 +207,12 @@ class CsvMigration
|
|
201
207
|
# @param [Object] value hash data from dict
|
202
208
|
def check_field(data, key, value)
|
203
209
|
if @parsing_file_header.find_index(key).nil?
|
204
|
-
|
205
|
-
|
210
|
+
if @cli
|
211
|
+
puts "Please, correct settings in the @ref_csv_head_from_file hash. Key #{key} has not been found in the header of #{@file_name_csv} file!"
|
212
|
+
exit
|
213
|
+
else
|
214
|
+
raise ArgumentError, "Please, correct settings in the @ref_csv_head_from_file hash. Key #{key} has not been found in the header of #{@file_name_csv} file!"
|
215
|
+
end
|
206
216
|
end
|
207
217
|
|
208
218
|
if value[:require] && blank?(data[@parsing_file_header.find_index(key)])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: csv_migration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Danilevsky Kirill
|
7
|
+
- Danilevsky Kirill
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '0'
|
53
53
|
requirements: []
|
54
|
-
rubygems_version: 3.
|
54
|
+
rubygems_version: 3.1.2
|
55
55
|
signing_key:
|
56
56
|
specification_version: 4
|
57
57
|
summary: Migration system from a csv file
|