You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@creadur.apache.org by bo...@apache.org on 2011/03/11 18:20:51 UTC

svn commit: r1080680 - in /incubator/rat/main/trunk: RELEASE_NOTES.txt apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenceAppender.java apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenceAppender.java

Author: bodewig
Date: Fri Mar 11 17:20:51 2011
New Revision: 1080680

URL: http://svn.apache.org/viewvc?rev=1080680&view=rev
Log:
support Ruby when adding licenses.  RAT-84

Modified:
    incubator/rat/main/trunk/RELEASE_NOTES.txt
    incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenceAppender.java
    incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenceAppender.java

Modified: incubator/rat/main/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/RELEASE_NOTES.txt?rev=1080680&r1=1080679&r2=1080680&view=diff
==============================================================================
--- incubator/rat/main/trunk/RELEASE_NOTES.txt (original)
+++ incubator/rat/main/trunk/RELEASE_NOTES.txt Fri Mar 11 17:20:51 2011
@@ -9,6 +9,8 @@ RAT 0.8
       templates
     * RAT-83 Support automatic addition of license headers to Scala
       source files
+    * RAT-84 Support automatic addition of license headers to Ruby
+      source files
 
 RAT 0.7
 =======

Modified: incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenceAppender.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenceAppender.java?rev=1080680&r1=1080679&r2=1080680&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenceAppender.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenceAppender.java Fri Mar 11 17:20:51 2011
@@ -47,6 +47,7 @@ public abstract class AbstractLicenceApp
     private static final int TYPE_BAT    = 12;
     private static final int TYPE_VM     = 13;
     private static final int TYPE_SCALA = 14;
+    private static final int TYPE_RUBY = 15;
 
     private boolean isForced;
 
@@ -88,7 +89,7 @@ public abstract class AbstractLicenceApp
         String line;
         boolean first = true;
         while ((line = br.readLine()) != null) {
-            if (first && type == TYPE_PYTHON) {
+            if (first && (type == TYPE_PYTHON || type == TYPE_RUBY)) {
                 doFirstLine(document, writer, line, "#!/usr/bin");
             } else if (first && type == TYPE_BAT) {
                 doFirstLine(document, writer, line, "@echo off");
@@ -174,6 +175,8 @@ public abstract class AbstractLicenceApp
             return TYPE_VM;
         } else if (document.getPath().endsWith(".scala")) {
             return TYPE_SCALA;
+        } else if (document.getPath().endsWith(".rb")) {
+            return TYPE_RUBY;
         }
         return TYPE_UNKNOWN;
     }
@@ -216,6 +219,7 @@ public abstract class AbstractLicenceApp
         case TYPE_SH:         return "#\n";
         case TYPE_BAT:        return "rem\n";
         case TYPE_SCALA: return "/*\n";
+        case TYPE_RUBY:     return "#\n";
         default: return "";
         }
     }
@@ -243,6 +247,7 @@ public abstract class AbstractLicenceApp
         case TYPE_SH:         return "#\n";
         case TYPE_BAT:        return "rem\n";
         case TYPE_SCALA: return " */\n";
+        case TYPE_RUBY:     return "#\n";
         default: return "";
         }
     }
@@ -275,6 +280,7 @@ public abstract class AbstractLicenceApp
         case TYPE_BAT:        return "rem" + content + "\n";
         case TYPE_VM:         return "##" + content + "\n";
         case TYPE_SCALA: return " *" + content + "\n";
+        case TYPE_RUBY:     return "#" + content + "\n";
         default: return "";
         }
     }

Modified: incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenceAppender.java
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenceAppender.java?rev=1080680&r1=1080679&r2=1080680&view=diff
==============================================================================
--- incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenceAppender.java (original)
+++ incubator/rat/main/trunk/apache-rat-core/src/test/java/org/apache/rat/annotation/TestLicenceAppender.java Fri Mar 11 17:20:51 2011
@@ -251,4 +251,53 @@ public class TestLicenceAppender extends
     newFile.delete();
   }
   
+  public void testAddLicenseToRubyWithoutHashBang() throws IOException {
+    String filename = "tmp.rb";
+    String firstLine = "#";
+    
+    File file = new File(System.getProperty("java.io.tmpdir") + File.separator + filename);
+    FileWriter writer = new FileWriter(file);
+    writer.write("class Foo\n");
+    writer.write("end\n");
+    writer.close();
+    
+    ApacheV2LicenceAppender appender = new ApacheV2LicenceAppender();
+    appender.append(file);
+    
+    File newFile = new File(System.getProperty("java.io.tmpdir") + File.separator + filename + ".new");
+    
+    BufferedReader reader = new BufferedReader(new FileReader(newFile));
+    String line = reader.readLine();
+    assertEquals("First line is incorrect", firstLine, line);
+    
+    file.delete();
+    newFile.delete();
+  }
+
+  public void testAddLicenseToRubyWithHashBang() throws IOException {
+    String filename = "tmp.rb";
+    String firstLine = "#!/usr/bin/env ruby";
+    String secondLine = "#";
+    
+    File file = new File(System.getProperty("java.io.tmpdir") + File.separator + filename);
+    FileWriter writer = new FileWriter(file);
+    writer.write(firstLine + "\n");
+    writer.write("class Foo\n");
+    writer.write("end\n");
+    writer.close();
+    
+    ApacheV2LicenceAppender appender = new ApacheV2LicenceAppender();
+    appender.append(file);
+    
+    File newFile = new File(System.getProperty("java.io.tmpdir") + File.separator + filename + ".new");
+    
+    BufferedReader reader = new BufferedReader(new FileReader(newFile));
+    String line = reader.readLine();
+    assertEquals("First line is incorrect", firstLine, line);
+    line = reader.readLine();
+    assertEquals("Second line is incorrect", secondLine, line);
+    
+    file.delete();
+    newFile.delete();
+  }
 }