eco-helpers 2.3.2 → 2.3.3

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: e7446c914bf420a89e5964fea7fe67063f75ff6f26a999c2bff908daf3be7636
4
- data.tar.gz: 3d59cd7ffad8e9e5c0d8ce3e2c032024854b7785f5c2742a912fecfc793a435f
3
+ metadata.gz: 4cf51ce07b09a2eaa798de0b8524206de5a91160bd3d5df2af980c8985bfbdda
4
+ data.tar.gz: a203cc025f972e1b35c605450f42556911b913d43f8b860ff8e6f346eb93fb91
5
5
  SHA512:
6
- metadata.gz: 998823b933ca7795d2681556c9a2ca0c5de23ee342ff77877f79ebda57949f2c3a3b074d80d9780fae3a16ccc9c84fb1dfd4b63a1ada03d060bc6a01d9ee2750
7
- data.tar.gz: 9cff3c674bac74f83de92b2b3847a3b9817f7abaf7abd0436347a2aec87d88e1a2ee2388d6768d8e23f28d7e5de69cd5195df3d52b0b801b8bf6925d9b53f8ca
6
+ metadata.gz: ff86775ef30897999f6e109cb7a442fb0d8eaeae789715a91f62483d56c181a553f99a8d6c6aa7ce406da0577bfe1b0c90a02fcc918dbde7d8cecba398df032a
7
+ data.tar.gz: a16c1de5d41090ad98adcd8540da800a5bb0857c7f15bbc9c88898d0885d2f9ae9392a1b699c4d26e8378d9799d750a509230924076ffc1570a2418b08bfffb0
data/CHANGELOG.md CHANGED
@@ -1,12 +1,25 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## [2.3.3] - 2023-03-xx
4
+ ## [2.3.4] - 2023-03-xx
5
5
 
6
6
  ### Added
7
+ - Added new option `-input-encoding` to specify the encoding of an input file
8
+
7
9
  ### Changed
10
+ - `ecoportal-api` **gem** update
11
+
8
12
  ### Fixed
9
13
 
14
+ ## [2.3.3] - 2023-03-16
15
+
16
+ ### Added
17
+ - Added new option `-input-encoding` to specify the encoding of an input file
18
+
19
+ ### Changed
20
+ - `ecoportal-api` **gem** update
21
+
22
+
10
23
  ## [2.3.2] - 2023-03-10
11
24
 
12
25
  ### Fixed
data/eco-helpers.gemspec CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency "yard", ">= 0.9.26", "< 0.10"
31
31
  spec.add_development_dependency "redcarpet", ">= 3.5.1", "< 3.6"
32
32
 
33
- spec.add_dependency 'ecoportal-api', '>= 0.9.2', '< 0.10'
33
+ spec.add_dependency 'ecoportal-api', '>= 0.9.3', '< 0.10'
34
34
  spec.add_dependency 'ecoportal-api-v2', '>= 1.1.1', '< 1.2'
35
35
  spec.add_dependency 'ecoportal-api-graphql', '>= 0.3.1', '< 0.4'
36
36
  spec.add_dependency 'aws-sdk-s3', '>= 1.83.0', '< 2'
@@ -195,12 +195,12 @@ module Eco
195
195
  end
196
196
  ext = File.extname(file)
197
197
  encoding ||= Eco::API::Common::Session::FileManager.encoding(file)
198
- encoding = (encoding != "utf-8")? "#{encoding}|utf-8": encoding
199
198
  read_with_tolerance(file, encoding: encoding)
200
199
  end
201
200
 
202
201
  def read_with_tolerance(file, encoding:)
203
202
  if content = File.read(file, encoding: encoding)
203
+ content = content.encode("utf-8")
204
204
  tolerance = 5
205
205
  content.scrub do |bytes|
206
206
  replacement = '<' + bytes.unpack('H*')[0] + '>'
@@ -220,9 +220,7 @@ module Eco
220
220
  logger.fatal(msg)
