diff --git a/lib/ore/naming.rb b/lib/ore/naming.rb
index <HASH>..<HASH> 100644
--- a/lib/ore/naming.rb
+++ b/lib/ore/naming.rb
@@ -58,6 +58,21 @@ module Ore
     end
 
     #
+    # Converts a camel-case name to an underscored file name.
+    #
+    # @param [String] name
+    #   The name to underscore.
+    #
+    # @return [String]
+    #   The underscored version of the name.
+    #
+    def underscore(name)
+      name.gsub(/[^A-Z][A-Z][^A-Z]/) { |cap|
+        cap[0,1] + '_' + cap[1..-1]
+      }.downcase
+    end
+
+    #
     # Guesses the namespace directory within `lib/` for a project.
     #
     # @return [String]
diff --git a/spec/naming_spec.rb b/spec/naming_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/naming_spec.rb
+++ b/spec/naming_spec.rb
@@ -8,6 +8,10 @@ describe Naming do
     obj
   end
 
+  it "should underscore camel case names" do
+    subject.underscore('FooBar').should == 'foo_bar'
+  end
+
   it "should guess the module names from a project name" do
     subject.modules_of('foo-bar').should == ['Foo', 'Bar']
   end
Added Naming#underscore.