Sha256: af3e34bcbd60f8bc3a69812a640fb1bb02ab40406947bd66c45e56288607ed5a

Contents?: true

Size: 1.07 KB

Versions: 4

Compression:

Stored size: 1.07 KB

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

4 entries across 4 versions & 1 rubygems

Version Path
jzip-1.0.10 lib/jzip/engine/requirement.rb
jzip-1.0.9 lib/jzip/engine/requirement.rb
jzip-1.0.8 lib/jzip/engine/requirement.rb
jzip-1.0.7 lib/jzip/engine/requirement.rb