Class: Relaxo::Dataset

Inherits:
Object
  • Object
show all
Defined in:
lib/relaxo/dataset.rb

Direct Known Subclasses

Changeset

Instance Method Summary collapse

Constructor Details

#initialize(repository, tree) ⇒ Dataset

Returns a new instance of Dataset.



12
13
14
15
16
17
# File 'lib/relaxo/dataset.rb', line 12

def initialize(repository, tree)
	@repository = repository
	@tree = tree
	
	@directories = {}
end

Instance Method Details

#directory?(path) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
41
# File 'lib/relaxo/dataset.rb', line 37

def directory?(path)
	@directories.key?(path) or @tree.path(path)[:type] == :tree
rescue Rugged::TreeError
	return false
end

#each(path = '', &block) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/relaxo/dataset.rb', line 43

def each(path = '', &block)
	return to_enum(:each, path) unless block_given?
	
	directory = fetch_directory(path)
	
	directory.each(&block)
end

#exist?(path) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/relaxo/dataset.rb', line 33

def exist?(path)
	read(path) or directory?(path)
end

#file?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/relaxo/dataset.rb', line 29

def file?
	read(path)
end

#read(path) ⇒ Object Also known as: []



19
20
21
22
23
24
25
# File 'lib/relaxo/dataset.rb', line 19

def read(path)
	if entry = @tree.path(path) and entry[:type] == :blob and oid = entry[:oid]
		@repository.read(oid)
	end
rescue Rugged::TreeError
	return nil
end