Class: Evnt::EventGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/evnt/event_generator.rb

Overview

EventGenerator.

Instance Method Summary collapse

Instance Method Details

#create_eventObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/generators/evnt/event_generator.rb', line 14

def create_event
  path = informations.first.split('::')
  @event_class = path.last.camelize
  @event_modules = path - [path.last]
  @event_name = event_name_clean(path.map(&:underscore).join('_'))
  @event_attributes = (informations - [informations.first]).map { |a| ":#{a}" }.join(', ')

  template(
    './event/event.rb.erb',
    event_path
  )
end

#event_name_clean(event_name) ⇒ Object



34
35
36
37
38
# File 'lib/generators/evnt/event_generator.rb', line 34

def event_name_clean(event_name)
  return event_name unless event_name.end_with?('_event')

  event_name.gsub('_event', '')
end

#event_pathObject



27
28
29
30
31
32
# File 'lib/generators/evnt/event_generator.rb', line 27

def event_path
  path = './app/events'
  @event_modules.map { |m| path = "#{path}/#{m.underscore}" }
  path = "#{path}/#{@event_class.underscore}.rb"
  path
end