Sha256: 5fd1b8a7c5fc608a749afc8ddd0fa96813f26fbaecfdc1245890b9d25cc9409d

Contents?: true

Size: 1.62 KB

Versions: 1

Compression:

Stored size: 1.62 KB

Contents

# typed: true
# frozen_string_literal: true

require_relative './block_invocation_refinements'

require_relative './dsl/http'
require_relative './dsl/call'
require_relative './dsl/error'
require_relative './dsl/account_property'
require_relative './dsl/lookup_table'
require_relative './dsl/workato_code_lib'
require_relative './dsl/workato_schema'
require_relative './dsl/time'
require_relative './dsl/aws'
require_relative './dsl/execution_context'

module Workato
  module Connector
    module Sdk
      module Dsl
        module Global
          include Time
          include AccountProperty
          include LookupTable
          include WorkatoCodeLib
          include WorkatoSchema
          include AWS

          def sleep(seconds)
            ::Kernel.sleep(seconds.presence || 0)
          end

          def puts(*args)
            T.unsafe(::Kernel).puts(*args)
          end
        end

        class WithDsl
          extend T::Sig

          include Global

          using BlockInvocationRefinements

          sig { params(connection: Connection, args: T.untyped, block: T.untyped).returns(T.untyped) }
          def execute(connection, *args, &block)
            @connection = connection
            T.unsafe(self).instance_exec(*args, &block)
          end

          sig { params(connection: Connection, args: T.untyped, block: T.untyped).returns(T.untyped) }
          def self.execute(connection, *args, &block)
            T.unsafe(WithDsl.new).execute(connection, *args, &block)
          end

          private

          sig { returns(Connection) }
          attr_reader :connection
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
workato-connector-sdk-1.2.0 lib/workato/connector/sdk/dsl.rb