Sha256: 98acfc17bedeb8aa289d4be94cc10c5e8c82f76814b0662aeba11c8828d74627

Contents?: true

Size: 860 Bytes

Versions: 19

Compression:

Stored size: 860 Bytes

Contents

# typed: true
# frozen_string_literal: true

require 'json'

module Workato
  module Connector
    module Sdk
      class WorkatoSchemas
        include Singleton

        class << self
          def from_json(path = DEFAULT_SCHEMAS_PATH)
            load_data(JSON.parse(File.read(path)))
          end

          delegate :find,
                   :load_data,
                   to: :instance
        end

        def load_data(data)
          @schemas_by_id ||= {}.with_indifferent_access
          @schemas_by_id.merge!(data.stringify_keys)
        end

        def find(id)
          unless @schemas_by_id
            raise 'Workato Schemas are not initialized. ' \
                  'Init data by calling WorkatoSchemas.from_json or WorkatoSchemas.load_data'
          end

          @schemas_by_id.fetch(id.to_s)
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
workato-connector-sdk-1.3.14 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.13 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.12 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.11 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.10 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.9 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.8 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.7 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.6 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.5 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.4 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.3 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.2 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.1 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.3.0 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.2.0 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.0.3 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.1.0 lib/workato/connector/sdk/workato_schemas.rb
workato-connector-sdk-1.0.2 lib/workato/connector/sdk/workato_schemas.rb