Method: ActiveSupport::EventedFileUpdateChecker::Core#initialize

Defined in:
activesupport/lib/active_support/evented_file_update_checker.rb

#initialize(files, dirs) ⇒ Core

Returns a new instance of Core.



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'activesupport/lib/active_support/evented_file_update_checker.rb', line 76

def initialize(files, dirs)
  @files = files.map { |file| Pathname(file).expand_path }.to_set

  @dirs = dirs.each_with_object({}) do |(dir, exts), hash|
    hash[Pathname(dir).expand_path] = Array(exts).map { |ext| ext.to_s.sub(/\A\.?/, ".") }.to_set
  end

  @common_path = common_path(@dirs.keys)

  @dtw = directories_to_watch
  @missing = []

  @updated = Concurrent::AtomicBoolean.new(false)
  @mutex = Mutex.new

  start
  # inotify / FSEvents file descriptors are inherited on fork, so
  # we need to reopen them otherwise only the parent or the child
  # will be notified.
  # FIXME: this callback is keeping a reference on the instance
  @after_fork = ActiveSupport::ForkTracker.after_fork { start }
end