Class: Inesita::AppFilesListener
- Inherits:
-
Object
- Object
- Inesita::AppFilesListener
- Includes:
- Singleton
- Defined in:
- lib/inesita/app_files_listener.rb
Constant Summary collapse
- CURRENT_DIR =
Dir.pwd
Instance Method Summary collapse
- #add_ws(ws) ⇒ Object
-
#initialize ⇒ AppFilesListener
constructor
A new instance of AppFilesListener.
- #rm_ws(ws) ⇒ Object
- #transform_filename(filename) ⇒ Object
Constructor Details
#initialize ⇒ AppFilesListener
Returns a new instance of AppFilesListener.
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/inesita/app_files_listener.rb', line 6 def initialize @websockets = [] listener = Listen.to(Config::APP_DIR) do |modified, added, _removed| (modified + added).each do |file| @websockets.each do |ws| ws.send transform_filename(file) end end end listener.start end |
Instance Method Details
#add_ws(ws) ⇒ Object
18 19 20 |
# File 'lib/inesita/app_files_listener.rb', line 18 def add_ws(ws) @websockets << ws end |
#rm_ws(ws) ⇒ Object
22 23 24 |
# File 'lib/inesita/app_files_listener.rb', line 22 def rm_ws(ws) @websockets.delete(ws) end |
#transform_filename(filename) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/inesita/app_files_listener.rb', line 26 def transform_filename(filename) filename.sub!(CURRENT_DIR, '') path = filename.split('/') path.delete('') path.delete(Config::APP_DIR) path = path.join('/').split('.') prefix = Config::ASSETS_PREFIX name = path.first if path.include?('rb') || path.include?('js') "#{prefix}|#{name}|js" elsif path.include?('sass') || path.include?('css') "#{prefix}|stylesheet|css" end end |