Sha256: 8733899e07d132aba785750341c53b962e9ac3eac7901d7a403c3cd632bb8204
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
module ServerGemListen module Listener class << self def start listen_events.start sleep rescue Interrupt => e puts "\n#{ServerGemListen::NOTIFICATION_PREFIX} interrupted" end private def notify(modified, added, removed) files = { modified: modified, added: added, removed: removed } files.each_pair do |key, value| next if value.empty? value.map! { |v| v.gsub(ENV['GEM_HOME'], '') } puts "#{ServerGemListen::NOTIFICATION_PREFIX} #{'file'.pluralize(value.size)} #{key}" ap value end end def listen_events gems = Bundler.definition.specs.to_hash.keys Listen.to(ENV['GEM_HOME']) do |*args| process_event(gems, *args) end end def process_event(gems, *args) return unless need_restart?(gems, *args) notify(*args) Server.restart end def need_restart?(gems, *args) args.each do |arg| arg.each do |path| matches = gems.select { |gem| path.include? gem } return true unless matches.empty? end end false end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
server-gem-listen-0.2.1 | lib/server_gem_listen/listener.rb |