class Listener
Public Class Methods
new(classroom)
click to toggle source
# File lib/codefusion/listener.rb, line 2 def initialize(classroom) @classroom = classroom end
Public Instance Methods
start()
click to toggle source
# File lib/codefusion/listener.rb, line 6 def start begin View.listen_message(@classroom.path, url) set_listener.start sleep rescue Exception => e View.exit_message end end
Private Instance Methods
applicable_message(modified, added, removed)
click to toggle source
# File lib/codefusion/listener.rb, line 25 def applicable_message(modified, added, removed) if modified.any? :modified_message elsif added.any? && removed.any? :name_changed_message elsif added.any? :added_message else removed.any? :removed_message end end
get_relative_path(modified, added, removed)
click to toggle source
# File lib/codefusion/listener.rb, line 41 def get_relative_path(modified, added, removed) full_path = [modified, added, removed].select { |effect| effect.any? }.flatten.first FileParser.shortened_path(full_path, @classroom.parent_dir) end
send_message(message, path)
click to toggle source
# File lib/codefusion/listener.rb, line 50 def send_message(message, path) View.send(message, path, url) end
set_listener()
click to toggle source
# File lib/codefusion/listener.rb, line 17 def set_listener Listen.to(@classroom.path, only: this_file) do |modified, added, removed| relative_path = get_relative_path(modified, added, removed) send_message(applicable_message(modified, added, removed), relative_path) @classroom.update end end
this_file()
click to toggle source
# File lib/codefusion/listener.rb, line 37 def this_file @classroom.file ? Regexp.new(@classroom.file) : /./ end
url()
click to toggle source
# File lib/codefusion/listener.rb, line 46 def url @classroom.url end