Class: SMB::ClientHelper::LsItem

Inherits:
Object
  • Object
show all
Defined in:
lib/smb/client/ls_item.rb

Constant Summary collapse

REGEX =
/(?<name>[\.|\w]+)\s+(?<type>.)\s+(?<size>\d+)\s+(?<change_time>.+)/

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#change_timeObject

Returns the value of attribute change_time.



8
9
10
# File 'lib/smb/client/ls_item.rb', line 8

def change_time
  @change_time
end

#nameObject

Returns the value of attribute name.



8
9
10
# File 'lib/smb/client/ls_item.rb', line 8

def name
  @name
end

#sizeObject

Returns the value of attribute size.



8
9
10
# File 'lib/smb/client/ls_item.rb', line 8

def size
  @size
end

#typeObject

Returns the value of attribute type.



8
9
10
# File 'lib/smb/client/ls_item.rb', line 8

def type
  @type
end

Class Method Details

.from_line(line) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/smb/client/ls_item.rb', line 22

def self.from_line(line)
  match_data = REGEX.match line
  return nil unless match_data

  item = LsItem.new
  item.name = match_data['name']
  item.type = match_data['type']
  item.size = match_data['size'].to_i
  item.change_time = Time.parse match_data['change_time']
  item
end

Instance Method Details

#directory?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/smb/client/ls_item.rb', line 14

def directory?
  %w[D].include? @type
end

#file?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/smb/client/ls_item.rb', line 10

def file?
  %w[A N].include? @type
end

#hidden?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/smb/client/ls_item.rb', line 18

def hidden?
  %w[H].include? @type
end