<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>log/.gitignore</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -12,8 +12,8 @@ module Ohcount
 
 			def trigger_file?(source_file)
 				return false unless ['c','cpp'].include?(source_file.polyglot)
-				regexp.match(source_file.language_breakdowns('c').code) ||
-					regexp.match(source_file.language_breakdowns('cpp').code)
+				regexp.match(source_file.language_breakdown('c').code) ||
+					regexp.match(source_file.language_breakdown('cpp').code)
 			end
 
 			def regexp</diff>
      <filename>lib/gestalt/rules/c_header_rule.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,8 +8,8 @@ module Ohcount
 
 			def trigger_file?(source_file)
 				return false unless ['c','cpp'].include?(source_file.polyglot)
-				regexp.match(source_file.language_breakdowns('c').code) ||
-					regexp.match(source_file.language_breakdowns('cpp').code)
+				regexp.match(source_file.language_breakdown('c').code) ||
+					regexp.match(source_file.language_breakdown('cpp').code)
 			end
 		end
 	end</diff>
      <filename>lib/gestalt/rules/c_keyword_rule.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ module Ohcount
 
 			def trigger_file?(source_file)
 				return false unless source_file.polyglot == 'java'
-				regexp.match(source_file.language_breakdowns('java').code)
+				regexp.match(source_file.language_breakdown('java').code)
 			end
 
 			def regexp</diff>
      <filename>lib/gestalt/rules/java_import_rule.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,8 +12,8 @@ module Ohcount
 			end
 
 			def trigger_file?(source_file)
-				return unless source_file.language_breakdowns(language)
-				regexp.match(source_file.language_breakdowns(language).code)
+				return unless source_file.language_breakdown(language)
+				regexp.match(source_file.language_breakdown(language).code)
 			end
 
 			def regexp</diff>
      <filename>lib/gestalt/rules/keyword_rule.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ module Ohcount
 		end
 
 		def process(source_file)
-			return unless source_file.source_code?
+			return unless source_file.polyglot
 			source_file.language_breakdowns.each do |lb|
 				lang = lb.name
 				lang_fact = @fact_map[lang] ||= LanguageFact.new(lang)</diff>
      <filename>lib/ohcount/language_facts.rb</filename>
    </modified>
    <modified>
      <diff>@@ -74,29 +74,16 @@ module Ohcount
 			File.basename(filename)
 		end
 
-		# returns TRUE if this source_file is recognized as being
-		# some type of source code
-		def source_code?
-			!!polyglot
-		end
-
 		def parse(&amp;block)
-			@language_breakdowns = []
-			return unless polyglot
-			@language_breakdowns = Ohcount::parse(contents, polyglot, &amp;block)
+			@language_breakdowns = polyglot ? Ohcount::parse(contents, polyglot, &amp;block) : []
 		end
 
-		def parsed?
-			!(@language_breakdowns.nil?)
+		def language_breakdowns
+			@language_breakdowns ||= parse
 		end
 
-		def language_breakdowns(language = nil)
-			parse unless parsed?
-			if language
-				return @language_breakdowns.find { |lb| lb.name == language.to_s } ||
-					LanguageBreakdown.new(language.to_s)
-			end
-			@language_breakdowns
+		def language_breakdown(language)
+			language_breakdowns.find { |lb| lb.name == language.to_s } || LanguageBreakdown.new(language.to_s)
 		end
 
 		def clone_and_rename(new_name)
@@ -143,15 +130,13 @@ module Ohcount
 		end
 
 		def raw_entities(&amp;block)
-			return unless source_code?
-			Ohcount::parse_entities(contents, polyglot, &amp;block)
+			polyglot &amp;&amp; Ohcount::parse_entities(contents, polyglot, &amp;block)
 		end
 
 		# returns the list of languages included in the parsed
 		# language_breakdowns
 		def languages
-			parse unless parsed?
-			@language_breakdowns.collect { |lb| lb.name }
+			language_breakdowns.collect { |lb| lb.name }
 		end
 
 		# returns a collection of sloc_infos containing
@@ -161,8 +146,8 @@ module Ohcount
 			all_languages = (self.languages + new.languages).uniq
 			all_languages.collect do |language|
 				si = Ohcount::SlocInfo.new(language)
-				lb_old = language_breakdowns(language)
-				lb_new = new.language_breakdowns(language)
+				lb_old = language_breakdown(language)
+				lb_new = new.language_breakdown(language)
 
 				#code
 				si.code_added, si.code_removed = calc_diff(lb_old.code, lb_new.code)</diff>
      <filename>lib/ohcount/source_file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ class SourceFileTest &lt; Ohcount::Test
 		contents = &quot;x = 5&quot;
 		f = SourceFile.new(&quot;foo.rb&quot;, :contents =&gt; contents)
 		assert_equal 'ruby', f.language_breakdowns[0].name
-		assert_equal contents, f.language_breakdowns('ruby').code
+		assert_equal contents, f.language_breakdown('ruby').code
 	end
 
 	def test_parse</diff>
      <filename>test/unit/source_file_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>becb6f63eec7c0206980da9692f1eb48e830c641</id>
    </parent>
  </parents>
  <author>
    <name>Robin Luckey</name>
    <email>robin@ohloh.net</email>
  </author>
  <url>http://github.com/robinluckey/ohcount/commit/896dd100736ab80a7da03347bd4f8477483a161c</url>
  <id>896dd100736ab80a7da03347bd4f8477483a161c</id>
  <committed-date>2009-01-28T13:10:07-08:00</committed-date>
  <authored-date>2009-01-28T13:10:07-08:00</authored-date>
  <message>[CHANGE] Some cleanups to lib/ohcount/source_file.rb</message>
  <tree>7fcd2120751e9c51b0b031ac258062c2d521530e</tree>
  <committer>
    <name>Robin Luckey</name>
    <email>robin@ohloh.net</email>
  </committer>
</commit>