221
221
  raise msg
222
222
  end
223
-
224
223
  end
225
-
226
224
  end
227
225
  end
228
226
  end
@@ -2,7 +2,10 @@ module Eco
2
2
  module API
3
3
  class MicroCases
4
4
  # Detects who has left the organization and `yield` s them one by one to the given block
5
- # @note to be used only when the input file is the full DB
5
+ # @note
6
+ # - To be used only when the input file is the full DB
7
+ # - The `Entries#find` method. If the people manager entry does not have `external_id`,
8
+ # but has a matching `email` wiht some input entry (row), it won't be identified as a leaver.
6
9
  # @param entries [Eco::API::Common::People::Entries] the input entries with the data.
7
10
  # @param people [Eco::API::Organization::People] target existing _People_ of the current update.
8
11
  # @param options [Hash] the options.
@@ -154,8 +154,8 @@ module Eco
154
154
  # @see Eco::API::Common::People::EntryFactory#entries
155
155
  # @param (see Eco::API::Common::People::EntryFactory#entries)
156
156
  # @return [Eco::API::Common::People::Entries] collection of entries.
157
- def entries(*args)
158
- entry_factory.entries(*args).tap do |collection|
157
+ def entries(*args, **kargs)
158
+ entry_factory.entries(*args, **kargs).tap do |collection|
159
159
  logger.info("Loaded #{collection.length} input entries.")
160
160
  end
161
161
  end
@@ -55,10 +55,14 @@ ASSETS.cli.config do |cnf|
55
55
  options.deep_merge!(input: {file: {name: file}})
56
56
  options.deep_merge!(input: {file: {format: format}})
57
57
 
58
+ encoding = options.dig(:input, :file, :encoding)
59
+
58
60
  case format
59
61
  when :xml
60
62
  [file].flatten.each {|f| session.config.files.validate(:xml, f)}
61
- input = session.entries(file: file, format: format)
63
+ kargs = {file: file, format: format}
64
+ kargs.merge!(encoding: encoding) if encoding
65
+ input = session.entries(**kargs)
62
66
  when :xls
63
67
  input = session.entries(file: file, format: format)
64
68
  when :json
@@ -66,7 +70,9 @@ ASSETS.cli.config do |cnf|
66
70
  people.merge(JSON.parse(File.read(file)))
67
71
  end
68
72
  else # :csv
69
- input = session.csv_entries(file, check_headers: true)
73
+ kargs = {check_headers: true}
74
+ kargs.merge!(encoding: encoding) if encoding
75
+ input = session.csv_entries(file, **kargs)
70
76
  end
71
77
  end
72
78
  input
@@ -68,6 +68,13 @@ ASSETS.cli.config do |cnf|
68
68
  options.deep_merge!(input: {entries_from: true})
69
69
  end
70
70
 
71
+ desc = "Used to specify the input file encoding"
72
+ options_set.add("-input-encoding", desc) do |options, session|
73
+ if encoding = SCR.get_arg("-input-encoding", with_param: true)
74
+ options.deep_merge!(input: {file: {encoding: encoding}})
75
+ end
76
+ end
77
+
71
78
  desc = "Used to only get the people from the input file. It will also include their current and new supervisors."
72
79
  options_set.add("-get-partial", desc) do |options, session|
73
80
  options.deep_merge!(people: {
data/lib/eco/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eco
2
- VERSION = "2.3.2"
2
+ VERSION = "2.3.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eco-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
@@ -116,7 +116,7 @@ dependencies:
116
116
  requirements:
117
117
  - - ">="
118
118
  - !ruby/object:Gem::Version
119
- version: 0.9.2
119
+ version: 0.9.3
120
120
  - - "<"
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0.10'
@@ -126,7 +126,7 @@ dependencies:
126
126
  requirements:
127
127
  - - ">="
128
128
  - !ruby/object:Gem::Version
129
- version: 0.9.2
129
+ version: 0.9.3
130
130
  - - "<"
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0.10'