class Emittance::EventLookup::EventIdentifier

Derives an identifier from the name of an event class.

Attributes

klass[R]

Public Class Methods

new(klass) click to toggle source
# File lib/emittance/event_lookup.rb, line 168
def initialize(klass)
  @klass = klass
  validate_klass
end

Public Instance Methods

generate() click to toggle source

Generates an identifier name for the given event class.

# File lib/emittance/event_lookup.rb, line 174
def generate
  camel_cased_name = undecorate_klass_name(klass.name)
  snake_case(camel_cased_name).to_sym
end

Private Instance Methods

undecorate_klass_name(klass_name) click to toggle source
# File lib/emittance/event_lookup.rb, line 188
def undecorate_klass_name(klass_name)
  klass_name.gsub(/#{KLASS_NAME_SUFFIX}$/, '')
end
validate_klass() click to toggle source
# File lib/emittance/event_lookup.rb, line 183
def validate_klass
  subklass_error_msg = "#{klass.name} is not a subclass of Emittance::Event!"
  raise Emittance::IdentifierGenerationError, subklass_error_msg unless klass < Emittance::Event
end