class Midnight::BusinessLogic::Event

Constants

DEFAULT_METADATA_GENERATOR

Attributes

data[R]
metadata[R]

Public Class Methods

new(data: {}, metadata: nil) click to toggle source
# File lib/midnight/business_logic/event.rb, line 16
def initialize(data: {}, metadata: nil)
  @data = data
  @metadata = metadata || DEFAULT_METADATA_GENERATOR.call
  freeze
end
strict(data: {}, metadata: nil) click to toggle source
# File lib/midnight/business_logic/event.rb, line 25
def strict(data: {}, metadata: nil)
  ensure_schema(data)
  new(
    data: data,
    metadata: metadata
  )
end

Private Class Methods

ensure_schema(_data) click to toggle source
# File lib/midnight/business_logic/event.rb, line 35
def ensure_schema(_data)
  raise NotImplementedError
  # example
  # @data_schema ||= ::Dry::Schema.Params do
  #   required(:example_field).filled(:string)
  # end
  # result = @data_schema.call(data)
  # raise SchemaViolation unless result.success?
end