Sha256: 279c406c867c93443a0770cb59655c8aa2aa4ab23e0a8c9b676c93ff310493d5

Contents?: true

Size: 1.17 KB

Versions: 83

Compression:

Stored size: 1.17 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

83 entries across 83 versions & 1 rubygems

Version Path
avo-2.11.2.pre.1 lib/avo/reloader.rb
avo-2.11.1.pre.3 lib/avo/reloader.rb
avo-2.11.1 lib/avo/reloader.rb
avo-2.11.1.pre.2 lib/avo/reloader.rb
avo-2.11.1.pre.1 lib/avo/reloader.rb
avo-2.11.0 lib/avo/reloader.rb
avo-2.10.3.pre.1 lib/avo/reloader.rb
avo-2.10.2 lib/avo/reloader.rb
avo-2.9.2.pre1 lib/avo/reloader.rb
avo-2.10.0 lib/avo/reloader.rb
avo-2.9.1.pre7 lib/avo/reloader.rb
avo-2.9.1.pre6 lib/avo/reloader.rb
avo-2.9.1.pre5 lib/avo/reloader.rb
avo-2.9.1.pre4 lib/avo/reloader.rb
avo-2.9.1.pre3 lib/avo/reloader.rb
avo-2.9.1.pre2 lib/avo/reloader.rb
avo-2.9.1.pre1 lib/avo/reloader.rb
avo-2.9.0 lib/avo/reloader.rb
avo-2.8.0 lib/avo/reloader.rb
avo-2.7.1.pre.1 lib/avo/reloader.rb