Class: Eco::API::Session::Config

Inherits:
Hash
  • Object
show all
Defined in:
lib/eco/api/session/config.rb,
lib/eco/api/session/config/api.rb,
lib/eco/api/session/config/apis.rb,
lib/eco/api/session/config/sftp.rb,
lib/eco/api/session/config/files.rb,
lib/eco/api/session/config/logger.rb,
lib/eco/api/session/config/mailer.rb,
lib/eco/api/session/config/people.rb,
lib/eco/api/session/config/workflow.rb,
lib/eco/api/session/config/s3_storage.rb,
lib/eco/api/session/config/base_config.rb,
lib/eco/api/session/config/post_launch.rb

Defined Under Namespace

Classes: Api, Apis, BaseConfig, Files, Logger, Mailer, People, PostLaunch, S3Storage, SFTP, Workflow

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Hash

#deep_merge, #deep_merge!

Constructor Details

#initialize(name = :default) ⇒ Config



7
8
9
10
11
# File 'lib/eco/api/session/config.rb', line 7

def initialize(name = :default)
  super(nil)
  @name = name
  self["org"] = {}
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/eco/api/session/config.rb', line 5

def name
  @name
end

Instance Method Details

#active_api(name) ⇒ Object



110
111
112
113
# File 'lib/eco/api/session/config.rb', line 110

def active_api(name)
  apis.active_name = name
  self
end

#active_enviroObject



115
116
117
# File 'lib/eco/api/session/config.rb', line 115

def active_enviro
  apis.active_root_name
end

#add_api(name, **kargs) ⇒ Object



105
106
107
108
# File 'lib/eco/api/session/config.rb', line 105

def add_api(name, **kargs)
  apis.add(name, **kargs)
  self
end

#api(logger = ::Logger.new(IO::NULL)) ⇒ Object



119
120
121
# File 'lib/eco/api/session/config.rb', line 119

def api(logger = ::Logger.new(IO::NULL))
  apis.api(logger)
end

#apisObject



27
28
29
# File 'lib/eco/api/session/config.rb', line 27

def apis
  self["apis"]       ||= Eco::API::Session::Config::Apis.new(config: self)
end

#apis?Boolean



101
102
103
# File 'lib/eco/api/session/config.rb', line 101

def apis?
  apis.apis?
end

#batch_policiesObject



277
278
279
280
281
282
283
284
285
# File 'lib/eco/api/session/config.rb', line 277

def batch_policies
  @batch_policies = self["batch_policies"] ||= Eco::API::Session::Batch::Policies.new("batch_policy")
  if block_given?
    yield(@batch_policies)
    self
  else
    @batch_policies
  end
end

#clone(name) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/eco/api/session/config.rb', line 13

def clone(name)
  keys.each_with_object(self.class.new(name)) do |key, cnf|
    begin
      cnf[key] = self[key].clone(config: cnf)
    rescue ArgumentError
      cnf[key] = self[key].clone
    end
  end
end

#default_schema=(name) ⇒ Object



235
236
237
# File 'lib/eco/api/session/config.rb', line 235

def default_schema=(name)
  people.default_schema = name
end

#default_usergroup=(value) ⇒ Object

PEOPLE



214
215
216
# File 'lib/eco/api/session/config.rb', line 214

def default_usergroup=(value)
  people.default_usergroup = value
end

#discarded_people_file=(value) ⇒ Object



218
219
220
# File 'lib/eco/api/session/config.rb', line 218

def discarded_people_file=(value)
  people.discarded_file = value
end

#dry_run!Object

API



81
82
83
# File 'lib/eco/api/session/config.rb', line 81

def dry_run!
  self["dry-run"] = true
end

#dry_run?Boolean



85
86
87
# File 'lib/eco/api/session/config.rb', line 85

def dry_run?
  self["dry-run"]
end

#error_handlersObject



287
288
289
290
291
292
293
294
295
# File 'lib/eco/api/session/config.rb', line 287

def error_handlers
  @error_handlers = self["error_handlers"] ||= Eco::API::Error::Handlers.new
  if block_given?
    yield(@error_handlers)
    self
  else
    @error_handlers
  end
end

#file_managerObject



148
149
150
# File 'lib/eco/api/session/config.rb', line 148

def file_manager
  Eco::API::Common::Session::FileManager.new(self)
end

#file_timestamp_pattern=(pattern) ⇒ Object



