class Breakfast::CompilationListener
Constants
- ASSET_EXTENSIONS
- SOURCE_CODE_EXTENSIONS
Public Class Methods
broadcast(channel, data)
click to toggle source
# File lib/breakfast/compilation_listener.rb, line 45 def self.broadcast(channel, data) ActionCable.server.broadcast(channel, data) end
start(asset_output_folder:, source_code_folders:)
click to toggle source
# File lib/breakfast/compilation_listener.rb, line 6 def self.start(asset_output_folder:, source_code_folders:) asset_listener = ::Listen.to(asset_output_folder) do |modified, added, removed| files = modified + added + removed ASSET_EXTENSIONS.each do |extension| if files.any? { |file| file.match(/\.#{extension}/) } broadcast(Breakfast::RELOAD_CHANNEL, { extension: extension }) end end end rails_listener = ::Listen.to(*source_code_folders) do |modified, added, removed| files = modified + added + removed SOURCE_CODE_EXTENSIONS.each do |extension| matched = files.select { |file| file.match(/\.#{extension}/) } if matched.present? broadcast(Breakfast::RELOAD_CHANNEL, { extension: extension }) file_names = matched .map { |file| file.split("/").last } .join(", ") .truncate(60) broadcast(Breakfast::STATUS_CHANNEL, { status: "success", message: "saved: #{file_names}", extension: extension }) end end end asset_listener.start rails_listener.start end