eco-helpers 0.8.4 → 0.9.1
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/lib/eco/api/session/batch_jobs.rb +2 -2
- data/lib/eco/api/usecases/default_cases/change_email_case.rb +4 -4
- data/lib/eco/api/usecases/default_cases/create_case.rb +3 -3
- data/lib/eco/api/usecases/default_cases/create_details_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/create_details_with_supervisor_case.rb +3 -3
- data/lib/eco/api/usecases/default_cases/delete_case.rb +3 -3
- data/lib/eco/api/usecases/default_cases/email_as_id_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/hris_case.rb +4 -4
- data/lib/eco/api/usecases/default_cases/new_email_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/new_id_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/recover_db_case.rb +4 -4
- data/lib/eco/api/usecases/default_cases/refresh_presets_case.rb +4 -3
- data/lib/eco/api/usecases/default_cases/reinvite_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/remove_account_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/reset_landing_page_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/set_default_tag_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/set_supervisor_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/switch_supervisor_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/to_csv_case.rb +1 -1
- data/lib/eco/api/usecases/default_cases/to_csv_detailed_case.rb +1 -1
- data/lib/eco/api/usecases/default_cases/update_case.rb +3 -3
- data/lib/eco/api/usecases/default_cases/update_details_case.rb +2 -2
- data/lib/eco/api/usecases/default_cases/upsert_case.rb +4 -4
- data/lib/eco/api/usecases/use_case_io.rb +1 -1
- data/lib/eco/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1c15ec5f243e3ddbf220b7177458666205cbd03aa2cd7b42ae49c75b7309c41
|
4
|
+
data.tar.gz: 3f46b25d6aff9988339d4e331356b9cf9e168a944ec7f7ae7ac171d660413499
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fa870fa6491d12d458696895882b63895bf3dc5e2ca86ce58dd6ad476ec63e012b4a58809244f47ac09e674139dfcfe6e68fc32e052dbd248c145d0f9edb5c6
|
7
|
+
data.tar.gz: 692681ee1f899a6d6509289c99b291a379c20daa6b34155a6faa903e43badddca393644dc10dc07e00eaa4f96e0b6f83da0b31bc8764c70713b5c3f824a686fb
|
@@ -23,10 +23,10 @@ module Eco
|
|
23
23
|
@jobs.key?(name)
|
24
24
|
end
|
25
25
|
|
26
|
-
def new(name, type:, sets:)
|
26
|
+
def new(name, type:, sets:, usecase: nil)
|
27
27
|
fatal "Can't create job named '#{name}' because it already exists." if exists?(name)
|
28
28
|
|
29
|
-
BatchJob.new(enviro, name: name, type: type, sets: sets).tap do |job|
|
29
|
+
BatchJob.new(enviro, name: name, type: type, sets: sets, usecase: usecase).tap do |job|
|
30
30
|
@jobs[name] = job
|
31
31
|
@callbacks[job] = Proc.new if block_given?
|
32
32
|
end
|
@@ -5,10 +5,10 @@ module Eco
|
|
5
5
|
class ChangeEMailCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("change-email", type: :sync) do |entries, people, session, options|
|
9
|
-
remove = session.job_group("main").new("remove account", type: :update, sets: :account)
|
10
|
-
change = session.job_group("main").new("change email", type: :update, sets: :core)
|
11
|
-
add_account = session.job_group("post").new("add account", type: :update, sets: :account)
|
8
|
+
@cases.define("change-email", type: :sync) do |entries, people, session, options, usecase|
|
9
|
+
remove = session.job_group("main").new("remove account", usecase: usecase, type: :update, sets: :account)
|
10
|
+
change = session.job_group("main").new("change email", usecase: usecase, type: :update, sets: :core)
|
11
|
+
add_account = session.job_group("post").new("add account", usecase: usecase, type: :update, sets: :account)
|
12
12
|
|
13
13
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
14
14
|
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class CreateCase < UseCases::BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("create", type: :sync) do |entries, people, session, options|
|
9
|
-
creation = session.job_group("main").new("create", type: :create, sets: [:core, :details, :account])
|
8
|
+
@cases.define("create", type: :sync) do |entries, people, session, options, usecase|
|
9
|
+
creation = session.job_group("main").new("create", usecase: usecase, type: :create, sets: [:core, :details, :account])
|
10
10
|
|
11
11
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
12
12
|
pgs = session.policy_groups
|
@@ -32,7 +32,7 @@ module Eco
|
|
32
32
|
final: person.account.policy_group_ids
|
33
33
|
)
|
34
34
|
|
35
|
-
person.account.permissions_custom = session.new_preset(person)
|
35
|
+
person.account.permissions_custom = session.new_preset(person)
|
36
36
|
|
37
37
|
if session.tagtree
|
38
38
|
person.account.filter_tags = session.tagtree.user_tags(
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class CreateDetailsCase < UseCases::BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("create-details", type: :sync) do |entries, people, session, options|
|
9
|
-
creation = session.job_group("main").new("create", type: :create, sets: [:core, :details])
|
8
|
+
@cases.define("create-details", type: :sync) do |entries, people, session, options, usecase|
|
9
|
+
creation = session.job_group("main").new("create", usecase: usecase, type: :create, sets: [:core, :details])
|
10
10
|
|
11
11
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
12
12
|
|
@@ -6,9 +6,9 @@ module Eco
|
|
6
6
|
|
7
7
|
def process
|
8
8
|
# good candidate to do @cases.case("create-details").use.chain(@cases.case("set-supervisor").use)
|
9
|
-
@cases.define("create-details-with-supervisor", type: :sync) do |entries, people, session, options|
|
10
|
-
creation = session.job_group("main").new("create", type: :create, sets: [:core, :details])
|
11
|
-
supers = session.job_group("post").new("supers", type: :update, sets: :core)
|
9
|
+
@cases.define("create-details-with-supervisor", type: :sync) do |entries, people, session, options, usecase|
|
10
|
+
creation = session.job_group("main").new("create", usecase: usecase, type: :create, sets: [:core, :details])
|
11
|
+
supers = session.job_group("post").new("supers", usecase: usecase, type: :update, sets: :core)
|
12
12
|
|
13
13
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
14
14
|
|
@@ -5,15 +5,15 @@ module Eco
|
|
5
5
|
class DeleteCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("delete", type: :transform) do |people, session|
|
9
|
-
delete = session.job_group("main").new("delete", type: :delete, sets: [:core, :details, :account])
|
8
|
+
@cases.define("delete", type: :transform) do |people, session, options, usecase|
|
9
|
+
delete = session.job_group("main").new("delete", usecase: usecase, type: :delete, sets: [:core, :details, :account])
|
10
10
|
people.each_with_index do |person|
|
11
11
|
delete.add(person)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
@cases.define("delete", type: :sync) do |entries, people, session|
|
16
|
-
delete = session.job_group("main").new("delete", type: :delete, sets: [:core, :details, :account])
|
16
|
+
delete = session.job_group("main").new("delete", usecase: usecase, type: :delete, sets: [:core, :details, :account])
|
17
17
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
18
18
|
entries.each_with_index do |entry|
|
19
19
|
if person = people.find(entry, strict: strict_search)
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class EmailAsIdCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("email-as-id", type: :transform) do |people, session|
|
9
|
-
job = session.job_group("main").new("update", type: :update, sets: :core)
|
8
|
+
@cases.define("email-as-id", type: :transform) do |people, session, options, usecase|
|
9
|
+
job = session.job_group("main").new("update", usecase: usecase, type: :update, sets: :core)
|
10
10
|
|
11
11
|
people.each do |person|
|
12
12
|
person.external_id = person.email
|
@@ -5,14 +5,14 @@ module Eco
|
|
5
5
|
class HrisCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("hris", type: :sync) do |entries, people, session, options|
|
8
|
+
@cases.define("hris", type: :sync) do |entries, people, session, options, usecase|
|
9
9
|
# IMPORTANT: this two lines ensure that key users are preserved (only manually maintained)
|
10
10
|
#people = people.exclude(session.discarded_entries)
|
11
11
|
#entries = entries.exclude(session.discarded_entries)
|
12
12
|
|
13
|
-
creation = session.job_group("main").new("create", type: :create, sets: [:core, :details, :account])
|
14
|
-
update = session.job_group("main").new("update", type: :update, sets: [:core, :details, :account])
|
15
|
-
supers = session.job_group("post").new("supers", type: :update, sets: :core)
|
13
|
+
creation = session.job_group("main").new("create", usecase: usecase, type: :create, sets: [:core, :details, :account])
|
14
|
+
update = session.job_group("main").new("update", usecase: usecase, type: :update, sets: [:core, :details, :account])
|
15
|
+
supers = session.job_group("post").new("supers", usecase: usecase, type: :update, sets: :core)
|
16
16
|
#remove = session.job_group("post").new("remove_account", type: :update, sets: :account)
|
17
17
|
|
18
18
|
#people.users.each_with_index do |person, i|
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class NewEmailCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("new-email", type: :sync) do |entries, people, session, options|
|
9
|
-
job = session.job_group("main").new("update", type: :update, sets: :core)
|
8
|
+
@cases.define("new-email", type: :sync) do |entries, people, session, options, usecase|
|
9
|
+
job = session.job_group("main").new("update", usecase: usecase, type: :update, sets: :core)
|
10
10
|
|
11
11
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
12
12
|
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class NewIdCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("new-id", type: :sync) do |entries, people, session, options|
|
9
|
-
job = session.job_group("main").new("update", type: :update, sets: :core)
|
8
|
+
@cases.define("new-id", type: :sync) do |entries, people, session, options, usecase|
|
9
|
+
job = session.job_group("main").new("update", usecase: usecase, type: :update, sets: :core)
|
10
10
|
|
11
11
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
12
12
|
|
@@ -5,14 +5,14 @@ module Eco
|
|
5
5
|
class RecoverDBCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("recover-db", type: :sync) do |entries, people, session, options|
|
8
|
+
@cases.define("recover-db", type: :sync) do |entries, people, session, options, usecase|
|
9
9
|
unless entries.is_a?(Eco::API::Organization::People)
|
10
10
|
raise "Your input should be an 'Eco::API::Organization::People' object. Got: #{entries.class}"
|
11
11
|
end
|
12
12
|
|
13
|
-
creation = session.job_group("main").new("create", type: :create, sets: [:core, :details, :account])
|
14
|
-
update = session.job_group("main").new("update", type: :update, sets: [:core, :details, :account])
|
15
|
-
remove = session.job_group("main").new("remove", type: :delete, sets: [:core, :details, :account])
|
13
|
+
creation = session.job_group("main").new("create", usecase: usecase, type: :create, sets: [:core, :details, :account])
|
14
|
+
update = session.job_group("main").new("update", usecase: usecase, type: :update, sets: [:core, :details, :account])
|
15
|
+
remove = session.job_group("main").new("remove", usecase: usecase, type: :delete, sets: [:core, :details, :account])
|
16
16
|
|
17
17
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
18
18
|
pgs = session.policy_groups
|
@@ -5,12 +5,13 @@ module Eco
|
|
5
5
|
class RefreshPresets < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("refresh-presets", type: :transform) do |people, session|
|
9
|
-
job = session.job_group("main").new("update", type: :update, sets: :account)
|
8
|
+
@cases.define("refresh-presets", type: :transform) do |people, session, options, usecase|
|
9
|
+
job = session.job_group("main").new("update", usecase: usecase, type: :update, sets: :account)
|
10
10
|
|
11
11
|
users = people.users
|
12
|
-
session.logger.warn("There are no people with account amoung your #{people.length} people")
|
12
|
+
session.logger.warn("There are no people with account amoung your #{people.length} people") unless users.length > 0
|
13
13
|
users.each do |person|
|
14
|
+
print "."
|
14
15
|
person.account.permissions_custom = session.new_preset(person)
|
15
16
|
job.add(person)
|
16
17
|
end
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class ReinviteCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("reinvite", type: :transform) do |people, session|
|
9
|
-
invite = session.job_group("main").new("invite", type: :update, sets: :account)
|
8
|
+
@cases.define("reinvite", type: :transform) do |people, session, options, usecase|
|
9
|
+
invite = session.job_group("main").new("invite", usecase: usecase, type: :update, sets: :account)
|
10
10
|
people.users.each do |person|
|
11
11
|
person.account.send_invites = true
|
12
12
|
invite.add(person)
|
@@ -6,8 +6,8 @@ module Eco
|
|
6
6
|
|
7
7
|
def process
|
8
8
|
|
9
|
-
@cases.define("remove-account", type: :transform) do |people, session|
|
10
|
-
update = session.job_group("main").new("update", type: :update, sets: [:core, :account])
|
9
|
+
@cases.define("remove-account", type: :transform) do |people, session, options, usecase|
|
10
|
+
update = session.job_group("main").new("update", usecase: usecase, type: :update, sets: [:core, :account])
|
11
11
|
people.users.map do |person|
|
12
12
|
person.account = nil
|
13
13
|
update.add(person)
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class ResetLandingPageCase < UseCases::BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("reset-landing-page", type: :transform) do |people, session|
|
9
|
-
job = session.job_group("main").new("update", type: :update, sets: :account)
|
8
|
+
@cases.define("reset-landing-page", type: :transform) do |people, session, options, usecase|
|
9
|
+
job = session.job_group("main").new("update", usecase: usecase, type: :update, sets: :account)
|
10
10
|
|
11
11
|
people.users.each do |user|
|
12
12
|
user.account.landing_page_id = nil
|
@@ -9,7 +9,7 @@ module Eco
|
|
9
9
|
# => if there's no common node between them, take the `first` (unless they are at top level of the tree)
|
10
10
|
|
11
11
|
def process
|
12
|
-
@cases.define("set-default-tag", type: :transform) do |people, session, options|
|
12
|
+
@cases.define("set-default-tag", type: :transform) do |people, session, options, usecase|
|
13
13
|
if !session.tagtree
|
14
14
|
msg = "There is no tagtree definition in the configuration files\n" +
|
15
15
|
"For this usecase to work out you need to define it."
|
@@ -26,7 +26,7 @@ module Eco
|
|
26
26
|
exit
|
27
27
|
end
|
28
28
|
|
29
|
-
update = session.job_group("main").new("update", type: :update, sets: :account)
|
29
|
+
update = session.job_group("main").new("update", usecase: usecase, type: :update, sets: :account)
|
30
30
|
|
31
31
|
people.each_with_index do |person, i|
|
32
32
|
#next unless person.id == "5c527ba63f7690001243f5b2"
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class SetSupervisorCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("set-supervisor", type: :sync) do |entries, people, session, options|
|
9
|
-
job = session.job_group("main").new("update", type: :update, sets: :core)
|
8
|
+
@cases.define("set-supervisor", type: :sync) do |entries, people, session, options, usecase|
|
9
|
+
job = session.job_group("main").new("update", usecase: usecase, type: :update, sets: :core)
|
10
10
|
|
11
11
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
12
12
|
|
@@ -5,7 +5,7 @@ module Eco
|
|
5
5
|
class SwitchSupervisorCase < UseCases::BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("switch-supervisor", type: :transform) do |people, session, options|
|
8
|
+
@cases.define("switch-supervisor", type: :transform) do |people, session, options, usecase|
|
9
9
|
|
10
10
|
unless old_id = options.dig(:super, :old)
|
11
11
|
session.logger.error("You haven't specified the original supervisor. Aborting...")
|
@@ -39,7 +39,7 @@ module Eco
|
|
39
39
|
session.logger.info("Going to change supervisor '#{old_sup.name}' (#{old_sup.external_id}) to '#{new_sup.name}' (#{new_sup.external_id})")
|
40
40
|
|
41
41
|
# create batch queue
|
42
|
-
supers = session.job_group("main").new("update", type: :update, sets: :core)
|
42
|
+
supers = session.job_group("main").new("update", usecase: usecase, type: :update, sets: :core)
|
43
43
|
|
44
44
|
people.each.with_index do |person, i|
|
45
45
|
person.supervisor_id = new_sup.id
|
@@ -5,7 +5,7 @@ module Eco
|
|
5
5
|
class ToCsvCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("to-csv", type: :export) do |people, session, options|
|
8
|
+
@cases.define("to-csv", type: :export) do |people, session, options, usecase|
|
9
9
|
unless people && !people.empty?
|
10
10
|
session.logger.warn("No source people to create the file... aborting!")
|
11
11
|
next false
|
@@ -5,7 +5,7 @@ module Eco
|
|
5
5
|
class ToCsvDetailedCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("to-csv-detailed", type: :export) do |people, session, options|
|
8
|
+
@cases.define("to-csv-detailed", type: :export) do |people, session, options, usecase|
|
9
9
|
unless people && !people.empty?
|
10
10
|
session.logger.warn("No source people to create the file... aborting!")
|
11
11
|
next false
|
@@ -15,8 +15,8 @@ module Eco
|
|
15
15
|
# p.suboption :exclude, :abilities, "Excludes the abilities from the update.", optional: true
|
16
16
|
#end
|
17
17
|
|
18
|
-
@cases.define("update", type: :sync) do |entries, people, session, options|
|
19
|
-
update = session.job_group("main").new("update", type: :update, sets: [:core, :details, :account])
|
18
|
+
@cases.define("update", type: :sync) do |entries, people, session, options, usecase|
|
19
|
+
update = session.job_group("main").new("update", usecase: usecase, type: :update, sets: [:core, :details, :account])
|
20
20
|
|
21
21
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
22
22
|
pgs = session.policy_groups
|
@@ -38,7 +38,7 @@ module Eco
|
|
38
38
|
final: person.account.policy_group_ids
|
39
39
|
)
|
40
40
|
|
41
|
-
person.account.permissions_custom = session.new_preset(person) unless
|
41
|
+
person.account.permissions_custom = session.new_preset(person) unless options.dig(:exclude, :abilities)
|
42
42
|
|
43
43
|
if session.tagtree
|
44
44
|
person.account.filter_tags = session.tagtree.user_tags(
|
@@ -5,8 +5,8 @@ module Eco
|
|
5
5
|
class UpdateDetailsCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("update-details", type: :sync) do |entries, people, session, options|
|
9
|
-
job = session.job_group("main").new("update", type: :update, sets: [:core, :details])
|
8
|
+
@cases.define("update-details", type: :sync) do |entries, people, session, options, usecase|
|
9
|
+
job = session.job_group("main").new("update", usecase: usecase, type: :update, sets: [:core, :details])
|
10
10
|
|
11
11
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
12
12
|
|
@@ -5,10 +5,10 @@ module Eco
|
|
5
5
|
class UpsertCase < BaseCase
|
6
6
|
|
7
7
|
def process
|
8
|
-
@cases.define("upsert", type: :sync) do |entries, people, session, options|
|
9
|
-
creation = session.job_group("main").new("create", type: :create, sets: [:core, :details, :account])
|
10
|
-
update = session.job_group("main").new("update", type: :update, sets: [:core, :details, :account])
|
11
|
-
supers = session.job_group("post").new("supers", type: :update, sets: :core)
|
8
|
+
@cases.define("upsert", type: :sync) do |entries, people, session, options, usecase|
|
9
|
+
creation = session.job_group("main").new("create", usecase: usecase, type: :create, sets: [:core, :details, :account])
|
10
|
+
update = session.job_group("main").new("update", usecase: usecase, type: :update, sets: [:core, :details, :account])
|
11
|
+
supers = session.job_group("post").new("supers", usecase: usecase, type: :update, sets: :core)
|
12
12
|
|
13
13
|
strict_search = session.config.people.strict_search? && (!options[:search]&.key?(:strict) || options.dig(:search, :strict))
|
14
14
|
pgs = session.policy_groups
|
@@ -56,7 +56,7 @@ module Eco
|
|
56
56
|
kargs = {}
|
57
57
|
kargs.merge!(input: input) if input_required?
|
58
58
|
kargs.merge!(people: people) if people_required?
|
59
|
-
kargs.merge!(session: session, options: opts)
|
59
|
+
kargs.merge!(session: session, options: opts, usecase: usecase)
|
60
60
|
keyed ? kargs : kargs.values
|
61
61
|
end
|
62
62
|
|
data/lib/eco/version.rb
CHANGED