144
145
146
# File 'lib/eco/api/session/config.rb', line 144

def file_timestamp_pattern=(pattern)
  files.timestamp_pattern = pattern
end

#filesObject



43
44
45
# File 'lib/eco/api/session/config.rb', line 43

def files
  self["files"]      ||= Eco::API::Session::Config::Files.new(config: self)
end

#location_codesObject



168
169
170
# File 'lib/eco/api/session/config.rb', line 168

def location_codes
  org["location_codes"]
end

#location_codes=(file) ⇒ Object

ORG



164
165
166
# File 'lib/eco/api/session/config.rb', line 164

def location_codes=(file)
  org["location_codes"] = file
end

#locations_mapperObject



172
173
174
175
176
# File 'lib/eco/api/session/config.rb', line 172

def locations_mapper
  return @locations_mapper if instance_variable_defined?(:@locations_mapper)
  file = file_manager.newest(location_codes)
  @locations_mapper = Eco::Data::Mapper.new(file_manager.load_json(file), internal: :first)
end

#log_connection=(value) ⇒ Object



76
77
78
# File 'lib/eco/api/session/config.rb', line 76

def log_connection=(value)
  logger.log_connection = value
end

#log_console_level=(value) ⇒ Object

LOGGER



60
61
62
# File 'lib/eco/api/session/config.rb', line 60

def log_console_level=(value)
  logger.console_level= value
end

#log_file=(file) ⇒ Object



68
69
70
# File 'lib/eco/api/session/config.rb', line 68

def log_file=(file)
  logger.file = file
end

#log_file_level=(value) ⇒ Object



64
65
66
# File 'lib/eco/api/session/config.rb', line 64

def log_file_level=(value)
  logger.file_level = value
end

#loggerObject



35
36
37
# File 'lib/eco/api/session/config.rb', line 35

def logger
  self["logger"]     ||= Eco::API::Session::Config::Logger.new(config: self)
end

#login_providersObject



203
204
205
206
207
# File 'lib/eco/api/session/config.rb', line 203

def 
  return @login_providers if instance_variable_defined?(:@login_providers)
  provs            = api&..to_a
  @login_providers = Eco::API::Organization::LoginProviders.new(provs)
end

#mailerObject



47
48
49
# File 'lib/eco/api/session/config.rb', line 47

def mailer
  self["mailer"]     ||= Eco::API::Session::Config::Mailer.new(config: self)
end

#orgObject



51
52
53
# File 'lib/eco/api/session/config.rb', line 51

def org
  self["org"]
end

#peopleObject



55
56
57
# File 'lib/eco/api/session/config.rb', line 55

def people
  self["people"]     ||= Eco::API::Session::Config::People.new(config: self)
end

#people_cache=(file) ⇒ Object



222
223
224
# File 'lib/eco/api/session/config.rb', line 222

def people_cache=(file)
  people.cache = file
end

#person_fields_mapper=(file) ⇒ Object

PERSON FIELDS MAPPER



231
232
233
# File 'lib/eco/api/session/config.rb', line 231

def person_fields_mapper=(file)
  people.fields_mapper = file
end

#person_parser(format: :csv, &block) ⇒ Object

CUSTOM PERSON PARSERS



249
250
251
# File 'lib/eco/api/session/config.rb', line 249

def person_parser(format: :csv, &block)
  people.parser(format: format, &block)
end

#policiesObject



267
268
269
270
271
272
273
274
275
# File 'lib/eco/api/session/config.rb', line 267

def policies
  @policies = self["policies"] ||= Eco::API::Policies.new
  if block_given?
    yield(@policies)
    self
  else
    @policies
  end
end

#policy_groupsObject



191
192
193
194
195
# File 'lib/eco/api/session/config.rb', line 191

def policy_groups
  return @policy_groups if instance_variable_defined?(:@policy_groups)
  pgs            = api&.policy_groups.to_a
  @policy_groups = Eco::API::Organization::PolicyGroups.new(pgs)
end

#post_launchObject



263
264
265
# File 'lib/eco/api/session/config.rb', line 263

def post_launch
  self["post_launch"] ||= Eco::API::Session::Config::PostLaunch.new(config: self)
end

#presets_custom=(file) ⇒ Object

ACCOUNT PRESETS



240
241
242
# File 'lib/eco/api/session/config.rb', line 240

def presets_custom=(file)
  people.presets_custom = file
