Class: Workato::Connector::Sdk::ObjectDefinitions
- Inherits:
-
Object
- Object
- Workato::Connector::Sdk::ObjectDefinitions
- Extended by:
- T::Sig
- Defined in:
- lib/workato/connector/sdk/object_definitions.rb
Instance Method Summary collapse
- #initialize(object_definitions:, connection:, methods:) ⇒ void constructor
- #lazy(settings = nil, config_fields = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Constructor Details
#initialize(object_definitions:, connection:, methods:) ⇒ void
25 26 27 28 29 30 31 |
# File 'lib/workato/connector/sdk/object_definitions.rb', line 25 def initialize(object_definitions:, connection:, methods:) @object_definitions_source = object_definitions @methods_source = methods @connection = connection @object_definitions = T.let({}, T::Hash[T.any(String, Symbol), ObjectDefinition]) define_object_definition_methods end |
Instance Method Details
#lazy(settings = nil, config_fields = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/workato/connector/sdk/object_definitions.rb', line 39 def lazy(settings = nil, config_fields = {}) DupHashWithIndifferentAccess.new do |object_definitions, name| fields_proc = object_definitions_source.dig(name, :fields) raise Workato::Connector::Sdk::UnresolvedObjectDefinitionError, name unless fields_proc begin object_definitions[name] = create_operation.execute(settings, config_fields) do |connection, input| instance_exec(connection, input, object_definitions, &fields_proc) end rescue SystemStackError => e raise Workato::Connector::Sdk::CircleReferenceObjectDefinitionError.new(name, e.backtrace) end end end |