Class: Inspec::RelativeFileProvider
- Inherits:
-
Object
- Object
- Inspec::RelativeFileProvider
- Defined in:
- lib/inspec/file_provider.rb
Overview
class IafProvider
Constant Summary collapse
- BLACKLIST_FILES =
[ "/pax_global_header", "pax_global_header", ].freeze
Instance Attribute Summary collapse
-
#files ⇒ Object
readonly
Returns the value of attribute files.
-
#parent ⇒ Object
readonly
Returns the value of attribute parent.
-
#prefix ⇒ Object
readonly
Returns the value of attribute prefix.
Instance Method Summary collapse
- #abs_path(file) ⇒ Object
- #binread(file) ⇒ Object
-
#initialize(parent_provider) ⇒ RelativeFileProvider
constructor
A new instance of RelativeFileProvider.
- #read(file) ⇒ Object
Constructor Details
#initialize(parent_provider) ⇒ RelativeFileProvider
Returns a new instance of RelativeFileProvider.
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 |
# File 'lib/inspec/file_provider.rb', line 311 def initialize(parent_provider) @parent = parent_provider @prefix = get_prefix(parent.files) if @prefix.nil? raise "Could not determine path prefix for #{parent}" end # select all files that begin with the prefix, and strip off the prefix from the file. # # strip off any leading top-level relative path (./) which is common in # PAX-formatted tar files. Do not do any translation of the path if the # path is an absolute path. @files = parent.files .find_all { |x| x.start_with?(prefix) && x != prefix } .map { |x| x[prefix.length..-1] } .map do |x| path = Pathname.new(x) path.absolute? ? path.to_s : path.relative_path_from(Pathname.new(".")).to_s end end |
Instance Attribute Details
#files ⇒ Object (readonly)
Returns the value of attribute files.
307 308 309 |
# File 'lib/inspec/file_provider.rb', line 307 def files @files end |
#parent ⇒ Object (readonly)
Returns the value of attribute parent.
309 310 311 |
# File 'lib/inspec/file_provider.rb', line 309 def parent @parent end |
#prefix ⇒ Object (readonly)
Returns the value of attribute prefix.
308 309 310 |
# File 'lib/inspec/file_provider.rb', line 308 def prefix @prefix end |
Instance Method Details
#abs_path(file) ⇒ Object
332 333 334 335 336 |
# File 'lib/inspec/file_provider.rb', line 332 def abs_path(file) return nil if file.nil? prefix + file end |
#binread(file) ⇒ Object
342 343 344 |
# File 'lib/inspec/file_provider.rb', line 342 def binread(file) parent.binread(abs_path(file)) end |
#read(file) ⇒ Object
338 339 340 |
# File 'lib/inspec/file_provider.rb', line 338 def read(file) parent.read(abs_path(file)) end |