end

#presets_map=(file) ⇒ Object



244
245
246
# File 'lib/eco/api/session/config.rb', line 244

def presets_map=(file)
  people.presets_map = file
end

#reopen {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



23
24
25
# File 'lib/eco/api/session/config.rb', line 23

def reopen
  yield(self)
end

#requests_backup_folder=(folder) ⇒ Object



226
227
228
# File 'lib/eco/api/session/config.rb', line 226

def requests_backup_folder=(folder)
  people.requests_folder = folder
end

#require(file = nil, match: nil) ⇒ Object



152
153
154
155
156
157
158
159
160
# File 'lib/eco/api/session/config.rb', line 152

def require(file = nil, match: nil)
  if match
    file_manager.dir.dir_files(pattern: match).each do |file|
      require_relative File.expand_path(file)
    end
  else
    require_relative "#{File.expand_path(file_manager.dir.file(file))}"
  end
end

#run_mode=(mode) ⇒ Object



89
90
91
# File 'lib/eco/api/session/config.rb', line 89

def run_mode=(mode)
  apis.active_api.mode = mode
end

#run_mode_local?Boolean



93
94
95
# File 'lib/eco/api/session/config.rb', line 93

def run_mode_local?
  apis.active_api.local?
end

#run_mode_remote?Boolean



97
98
99
# File 'lib/eco/api/session/config.rb', line 97

def run_mode_remote?
  apis.active_api.remote?
end

#s3storageObject



39
40
41
# File 'lib/eco/api/session/config.rb', line 39

def s3storage
  self["s3_storage"] ||= Eco::API::Session::Config::S3Storage.new(config: self)
end

#schemasObject



197
198
199
200
201
# File 'lib/eco/api/session/config.rb', line 197

def schemas
  return @schemas if instance_variable_defined?(:@schemas)
  schs     = api&.person_schemas.to_a
  @schemas = Eco::API::Organization::PersonSchemas.new(schs)
end

#sessionObject



209
210
211
# File 'lib/eco/api/session/config.rb', line 209

def session
  @session ||= Eco::API::Session.new(self)
end

#sftpObject



31
32
33
# File 'lib/eco/api/session/config.rb', line 31

def sftp
  self["sftp"]       ||= Eco::API::Session::Config::SFTP.new(config: self)
end

#tagtree(enviro: nil) ⇒ Object



182
183
184
185
186
187
188
189
# File 'lib/eco/api/session/config.rb', line 182

def tagtree(enviro: nil)
  return @tagtree if instance_variable_defined?(:@tagtree) && @tagtree.enviro == enviro
  if tree_file = org["tagtree"]
    tree      = []
    tree      = file_manager.load_json(tree_file) unless !tree_file
    @tagtree  = Eco::API::Organization::TagTree.new(tree, enviro: enviro)
  end
end

#tagtree=(file) ⇒ Object



178
179
180
# File 'lib/eco/api/session/config.rb', line 178

def tagtree=(file)
  org["tagtree"] = file
end

#timestamp_console=(value) ⇒ Object



72
73
74
# File 'lib/eco/api/session/config.rb', line 72

def timestamp_console=(value)
  logger.timestamp_console = value
end

#usecasesObject



253
254
255
256
257
258
259
260
261
# File 'lib/eco/api/session/config.rb', line 253

def usecases
  @usecases = self["usecases"] ||= Eco::API::UseCases.new
  if block_given?
    yield(@usecases)
    self
  else
    @usecases
  end
end

#workflowObject



297
298
299
300
301
302
# File 'lib/eco/api/session/config.rb', line 297

def workflow
  @workflow = self["workflow"]  ||= Eco::API::Session::Config::Workflow.new(config: self)
  @workflow.tap do |wf|
    yield(wf) if block_given?
  end
end

#working_directory(mode: nil) ⇒ Object



128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/eco/api/session/config.rb', line 128

def working_directory(mode: nil)
  unless mode
    wd = files.working_directory
    return wd unless wd.to_s.strip.empty?
  end

  mode ||= :active_api
  if mode == :active_api
    apis.active_root_name
  elsif mode == :raw_api_name
    apis.active_name
  else
    files.working_directory
  end
end

#working_directory=(path) ⇒ Object

FILES



124
125
126
# File 'lib/eco/api/session/config.rb', line 124

def working_directory=(path)
  files.working_directory = path
end