module EvilEvents::Core::Events::EventExtensions::MetadataExtendable::ClassMethods

@since 0.1.0

Public Instance Methods

inherited(child_class) click to toggle source

@param child_class [Class]

@since 0.1.0

Calls superclass method
# File lib/evil_events/core/events/event_extensions/metadata_extendable.rb, line 30
def inherited(child_class)
  child_class.const_set(:Metadata, Class.new(AbstractMetadata))
  super
end
metadata(key, type = EvilEvents::Types::Any, **options) click to toggle source

@param key [Symbol] @param type [EvilEvents::Shared::Types::Any] @param options [Hash] @return void

@since 0.1.0

# File lib/evil_events/core/events/event_extensions/metadata_extendable.rb, line 48
def metadata(key, type = EvilEvents::Types::Any, **options)
  if type.is_a?(Symbol)
    type = EvilEvents::Core::Bootstrap[:event_system].resolve_type(type, **options)
  end

  metadata_class.attribute(key, type)
end
metadata_class() click to toggle source

@return [Class{AbstractMetadata}]

@since 0.2.0

# File lib/evil_events/core/events/event_extensions/metadata_extendable.rb, line 38
def metadata_class
  const_get(:Metadata)
end
metadata_fields() click to toggle source

@return [Array<Symbol>]

@since 0.1.0

# File lib/evil_events/core/events/event_extensions/metadata_extendable.rb, line 59
def metadata_fields
  metadata_class.attribute_names
end