eco-helpers 1.3.18 → 1.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a61c411db84db417e4d9004d2e8f9359b423cb91ac31b40eaf390e9b3e7a4f0a
4
- data.tar.gz: 3431111bd4259b33a8c6ac38ad5ce67226c4e2a8c9c95b311142d7896f9d68f1
3
+ metadata.gz: 27ff9c6e496ac4cc7d08cb7f8fec22096ccd6aa915103de89048229e334cbc46
4
+ data.tar.gz: 0baecbe3aeb2ea75ce995395f15d2daba1b59a8e5587d2ce1537d99c92db9c61
5
5
  SHA512:
6
- metadata.gz: afae206900769f68a8733dbe72d3277cf610fd4d7e92a1adda5197685889511fb80c9a424987f59306c59fa251b79a6f929d0dfc566c301cd3703c5fc6c5a2bf
7
- data.tar.gz: 19d0d4c7c3a24c194b02faee98bd2ad2c55d8a8d7522681f2d1918594207cf673b827e4a510646c1f21b302105290b7b31da41be98a80112ff6d8c0c6e398826
6
+ metadata.gz: 5c435f203bf8d3829829e8d00b74714a479544f48f0d0e081c83b1441a84a5bf6d9be678cab4aa60c09e9f5de3642388904ea52462477c83d259ba6960bab109
7
+ data.tar.gz: 7750b44622529f48bc58d577e4783affa8b1b5c7db58e780ff974634ee88dadcc4b0a93fe86879eec8cc4854959ce95ffa5cf7c256d5f458a2814715c7b9b6bc
@@ -1,7 +1,42 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## [1.3.18] - 2020-07-xx
4
+ ## [1.5.0] - 2020-09-11
5
+
6
+ ### Added
7
+ - `Eco::Data::Files#file_empty?` to prevent error when checking encoding
8
+ ### Changed
9
+ - change abilities to align with ecoPortal release `1.5.2`
10
+ ### Fixed
11
+ - `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `encoding` when it's `bom`
12
+ * apparently, this can only be achieved by passing an argument such as `rb:bom|utf-8`
13
+ * best reference found: https://stackoverflow.com/a/60794851/4352306
14
+
15
+ ## [1.4.2] - 2020-07-23
16
+
17
+ ### Added
18
+ ### Changed
19
+ ### Fixed
20
+ - preserve backtrace on logging
21
+
22
+ ## [1.4.0] - 2020-07-14
23
+
24
+ ### Added
25
+ ### Changed
26
+ - change abilities to align with ecoPortal release `1.5.0`
27
+ - remove some patches on `ecoportal-api`
28
+ - removed patch method `Ecoportal::API::V1::Person#sync`
29
+ ### Fixed
30
+ - `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `:encoding` when it's `bom`
31
+
32
+ ## [1.3.19] - 2020-07-23
33
+
34
+ ### Added
35
+ ### Changed
36
+ ### Fixed
37
+ - preserve backtrace on logging
38
+
39
+ ## [1.3.18] - 2020-07-08
5
40
 
6
41
  ### Added
7
42
  ### Changed
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency "yard", "~> 0.9", ">= 0.9.18"
29
29
  s.add_development_dependency "redcarpet", "~> 3.5", ">= 3.5.0"
30
30
 
31
- s.add_dependency 'ecoportal-api', '~> 0.5', '>= 0.5.8'
31
+ s.add_dependency 'ecoportal-api', '~> 0.7', '>= 0.7.0'
32
32
  s.add_dependency 'aws-sdk-s3', '~> 1', '>= 1.64.0'
33
33
  s.add_dependency 'aws-sdk-ses', '~> 1', '>= 1.29.0'
34
34
  s.add_dependency 'dotenv', '~> 2.7', '>= 2.7.0'
@@ -1,4 +1,2 @@
1
- require_relative 'ecoportal_api/base_model'
2
1
  require_relative 'ecoportal_api/external_person'
3
2
  require_relative 'ecoportal_api/internal_person'
4
- require_relative 'ecoportal_api/account_preferences'
@@ -3,10 +3,6 @@ module Ecoportal
3
3
  class V1
4
4
  class Person
5
5
 
6
- def sync
7
- consolidate!
8
- end
9
-
10
6
  def reset_details!
11
7
  doc["details"] = JSON.parse(original_doc["details"])
12
8
  end
@@ -1,8 +1,8 @@
1
1
  class ::Exception
2
2
  def patch_full_message
3
3
  msg = []
4
- msg << "#{backtrace.shift} #{message} (#{self.class.to_s})"
5
- backtrace.each {|bt| msg << "#{" "*8}from #{bt}"}
4
+ msg << "\n#{backtrace.first} \n#{message} (#{self.class.to_s})"
5
+ backtrace[1..-1].each_with_index {|bt, i| msg << "#{" "*8}#{i+1}: from #{bt}"}
6
6
  msg.join("\n")
7
7
  end
8
8
  end
@@ -5,6 +5,11 @@
5
5
  "reports": "view",
6
6
  "organization": null,
7
7
  "people": null,
8
+ "person_core": null,
9
+ "person_core_create": null,
10
+ "person_core_edit": null,
11
+ "person_account": null,
12
+ "person_details": null,
8
13
  "pages": "view",
9
14
  "page_editor": null,
10
15
  "registers": "view"
@@ -14,7 +19,11 @@
14
19
  "data": "view",
15
20
  "reports": "view",
16
21
  "organization": null,
17
- "people": "attach",
22
+ "person_core": "attach",
23
+ "person_core_create": null,
24
+ "person_core_edit": null,
25
+ "person_account": null,
26
+ "person_details": "view",
18
27
  "pages": "create",
19
28
  "page_editor": "basic",
20
29
  "registers": "view"
@@ -24,7 +33,11 @@
24
33
  "data": "update",
25
34
  "reports": "edit",
26
35
  "organization": "view",
27
- "people": "view",
36
+ "person_core": "view_people_manager",
37
+ "person_core_create": null,
38
+ "person_core_edit": null,
39
+ "person_account": "view",
40
+ "person_details": "view",
28
41
  "pages": "create",
29
42
  "page_editor": "intermediate",
30
43
  "registers": "view"
@@ -34,7 +47,11 @@
34
47
  "data": "administrate",
35
48
  "reports": "administrate",
36
49
  "organization": "administrate",
37
- "people": "edit",
50
+ "person_core": "view_people_manager",
51
+ "person_core_create": "create",
52
+ "person_core_edit": "edit",
53
+ "person_account": "edit",
54
+ "person_details": "edit_private",
38
55
  "pages": "administrate",
39
56
  "page_editor": "advanced",
40
57
  "registers": "dashboard"
@@ -3,7 +3,11 @@
3
3
  "data": [null, "view", "update", "administrate", "implement"],
4
4
  "reports": [null, "view", "edit", "administrate"],
5
5
  "organization": [null, "view", "administrate", "implement"],
6
- "people": [null, "attach", "view", "view_private", "edit", "dashboard"],
6
+ "person_core": [null, "attach", "view_people_manager", "dashboard"],
7
+ "person_core_create": [null, "create"],
8
+ "person_core_edit": [null, "edit"],
9
+ "person_account": [null, "view", "create", "edit"],
10
+ "person_details": [null, "view", "edit_public", "view_private", "edit_private"],
7
11
  "pages": [null, "view", "update", "create", "administrate"],
8
12
  "page_editor": [null, "basic", "intermediate", "advanced", "implement"],
9
13
  "registers": [null, "view", "dashboard", "administrate", "implement"]
@@ -15,9 +15,14 @@ module Eco
15
15
  end
16
16
 
17
17
  def read(file, **kargs)
18
- coding = Eco::API::Common::Session::FileManager.encoding(file)
19
- kargs = {headers: true, skip_blanks: true, encoding: coding}.merge(kargs)
20
- out = super(file, **kargs).reject do |row|
18
+ kargs = {headers: true, skip_blanks: true}.merge(kargs)
19
+
20
+ args = [file].tap do |arg|
21
+ coding = Eco::API::Common::Session::FileManager.encoding(file)
22
+ arg.push("rb:bom|utf-8") if coding == "bom"
23
+ end
24
+
25
+ out = super(*args, **kargs).reject do |row|
21
26
  values = row.to_hash.values
22
27
  values.all?(&:nil?) || values.map(&:to_s).all?(&:empty?)
23
28
  end
@@ -62,8 +62,13 @@ module Eco
62
62
  File.write(dest_file, File.read(source_file))
63
63
  end
64
64
 
65
+ def file_empty?(path)
66
+ return true if !File.file?(path)
67
+ File.zero?(path)
68
+ end
69
+
65
70
  def has_bom?(path)
66
- return false if !path
71
+ return false if !path || file_empty?(path)
67
72
  File.open(path, "rb") do |f|
68
73
  bytes = f.read(3)
69
74
  return bytes.unpack("C*") == [239, 187, 191]
@@ -71,7 +76,7 @@ module Eco
71
76
  end
72
77
 
73
78
  def encoding(path)
74
- has_bom?(path) ? "bom|utf-8" : "utf-8"
79
+ has_bom?(path) ? "bom" : "utf-8"
75
80
  end
76
81
 
77
82
  def script_subfolder
@@ -1,3 +1,3 @@
1
1
  module Eco
2
- VERSION = "1.3.18"
2
+ VERSION = "1.5.0"
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: 1.3.18
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
@@ -108,22 +108,22 @@ dependencies:
108
108
  name: ecoportal-api
109
109
  requirement: !ruby/object:Gem::Requirement
110
110
  requirements:
111
- - - "~>"
112
- - !ruby/object:Gem::Version
113
- version: '0.5'
114
111
  - - ">="
115
112
  - !ruby/object:Gem::Version
116
- version: 0.5.8
113
+ version: 0.7.0
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.7'
117
117
  type: :runtime
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '0.5'
124
121
  - - ">="
125
122
  - !ruby/object:Gem::Version
126
- version: 0.5.8
123
+ version: 0.7.0
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '0.7'
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: aws-sdk-s3
129
129
  requirement: !ruby/object:Gem::Requirement
@@ -253,8 +253,6 @@ files:
253
253
  - lib/eco/api/common/session/sftp.rb
254
254
  - lib/eco/api/common/version_patches.rb
255
255
  - lib/eco/api/common/version_patches/ecoportal_api.rb
256
- - lib/eco/api/common/version_patches/ecoportal_api/account_preferences.rb
257
- - lib/eco/api/common/version_patches/ecoportal_api/base_model.rb
258
256
  - lib/eco/api/common/version_patches/ecoportal_api/external_person.rb
259
257
  - lib/eco/api/common/version_patches/ecoportal_api/internal_person.rb
260
258
  - lib/eco/api/common/version_patches/exception.rb
@@ -1,32 +0,0 @@
1
- module Ecoportal
2
- module API
3
- class Internal
4
- class Preferences < Common::BaseModel
5
- passthrough :kiosk_enabled, :kiosk_workflow_message, :kiosk_create_button_label,
6
- :kiosk_create_button_help, :kiosk_return_button_label, :kiosk_return_button_help,
7
- :kiosk_dashboard_button_label, :kiosk_dashboard_button_help
8
-
9
- [
10
- :show_sidebar,
11
- :show_shortcuts,
12
- :show_coming_soon,
13
- :show_recently_visited_forms,
14
- :show_tasks,
15
- :show_task_bubbles
16
- ].map(&:to_s).each do |field|
17
- define_method(field) do
18
- if doc.key?(field)
19
- doc[field]
20
- else
21
- true
22
- end
23
- end
24
- define_method("#{field}=") do |value|
25
- doc[field] = !!value
26
- end
27
- end
28
-
29
- end
30
- end
31
- end
32
- end
@@ -1,27 +0,0 @@
1
- module Ecoportal
2
- module API
3
- module Common
4
- class BaseModel
5
-
6
- attr_reader :initial_doc
7
-
8
- def initialize(doc = {}, parent: self, key: nil)
9
- @_parent = parent
10
- @_key = key
11
- if !_parent || !_key
12
- @doc = doc
13
- @original_doc = JSON.parse(@doc.to_json)
14
- @initial_doc = JSON.parse(@doc.to_json)
15
- end
16
- end
17
-
18
- def initial_doc
19
- raise UnlinkedModel.new unless linked?
20
- return @initial_doc if is_root?
21
- _parent.initial_doc.dig(*[_key].flatten)
22
- end
23
-
24
- end
25
- end
26
- end
27
- end