Class: Eco::API::UseCases::BaseIO
- Defined in:
- lib/eco/api/usecases/base_io.rb
Overview
Basic class to manage InputOuput for usecases
Direct Known Subclasses
Defined Under Namespace
Classes: MissingParameter
Instance Attribute Summary collapse
-
#input ⇒ Object
readonly
Returns the value of attribute input.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#output ⇒ Object
Returns the value of attribute output.
-
#people ⇒ Object
readonly
Returns the value of attribute people.
-
#session ⇒ Object
readonly
Returns the value of attribute session.
-
#type ⇒ Object
Returns the value of attribute type.
Class Method Summary collapse
Instance Method Summary collapse
-
#base ⇒ Eco::API::UseCases::BaseIO
Helper to obtain an
BaseIO
objcect from any child class. -
#initialize(type: nil, input: nil, people: nil, session:, options: {}, validate: true) ⇒ BaseIO
constructor
A new instance of BaseIO.
- #new(**kargs) ⇒ Eco::API::UseCases::BaseIO
-
#params(keyed: false, all: false) ⇒ Object
Helper to build a
Hash
of symbol keys orArray
with params to do callbacks.
Methods inherited from BaseCase
Methods included from Common::ClassHelpers
#class_resolver, #descendants, #descendants?, #inheritable_attrs, #inheritable_class_vars, #inherited, #instance_variable_name, #new_class, #resolve_class, #to_constant
Constructor Details
#initialize(type: nil, input: nil, people: nil, session:, options: {}, validate: true) ⇒ BaseIO
Returns a new instance of BaseIO.
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/eco/api/usecases/base_io.rb', line 41 def initialize(type: nil, input: nil, people: nil, session:, options: {}, validate: true) @output = nil self.type = type if type if self.type && validate validate_args(input: input, people: people, session: session, options: ) end @input = input @people = people @session = session @options = end |
Instance Attribute Details
#input ⇒ Object (readonly)
Returns the value of attribute input.
32 33 34 |
# File 'lib/eco/api/usecases/base_io.rb', line 32 def input @input end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
32 33 34 |
# File 'lib/eco/api/usecases/base_io.rb', line 32 def @options end |
#output ⇒ Object
Returns the value of attribute output.
34 35 36 |
# File 'lib/eco/api/usecases/base_io.rb', line 34 def output @output end |
#people ⇒ Object (readonly)
Returns the value of attribute people.
32 33 34 |
# File 'lib/eco/api/usecases/base_io.rb', line 32 def people @people end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
32 33 34 |
# File 'lib/eco/api/usecases/base_io.rb', line 32 def session @session end |
#type ⇒ Object
Returns the value of attribute type.
33 34 35 |
# File 'lib/eco/api/usecases/base_io.rb', line 33 def type @type end |
Class Method Details
.input_required?(type) ⇒ Boolean
22 23 24 |
# File 'lib/eco/api/usecases/base_io.rb', line 22 def input_required?(type) !valid_type?(type) || [:import, :sync].include?(type) end |
.people_required?(type) ⇒ Boolean
26 27 28 |
# File 'lib/eco/api/usecases/base_io.rb', line 26 def people_required?(type) !valid_type?(type) || [:filter, :transform, :sync, :error_handler, :export].include?(type) end |
Instance Method Details
#base ⇒ Eco::API::UseCases::BaseIO
Helper to obtain an BaseIO
objcect from any child class.
63 64 65 66 |
# File 'lib/eco/api/usecases/base_io.rb', line 63 def base kargs = params(keyed: true).merge(type: self.type).slice(:type, :input, :people, :session, :options) Eco::API::UseCases::BaseIO.new(**kargs) end |
#new(**kargs) ⇒ Eco::API::UseCases::BaseIO
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/eco/api/usecases/base_io.rb', line 70 def new(**kargs) default = { type: self.type, input: self.input, people: self.people, session: self.session, options: self., validate: true }.merge(kargs) self.class.new(**default.merge(kargs)) end |
#params(keyed: false, all: false) ⇒ Object
Helper to build a Hash
of symbol keys or Array
with params to do callbacks.
83 84 85 86 87 88 89 |
# File 'lib/eco/api/usecases/base_io.rb', line 83 def params(keyed: false, all: false) kargs = {} kargs.merge!(input: input) if input_required? || all kargs.merge!(people: people) if people_required? || all kargs.merge!(session: session, options: ) keyed ? kargs : kargs.values end |