You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.3 KiB

  1. module Semantic
  2. module Subscribers
  3. # LogSubscriber for event_group :action_view
  4. class ActionView < LogSubscriber
  5. include AnsiColors
  6. REGEX_BASEDIR = %r{^#{Rails.root}/(.*)}
  7. def render_partial(event)
  8. identifier = pathname(event.payload[:identifier])
  9. # logger.debug("Rendered partial #{identifier}", event.payload[:locals]) if identifier
  10. logger.debug("Rendered partial #{identifier}") if identifier
  11. end
  12. def render_template(event)
  13. layout = event.payload[:layout]
  14. return unless layout
  15. identifier = pathname(event.payload[:identifier])
  16. logger.debug { "Rendered template #{identifier}" } if identifier
  17. end
  18. def render_collection(event)
  19. identifier = pathname(event.payload[:identifier])
  20. count = event.payload[:count]
  21. cache_hits = event.payload[:cache_hits] || 0
  22. logger.debug { "Rendered collection #{identifier} (#{count} times, #{cache_hits} cached)" } if identifier
  23. end
  24. def render_layout(event)
  25. identifier = pathname(event.payload[:identifier])
  26. logger.debug { "Rendered layout #{identifier}" } if identifier
  27. end
  28. private
  29. def pathname(location)
  30. m = REGEX_BASEDIR.match(location)
  31. m[1] if m
  32. end
  33. end
  34. end
  35. end