Sha256: 77401dae8b63daf40b3567d0b8aa4899d80ed2f2ffe401b3f410c690af81f4c3

Contents?: true

Size: 1.11 KB

Versions: 95

Compression:

Stored size: 1.11 KB

Contents

class Avo::Reloader
  delegate :execute_if_updated, :execute, :updated?, to: :updater

  def reload!
    # reload all files declared in paths
    files.each do |file|
      if File.exist? file
        load file
      end
    end

    # reload all files declared in each directory
    directories.keys.each do |dir|
      Dir.glob("#{dir}/**/*.rb".to_s).each do |file|
        if File.exist? file
          load file
        end
      end
    end
  end

  private

  def updater
    @updater ||= config.file_watcher.new(files, directories) { reload! }
  end

  def files
    # we want to watch some files no matter what
    paths = [
      Rails.root.join("config", "initializers", "avo.rb"),
    ]

    # we want to watch some files only in Avo development
    if reload_lib?
      paths += []
    end

    paths
  end

  def directories
    dirs = {}

    # watch the lib directory in Avo development
    if reload_lib?
      dirs[Avo::Engine.root.join("lib", "avo").to_s] = ["rb"]
    end

    dirs
  end

  def config
    Rails.application.config
  end

  def reload_lib?
    Avo::IN_DEVELOPMENT || ENV["AVO_RELOAD_LIB_DIR"]
  end
end

Version data entries

95 entries across 95 versions & 1 rubygems

Version Path
avo-2.28.0 lib/avo/reloader.rb
avo-2.27.2.pre.pr1606 lib/avo/reloader.rb
avo-2.27.1 lib/avo/reloader.rb
avo-2.27.0 lib/avo/reloader.rb
avo-2.26.3.pre.pr1601 lib/avo/reloader.rb
avo-2.26.2.pre.pr1579 lib/avo/reloader.rb
avo-2.26.1.pr1584.pre.1 lib/avo/reloader.rb
avo-2.25.1.pre.1.pr1579 lib/avo/reloader.rb
avo-2.26.0 lib/avo/reloader.rb
avo-2.25.0 lib/avo/reloader.rb
avo-2.24.1 lib/avo/reloader.rb
avo-2.24.0 lib/avo/reloader.rb
avo-2.23.3.pre.1.pr1529 lib/avo/reloader.rb
avo-2.23.2 lib/avo/reloader.rb
avo-2.23.1 lib/avo/reloader.rb
avo-2.23.0 lib/avo/reloader.rb
avo-2.22.0 lib/avo/reloader.rb
avo-2.21.3.pre.pr1489 lib/avo/reloader.rb
avo-2.21.2.pre.pr1486 lib/avo/reloader.rb
avo-2.21.1.pre.pr1484 lib/avo/reloader.rb