Advertisement
NameL3ss

event logger

Aug 26th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. module EventLogger
  2. class << self
  3. attr_reader :trip, :event, :waypoint, :event_type, :date, :description
  4.  
  5. def log_proccess(**params)
  6. @trip = params[:trip]
  7. @event = params[:event]
  8. @waypoint = params[:waypoint]
  9. @event_type = params[:event_type]
  10. @date = params[:date]
  11. @description = params[:description]
  12.  
  13. case
  14. when close_event?
  15. info
  16. when end_trip?
  17. info
  18. when start_trip?
  19. info
  20. when instant_event?
  21. info
  22. when open_event?
  23. info
  24. end
  25. end
  26.  
  27. def close_event?
  28. trip && date
  29. end
  30.  
  31. def end_trip?
  32. end_start && description.eql?(:start_event)
  33. end
  34.  
  35. def start_trip?
  36. end_start && description.eql?(:end_event)
  37. end
  38.  
  39. def instant_event?
  40. instant_open && description.eql?(:instant)
  41. end
  42.  
  43. def open_event?
  44. instant_open && description.eql?(:open)
  45. end
  46.  
  47. def logger
  48. @logger ||= Logger.new(STDOUT)
  49. end
  50.  
  51. delegate :info, :debug, :warn, :error, to: :logger
  52.  
  53. private_class_method :end_start, :instant_open
  54.  
  55. def end_start
  56. trip && date && waypoint
  57. end
  58.  
  59. def instant_open
  60. trip && date && waypoint && event_type
  61. end
  62. end
  63. end
  64.  
  65. close_event = EventLogger.log_proccess(trip: Trip.first, date: Time.now)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement