Sha256: 9e7c079236712af86421a7d0362d924d017e1d14ab25b13cb1db4926e21c2674

Contents?: true

Size: 1.43 KB

Versions: 11

Compression:

Stored size: 1.43 KB

Contents

require_relative "asset_manifest"

require_relative "asset_installer/copy"
require_relative "asset_installer/copy_no_preserve"
require_relative "asset_installer/compile"

module TinyMCE
  module Rails
    class AssetInstaller
      attr_reader :assets, :target, :strategy
      attr_accessor :logger

      def initialize(assets, target, manifest_path)
        @assets = assets
        @target = target
        @manifest_path = manifest_path || target

        @logger       = Logger.new($stderr)
        @logger.level = Logger::INFO
      end

      def install
        (strategy || Copy).new(self).call
      end

      def log_level
        @logger.level
      end

      def log_level=(level)
        if level.is_a?(Integer)
          @logger.level = level
        else
          @logger.level = Logger.const_get(level.to_s.upcase)
        end
      end

      def strategy=(strategy)
        if strategy.is_a?(Class)
          @strategy = strategy
        else
          @strategy = self.class.const_get(strategy.to_s.classify)
        end
      end

      def manifest
        @manifest ||= AssetManifest.load(@manifest_path)
      end

      def logical_path(file)
        file.relative_path_from(@assets.parent).to_s
      end

      def with_asset(src, dest)
        if src != dest
          src = File.join(@target, src)
          dest = File.join(@target, dest)

          yield src, dest if File.exist?(src)
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
tinymce-rails-7.7.1 lib/tinymce/rails/asset_installer.rb
tinymce-rails-7.7.0 lib/tinymce/rails/asset_installer.rb
tinymce-rails-7.6.1 lib/tinymce/rails/asset_installer.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/tinymce-rails-7.6.0/lib/tinymce/rails/asset_installer.rb
tinymce-rails-7.6.0 lib/tinymce/rails/asset_installer.rb
tinymce-rails-7.5.1 lib/tinymce/rails/asset_installer.rb
tinymce-rails-7.5.0 lib/tinymce/rails/asset_installer.rb
tinymce-rails-6.8.5 lib/tinymce/rails/asset_installer.rb
tinymce-rails-7.4.1 lib/tinymce/rails/asset_installer.rb
tinymce-rails-7.4.0 lib/tinymce/rails/asset_installer.rb
tinymce-rails-7.3.0 lib/tinymce/rails/asset_installer.rb