mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Allow any enum to be passed to Repository for stat collecting
Fixes #28
This commit is contained in:
		| @@ -20,35 +20,17 @@ module Linguist | ||||
|  | ||||
|     # Public: Initialize a new Repository | ||||
|     # | ||||
|     # paths - An Array of Blob objects or a Hash of String path keys | ||||
|     #         and Blob values. | ||||
|     # enum - Enumerator that responds to `each` and | ||||
|     #        yields Blob objects | ||||
|     # | ||||
|     # Returns a Repository | ||||
|     def initialize(paths) | ||||
|       case paths | ||||
|       when Array | ||||
|         @paths = paths.inject({}) do |h, blob| | ||||
|           h[blob.name] = blob | ||||
|           h | ||||
|         end | ||||
|       when Hash | ||||
|         @paths = paths | ||||
|       else | ||||
|         raise ArgumentError, "#{paths.class} is not an Array or Hash" | ||||
|       end | ||||
|  | ||||
|     def initialize(enum) | ||||
|       @enum = enum | ||||
|       @computed_stats = false | ||||
|       @language = @size = nil | ||||
|       @sizes = Hash.new { 0 } | ||||
|     end | ||||
|  | ||||
|     # Public: Lookup blob for path. | ||||
|     # | ||||
|     # Returns a Blob | ||||
|     def [](path) | ||||
|       @paths[path] | ||||
|     end | ||||
|  | ||||
|     # Public: Returns a breakdown of language stats. | ||||
|     # | ||||
|     # Examples | ||||
| @@ -84,7 +66,7 @@ module Linguist | ||||
|     def compute_stats | ||||
|       return if @computed_stats | ||||
|  | ||||
|       @paths.each do |path, blob| | ||||
|       @enum.each do |blob| | ||||
|         # Skip vendored or generated blobs | ||||
|         next if blob.vendored? || blob.generated? || blob.language.nil? | ||||
|  | ||||
|   | ||||
| @@ -13,11 +13,6 @@ class TestRepository < Test::Unit::TestCase | ||||
|     repo(File.expand_path("../..", __FILE__)) | ||||
|   end | ||||
|  | ||||
|   def test_lookup_path | ||||
|     assert linguist_repo['lib/linguist.rb'] | ||||
|     assert_equal Language['Ruby'], linguist_repo['lib/linguist.rb'].language | ||||
|   end | ||||
|  | ||||
|   def test_linguist_language | ||||
|     assert_equal Language['JavaScript'], linguist_repo.language | ||||
|   end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user