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.16.1.pre.1.nativefields lib/avo/reloader.rb
avo-2.16.0 lib/avo/reloader.rb
avo-2.15.3 lib/avo/reloader.rb
avo-2.15.3.pre.1.data.attrs.to.sidebar.items lib/avo/reloader.rb
avo-2.15.2 lib/avo/reloader.rb
avo-2.15.2.pre.1 lib/avo/reloader.rb
avo-2.15.1 lib/avo/reloader.rb
avo-2.15.0 lib/avo/reloader.rb
avo-2.14.3.pre.7.polytranslations1 lib/avo/reloader.rb
avo-2.14.3.pre.6.nosprockets lib/avo/reloader.rb
avo-2.14.3.pre.5.nosprockets lib/avo/reloader.rb
avo-2.14.3.pre.4.tosqlfix lib/avo/reloader.rb
avo-2.14.3.pre.3.jsbundling lib/avo/reloader.rb
avo-2.14.3.pre.2.tailwindcss lib/avo/reloader.rb
avo-2.14.3.pre.1.branding lib/avo/reloader.rb
avo-2.14.2 lib/avo/reloader.rb
avo-2.14.2.pre.1 lib/avo/reloader.rb
avo-2.14.1 lib/avo/reloader.rb
avo-2.14.1.pre.1 lib/avo/reloader.rb
avo-2.14.0 lib/avo/reloader.rb