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

Inherits:
BaseConfig show all
Defined in:
lib/eco/api/session/config/files.rb

Instance Attribute Summary

Attributes inherited from BaseConfig

#config

Attributes included from Language::AuxiliarLogger

#logger

Instance Method Summary collapse

Methods inherited from BaseConfig

#apis, attr_key, #clone, #file_manager

Methods included from Language::AuxiliarLogger

#log

Methods inherited from Hash

#deep_merge, #deep_merge!

Constructor Details

#initialize(config:) ⇒ Files

Returns a new instance of Files.



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

def initialize(config:)
  super

  @validations = {}
end

Instance Method Details

#add_validation(format, &block) ⇒ Object



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

def add_validation(format, &block)
  raise "Block must be given" unless block_given?
  @validations[format] = block
end

#validate(format, input) ⇒ Object



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

def validate(format, input)
  @validations[format].call(input) if @validations.key?(format)
end

#working_directoryObject



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/eco/api/session/config/files.rb', line 16

def working_directory
  return self['dir'] unless config.apis.active_api&.one_off?

  one_off_dir = File.join('one_off', config.apis.active_name.to_s)
  dir         = Eco::Data::Files::Directory.new(one_off_dir)

  msg = "Could not create the folder '#{dir.full_path}'"
  raise msg unless dir.create

  self['dir'] = one_off_dir
end

#working_directory=(path) ⇒ Object



12
13
14
# File 'lib/eco/api/session/config/files.rb', line 12

def working_directory=(path)
  self['dir'] = path
end