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
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?, #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.
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/eco/api/usecases/base_io.rb', line 28 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.
19 20 21 |
# File 'lib/eco/api/usecases/base_io.rb', line 19 def input @input end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
19 20 21 |
# File 'lib/eco/api/usecases/base_io.rb', line 19 def @options end |
#output ⇒ Object
Returns the value of attribute output.
21 22 23 |
# File 'lib/eco/api/usecases/base_io.rb', line 21 def output @output end |
#people ⇒ Object (readonly)
Returns the value of attribute people.
19 20 21 |
# File 'lib/eco/api/usecases/base_io.rb', line 19 def people @people end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
19 20 21 |
# File 'lib/eco/api/usecases/base_io.rb', line 19 def session @session end |
#type ⇒ Object
Returns the value of attribute type.
20 21 22 |
# File 'lib/eco/api/usecases/base_io.rb', line 20 def type @type end |
Class Method Details
.input_required?(type) ⇒ Boolean
9 10 11 |
# File 'lib/eco/api/usecases/base_io.rb', line 9 def input_required?(type) !valid_type?(type) || [:import, :sync].include?(type) end |
.people_required?(type) ⇒ Boolean
13 14 15 |
# File 'lib/eco/api/usecases/base_io.rb', line 13 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.
50 51 52 53 |
# File 'lib/eco/api/usecases/base_io.rb', line 50 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
57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/eco/api/usecases/base_io.rb', line 57 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.
70 71 72 73 74 75 76 |
# File 'lib/eco/api/usecases/base_io.rb', line 70 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 |