Class: Eco::CLI::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/eco/cli/config.rb,
lib/eco/cli/config/help.rb,
lib/eco/cli/config/input.rb,
lib/eco/cli/config/default.rb,
lib/eco/cli/config/filters.rb,
lib/eco/cli/config/use_cases.rb,
lib/eco/cli/config/options_set.rb,
lib/eco/cli/config/filters/input_filters.rb,
lib/eco/cli/config/filters/people_filters.rb

Defined Under Namespace

Modules: Default, Help Classes: Filters, Input, OptionsSet, UseCases

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cli:) ⇒ Config

Returns a new instance of Config.



7
8
9
# File 'lib/eco/cli/config.rb', line 7

def initialize(cli:)
  @cli = cli
end

Instance Attribute Details

#cliObject (readonly)

Returns the value of attribute cli.



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

def cli
  @cli
end

Instance Method Details

#argsObject



15
16
17
# File 'lib/eco/cli/config.rb', line 15

def args
  cli.args
end

#input(default_option: nil) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/eco/cli/config.rb', line 26

def input(default_option: nil)
  @input ||= Eco::CLI::Config::Input.new(core_config: self, default_option: default_option)
  if block_given?
    @input.define(&Proc.new)
    self
  else
    @input
  end
end

#input_filtersObject



58
59
60
61
62
63
# File 'lib/eco/cli/config.rb', line 58

def input_filters
  @input_filters ||= Eco::CLI::Config::Filters::InputFilters.new(core_config: self)
  @input_filters.tap do |filters|
    yield(filters) if block_given?
  end
end

#optionsObject



11
12
13
# File 'lib/eco/cli/config.rb', line 11

def options
  cli.options
end

#options_setObject



19
20
21
22
23
24
# File 'lib/eco/cli/config.rb', line 19

def options_set
  @opions_set ||= Eco::CLI::Config::OptionsSet.new(core_config: self)
  @opions_set.tap do |opts_set|
    yield(opts_set, options) if block_given?
  end
end

#people(io: nil) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/eco/cli/config.rb', line 36

def people(io: nil)
  if block_given?
    @people_load = Proc.new
    self
  else
    raise "There is no definition on how to load people" unless instance_variable_defined?(:@people_load) && @people_load
    unless io && io.is_a?(Eco::API::UseCases::BaseIO)
      raise "You need to provide Eco::API::UseCases::BaseIO object. Given: #{io.class}"
    end

    io = io.new(type: :import, input: io.input || [])
    @people_load.call(*io.params)
  end
end

#people_filtersObject



51
52
53
54
55
56
# File 'lib/eco/cli/config.rb', line 51

def people_filters
  @people_filters ||= Eco::CLI::Config::Filters::PeopleFilters.new(core_config: self)
  @people_filters.tap do |filters|
    yield(filters) if block_given?
  end
end

#usecasesObject



65
66
67
68
69
70
# File 'lib/eco/cli/config.rb', line 65

def usecases
  @usecases ||= Eco::CLI::Config::UseCases.new(core_config: self)
  @usecases.tap do |cases|
    yield(cases) if block_given?
  end
end