eco-helpers 2.3.2 → 2.3.3

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 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'