Class: Scheherazade::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/scheherazade/log.rb

Constant Summary collapse

EVENTS =
[:saving, :building, :fixing_errors, :final_value, :setting_assocation, :setting, :additional_character].to_set.freeze

Instance Method Summary collapse

Instance Method Details

#log(event, character, *rest) ⇒ Object



19
20
21
22
23
# File 'lib/scheherazade/log.rb', line 19

def log(event, character, *rest)
  if @events && @events.include?(event) && (@characters.nil? || @characters.include?(character))
    puts "#{character}: #{rest.unshift(event).join(' | ')}"
  end
end

#offObject



5
6
7
# File 'lib/scheherazade/log.rb', line 5

def off
  @events = []
end

#onObject



9
10
11
# File 'lib/scheherazade/log.rb', line 9

def on
  only
end

#only(*events_and_characters) ⇒ Object



13
14
15
16
17
# File 'lib/scheherazade/log.rb', line 13

def only *events_and_characters
  events_and_characters = events_and_characters.to_set
  @events = (EVENTS & events_and_characters).presence || EVENTS
  @characters = (events_and_characters - @events).to_set.presence
end