     
     uglify:
       options:
-        preserveComments: isIncludedInBanner
+        preserveComments: require 'uglify-save-license'
       
       main:
         options:
-          banner: "/*! Copyright (c) 2013 #{ settings.author } | MIT License */"
+          banner: "/*! Copyright (c) 2014 #{ settings.author } | MIT License */"
           compress:
             global_defs:
               DEBUG: false

  
  JS_ROOT = "#{ SRC_ROOT }js/"
  
  # Preserve banner/license comments certainly
  isIncludedInBanner = do ->
    prevCommentLine = 0

    return (node, comment) ->
      if comment.type is 'comment2' and
      (/^\!|@preserve|@license|@cc_on/mi.test comment.value)
        return true
      
      # コメントが先頭行にあるか、先頭行から連なるコメントである場合、バナーであると判断する
      result = comment.line <= 1 or comment.line is prevCommentLine + 1

      # コメントがバナーに含まれる場合、そのコメントの行番号を保存する
      # コメントがバナーではない場合、行番号の保存をリセットする
      if result
        prevCommentLine = comment.line
      else
        prevCommentLine = 0
        
      return result
  
  grunt.initConfig
    bower:
      options:
        targetDir: "#{ DEST_ROOT }.tmp/bower_exports/"
        cleanTargetDir: true
        bowerOptions:
          production: true
      
      install: {}
      
    modernizr:
      devFile: 'remote'

      if match?
        svgString = svgString.replace match, 'viewBox'
      grunt.file.write "#{ DEST_ROOT }.tmp/svg/#{ filepath }", svgString
      
  grunt.task.registerTask 'postprocessCSS', ['autoprefixer', 'cssmin']

