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