eco-helpers 2.0.14 → 2.0.15
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 +9 -1
- data/lib/eco/api/usecases/default_cases.rb +1 -0
- data/lib/eco/api/usecases/default_cases/supers_hierarchy_case.rb +59 -0
- data/lib/eco/cli/config/default/usecases.rb +6 -0
- data/lib/eco/cli/config/default/workflow.rb +5 -0
- data/lib/eco/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ea76fb273e572c873b2f23348c54b56fd4e51cd39d9bf1109ddbc4594ba260f
|
4
|
+
data.tar.gz: 56d64b1eb28202f4bd18997ff8854fdd6ae36c758217796f4739012f59d4ef5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf49254f9b3f162f278d65f734fba3d3f683906cb1202df4d4cc4f7a90f2d663655e5168cf5bdea13d78b63d8ece32bcd22541655b001f3a9bfad429d89d2de8
|
7
|
+
data.tar.gz: 3dcd85969e34079aa050546e427ebe0d28cb7ec358b121f066cd603af23c9c44bb05551ce8db061f1721832981c2b74c1a46aa095c031f9ea0fb8b29b1b65310
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
# Change Log
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
-
## [2.0.
|
4
|
+
## [2.0.15] - 2021-04-xx
|
5
|
+
|
6
|
+
### Added
|
7
|
+
- Use case `Eco::API::UseCases::DefaultCases::SupersHierarchy`, invokable via `-supers-hiearchy`
|
8
|
+
### Changed
|
9
|
+
### Fixed
|
10
|
+
- `eco/cli/config/default/workflow.rb` prevent `rescue` looping
|
11
|
+
|
12
|
+
## [2.0.14] - 2021-04-15
|
5
13
|
|
6
14
|
### Added
|
7
15
|
- `Eco::API::UseCases::DefaultCases::ToCsvCase` added option `-internal-names` to avoid overriding data on export
|
@@ -32,6 +32,7 @@ require_relative 'default_cases/reset_landing_page_case'
|
|
32
32
|
require_relative 'default_cases/restore_db_case'
|
33
33
|
require_relative 'default_cases/set_default_tag_case'
|
34
34
|
require_relative 'default_cases/set_supervisor_case'
|
35
|
+
require_relative 'default_cases/supers_hierarchy_case'
|
35
36
|
require_relative 'default_cases/switch_supervisor_case'
|
36
37
|
require_relative 'default_cases/to_csv_case'
|
37
38
|
require_relative 'default_cases/to_csv_detailed_case'
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class Eco::API::UseCases::DefaultCases::SupersHierarchy < Eco::API::Common::Loaders::UseCase
|
2
|
+
name "supers-hierarchy"
|
3
|
+
type :export
|
4
|
+
|
5
|
+
attr_reader :session, :people, :options
|
6
|
+
|
7
|
+
def main(people, session, options, usecase)
|
8
|
+
@session = session; @options = options; @people = people
|
9
|
+
|
10
|
+
save!(hierarchy)
|
11
|
+
exit(0)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def hierarchy
|
17
|
+
Eco::API::Common::People::SupervisorHelpers.supervisors_tree(people)
|
18
|
+
end
|
19
|
+
|
20
|
+
def file
|
21
|
+
@file ||= options.dig(:output, :file) || "supers_hierarchy.txt"
|
22
|
+
end
|
23
|
+
|
24
|
+
def save!(data)
|
25
|
+
ext = File.extname(file).downcase.delete(".")
|
26
|
+
|
27
|
+
File.open(file, "w") do |fd|
|
28
|
+
if ext == "txt"
|
29
|
+
create_file(data, file: file, format: :txt)
|
30
|
+
elsif ext == "html"
|
31
|
+
puts "html is still not supported"
|
32
|
+
exit(1)
|
33
|
+
create_file(data, file: file, format: :html)
|
34
|
+
elsif ext == "json"
|
35
|
+
puts "json is still not supported"
|
36
|
+
exit(1)
|
37
|
+
create_file(data, file: file, format: :json)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def create_file(tree, file:, format: :txt)
|
43
|
+
File.open(file, "w") do |fd|
|
44
|
+
fd << tree_to_str(tree, format: format)
|
45
|
+
end
|
46
|
+
puts "Generated file #{file}"
|
47
|
+
end
|
48
|
+
|
49
|
+
def tree_to_str(tree, lev: 0, format: :txt)
|
50
|
+
raise "Required Hash tree structure. Given: #{tree.class}" unless tree.is_a?(Hash)
|
51
|
+
"".tap do |str|
|
52
|
+
tree.each do |entry, subtree|
|
53
|
+
str << "#{" " * lev}#{(lev > 0)? "+-#{lev}- " : ""}#{entry.name} (#{entry.external_id}|#{entry.email}|#{entry.id})\n"
|
54
|
+
str << tree_to_str(subtree, lev: lev + 1, format: format) unless !subtree || subtree.empty?
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -1,6 +1,12 @@
|
|
1
1
|
ASSETS.cli.config do |cnf|
|
2
2
|
cnf.usecases do |cases|
|
3
3
|
|
4
|
+
desc = "Draws the Supervisors hiearchy in a file (use option -to file.ext)"
|
5
|
+
cases.add("-supers-hierarchy", :export, desc, case_name: "supers-hierarchy") do |people, session, options|
|
6
|
+
file = (SCR.get_arg("-to") && SCR.get_file("-to", required: true, should_exist: false)) || "supers_hierarchy.txt"
|
7
|
+
options.deep_merge!(output: {file: file})
|
8
|
+
end
|
9
|
+
|
4
10
|
desc = "It exports to a CSV the (filtered) people"
|
5
11
|
cases.add("-people-to-csv", :export, desc) do |people, session, options|
|
6
12
|
file = SCR.get_file("-people-to-csv", required: true, should_exist: false)
|
@@ -2,8 +2,13 @@ ASSETS.cli.config do |config|
|
|
2
2
|
ASSETS.config.workflow do |wf|
|
3
3
|
|
4
4
|
io = nil
|
5
|
+
rescued = false
|
6
|
+
|
5
7
|
# default rescue
|
6
8
|
wf.rescue do |exception, io|
|
9
|
+
next io if rescued
|
10
|
+
rescued = true
|
11
|
+
|
7
12
|
io.session.logger.debug(exception.patch_full_message)
|
8
13
|
wf.run(:close, io: io)
|
9
14
|
io
|
data/lib/eco/version.rb
CHANGED
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.0.
|
4
|
+
version: 2.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura
|
@@ -399,6 +399,7 @@ files:
|
|
399
399
|
- lib/eco/api/usecases/default_cases/restore_db_case.rb
|
400
400
|
- lib/eco/api/usecases/default_cases/set_default_tag_case.rb
|
401
401
|
- lib/eco/api/usecases/default_cases/set_supervisor_case.rb
|
402
|
+
- lib/eco/api/usecases/default_cases/supers_hierarchy_case.rb
|
402
403
|
- lib/eco/api/usecases/default_cases/switch_supervisor_case.rb
|
403
404
|
- lib/eco/api/usecases/default_cases/to_csv_case.rb
|
404
405
|
- lib/eco/api/usecases/default_cases/to_csv_detailed_case.rb
|