Sha256: 6b200e9ff2e5e3c150f77a4c167e6f08e6de5fd7cdb6b1288d51363328f1e927

Contents?: true

Size: 1023 Bytes

Versions: 1

Compression:

Stored size: 1023 Bytes

Contents

module Jzip
  module Engine

    Requirement = Struct.new(:file, :source, :target, :overrule_minification) do

      include Support::Notifier

      def newer?(mtime)
        notify "Newer     '#{target_file}'" if result = mtime < File.mtime(target_file)
        result
      end

      def parse
        @code ||= begin
                    source_file = plain_javascript? ? self.file : (template.parse; template.target_file)
                    File.read(minify? ? Support::Minifier.parse(source_file) : source_file)
                  end
      end

      def code
        parse
      end

    private

      def plain_javascript?
        File.extname(self.file) == ".js"
      end

      def minify?
        Jzip::Engine::options[:minify] && !@overrule_minification
      end

      def template
        @template ||= Template.build(self.file, self.source, self.target) unless plain_javascript?
      end

      def target_file
        plain_javascript? ? self.file : template.target_file
      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jzip-1.0.11 lib/jzip/engine/requirement.rb