Sha256: aacb18294abe0b126dddf452a1895359c7f84aec890a8aacacc7b5d25943300b

Contents?: true

Size: 554 Bytes

Versions: 4

Compression:

Stored size: 554 Bytes

Contents

# typed: strict

module DataModel
	class Fixtures::Example
		extend T::Sig

		sig { params(schema: TSchema, variants: T::Hash[::Symbol, Object]).void }
		def initialize(schema, variants:)
			@schema = schema
			@variants = variants
		end

		sig { returns(Model) }
		def model
			DataModel.define(@schema)
		end

		sig { params(type: Symbol).returns([Model, Object]) }
		def [](type)
			if !@variants.key?(type)
				raise "#{type} is not a defined variant: #{@variants}"
			end

			result = @variants.fetch(type)

			return [model, result]
		end
	end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
data_model-0.4.0 lib/data_model/fixtures/example.rb
data_model-0.3.0 lib/data_model/fixtures/example.rb
data_model-0.2.0 lib/data_model/fixtures/example.rb
data_model-0.1.0 lib/data_model/fixtures/example.rb