eco-rake 0.2.5 → 0.2.6
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 +5 -1
- data/lib/eco-rake/lib/people/sync_launch.rb +19 -5
- data/lib/eco-rake/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6f834edf2918e4ff4e45cfcf538da2e59b632fad4222a3b996f5ab00c60fb25
|
4
|
+
data.tar.gz: 1f0a90c3242171b560b6adb848e50fc58cd569e61e915e7e9363e6c50c4c6266
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b619ed8b4ebdf32cb30fdef61f5821d821c1338464e3cfe5d2331df930f00582c0c008c1fe3dac53744b328e4d126a8609f87c71d647889028215f9b709e0895
|
7
|
+
data.tar.gz: c90b0316f090eec3f5ed131a0bfd808e75ca190f38c8f5f447524161de88c43f39aafe0d9db91a6882c4d7bd70a62ece823a3fde56cdfdc71062eee178d934a6
|
data/CHANGELOG.md
CHANGED
@@ -2,10 +2,14 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
-
## [0.2.6] - 2024-
|
5
|
+
## [0.2.6] - 2024-12-09
|
6
6
|
|
7
7
|
### Added
|
8
8
|
|
9
|
+
- `EcoRake::Lib::People::SyncLaunch` new constant `join_files`
|
10
|
+
- To specify the integration to use the target folder in raw
|
11
|
+
- Which will use all the files with matching pattern within.
|
12
|
+
|
9
13
|
### Fixed
|
10
14
|
|
11
15
|
### Changed
|
@@ -21,6 +21,7 @@ class EcoRake
|
|
21
21
|
attr_const :snapshot_mode, default: :full
|
22
22
|
attr_const :local_folder, default: '.'
|
23
23
|
attr_const :mail_to
|
24
|
+
attr_const :join_files, default: false
|
24
25
|
|
25
26
|
option_reopen :schema, default_lookup: :default_schema, required: true
|
26
27
|
option_reopen :folder, default_lookup: :local_folder
|
@@ -30,7 +31,7 @@ class EcoRake
|
|
30
31
|
def task(*_args)
|
31
32
|
return missing_files_notify unless latest_file
|
32
33
|
return process_deltas if delta?
|
33
|
-
|
34
|
+
process_full_file if full? || delta_last?
|
34
35
|
end
|
35
36
|
|
36
37
|
private
|
@@ -56,7 +57,7 @@ class EcoRake
|
|
56
57
|
puts msg
|
57
58
|
exit 1 if options[:simulate]
|
58
59
|
exit 1 if options[:no_email]
|
59
|
-
exit 1 unless inbox = mail_to
|
60
|
+
exit 1 unless (inbox = mail_to)
|
60
61
|
|
61
62
|
email_missing_files(enviro: target_enviro, to: inbox)
|
62
63
|
exit 1
|
@@ -87,12 +88,14 @@ class EcoRake
|
|
87
88
|
# @note it ensures basic information is not missing or inconsistent.
|
88
89
|
def base_command(file_or_folder)
|
89
90
|
raise "Missing target file or folder in #{self.class}" if file_or_folder.to_s.strip.empty?
|
91
|
+
|
90
92
|
usecase = base_usecase.to_sym
|
91
93
|
case usecase
|
92
94
|
when :hris
|
93
95
|
msg = "Inconsistent configuration in #{self.class}. BASE_USECASE is '#{usecase}', "
|
94
96
|
msg << "but file SNAPSHOT_MODE is '#{snapshot_mode}'"
|
95
97
|
raise msg if delta? || delta_last?
|
98
|
+
|
96
99
|
"-hris-from #{double_quote(file_or_folder)}"
|
97
100
|
when :upsert
|
98
101
|
"-upsert-from #{double_quote(file_or_folder)}"
|
@@ -110,28 +113,39 @@ class EcoRake
|
|
110
113
|
%i[partial delta].any? {|m| m == mode}
|
111
114
|
end
|
112
115
|
|
116
|
+
# only last delta (i.e. customer builds deltas based on eP full snapshot)
|
113
117
|
def delta_last?
|
114
|
-
snapshot_mode.to_s.downcase.to_sym
|
118
|
+
snapshot_mode.to_s.downcase.to_sym == :delta_last
|
115
119
|
end
|
116
120
|
|
117
121
|
# Amont the `target_files` the last in alphabetic order.
|
118
122
|
def latest_file
|
119
|
-
@latest_file ||=
|
123
|
+
@latest_file ||= ''.then do
|
124
|
+
next options[:folder] if join_files
|
125
|
+
|
126
|
+
target_files.last
|
127
|
+
end
|
120
128
|
end
|
121
129
|
|
122
130
|
# @note if there is a file_pattern method or FILE_PATTERN const, it's used as a pattern.
|
123
131
|
# @return [Array<String>] the `csv` files of the target folder
|
124
132
|
def target_files
|
125
|
-
@target_files ||=
|
133
|
+
@target_files ||= [].then do
|
134
|
+
next options[:folder] if join_files
|
135
|
+
|
136
|
+
csv_files(options[:folder], regexp: file_pattern)
|
137
|
+
end
|
126
138
|
end
|
127
139
|
|
128
140
|
# Deletes the files identified as target.
|
129
141
|
def clear_files
|
130
142
|
deleted_files = target_files.each_with_object([]) do |file, deleted|
|
131
143
|
next unless File.exist?(file)
|
144
|
+
|
132
145
|
File.delete(file)
|
133
146
|
deleted << file
|
134
147
|
end
|
148
|
+
|
135
149
|
puts "Deleted these files:\n • #{deleted_files.join("\n • ")}" unless deleted_files.empty?
|
136
150
|
end
|
137
151
|
end
|
data/lib/eco-rake/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eco-rake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura Samper
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -274,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
274
274
|
- !ruby/object:Gem::Version
|
275
275
|
version: '0'
|
276
276
|
requirements: []
|
277
|
-
rubygems_version: 3.5.
|
277
|
+
rubygems_version: 3.5.23
|
278
278
|
signing_key:
|
279
279
|
specification_version: 4
|
280
280
|
summary: A set of helpers to build re-usable `rake` integration helpers.
|