mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-12-08 20:38:47 +00:00
Add FileBlob
This commit is contained in:
21
lib/linguist/file_blob.rb
Normal file
21
lib/linguist/file_blob.rb
Normal file
@@ -0,0 +1,21 @@
|
||||
require 'linguist/blob_helper'
|
||||
|
||||
module Linguist
|
||||
class FileBlob
|
||||
include BlobHelper
|
||||
|
||||
def initialize(path, name = path)
|
||||
@path, @name = path, name
|
||||
end
|
||||
|
||||
attr_reader :name
|
||||
|
||||
def data
|
||||
File.read(@path)
|
||||
end
|
||||
|
||||
def size
|
||||
File.size(@path)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,5 +1,23 @@
|
||||
require 'linguist/file_blob'
|
||||
|
||||
module Linguist
|
||||
class Repository
|
||||
# Public: Initialize a new Repository from a File directory
|
||||
#
|
||||
# base_path - A path String
|
||||
#
|
||||
# Returns a Repository
|
||||
def self.from_directory(base_path)
|
||||
paths = Dir["#{base_path}/**/*"].inject({}) do |h, path|
|
||||
if File.file?(path)
|
||||
name = path.sub("#{base_path}/", '')
|
||||
h[name] = FileBlob.new(path, name)
|
||||
end
|
||||
h
|
||||
end
|
||||
new(paths)
|
||||
end
|
||||
|
||||
# Public: Initialize a new Repository
|
||||
#
|
||||
# paths - A Hash of String path keys and Blob values.
|
||||
|
||||
Reference in New Issue
Block a user