Class: OneWire::Directory

Inherits:
Object
  • Object
show all
Includes:
Retry
Defined in:
lib/one_wire/directory.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Retry

#with_retry

Constructor Details

#initialize(path, options = {}) ⇒ Directory

include Enumerable



6
7
8
9
10
11
12
# File 'lib/one_wire/directory.rb', line 6

def initialize(path, options = {})
  @path = path
  dirall = options.has_key?(:dir_all) ? options[:dirall] : Config.dirall
  @entries = dirall ?
    with_retry { Transaction.dirall(path) }.response.data.split(",") :
    with_retry { Transaction.dir(path) }.response.map { |r| r.data }
end

Instance Attribute Details

#pathObject (readonly)

Returns the value of attribute path.



28
29
30
# File 'lib/one_wire/directory.rb', line 28

def path
  @path
end

Instance Method Details

#directoriesObject



14
15
16
17
18
19
20
21
22
# File 'lib/one_wire/directory.rb', line 14

def directories
  @directories ||= @entries.collect do |entry|
    begin
      Directory.new(entry)
    rescue Errno::ENOTDIR
      nil
    end
  end.compact
end

#inspectObject



46
47
48
# File 'lib/one_wire/directory.rb', line 46

def inspect
  to_s
end

#lsObject



30
31
32
33
34
# File 'lib/one_wire/directory.rb', line 30

def ls
  [ "+ " + @path.split("/").last.to_s ] +
  members.map { |member| "  . " + member.split("/").last } +
  directories.map { |directory| "  - " + directory.path.split("/").last }
end

#membersObject



24
25
26
# File 'lib/one_wire/directory.rb', line 24

def members
  @members ||= @entries - directories.map { |directory| directory.path }
end

#to_sObject



42
43
44
# File 'lib/one_wire/directory.rb', line 42

def to_s
  ls.join("\n")
end

#treeObject



36
37
38
39
40
# File 'lib/one_wire/directory.rb', line 36

def tree
  [ "+ " + @path.split("/").last.to_s ] +
  members.map { |member| "  . " + member.split("/").last } +
  directories.map { |directory| directory.tree.map { |line| "  #{line}"} }.flatten
end