Class: Ace::Demo::Molecules::TapeResolver
- Inherits:
-
Object
- Object
- Ace::Demo::Molecules::TapeResolver
- Defined in:
- lib/ace/demo/molecules/tape_resolver.rb
Instance Method Summary collapse
-
#initialize(gem_root: Demo.gem_root, home_dir: Dir.home, cwd: Dir.pwd) ⇒ TapeResolver
constructor
A new instance of TapeResolver.
- #resolve(tape_ref) ⇒ Object
- #search_dirs ⇒ Object
Constructor Details
#initialize(gem_root: Demo.gem_root, home_dir: Dir.home, cwd: Dir.pwd) ⇒ TapeResolver
Returns a new instance of TapeResolver.
7 8 9 10 11 |
# File 'lib/ace/demo/molecules/tape_resolver.rb', line 7 def initialize(gem_root: Demo.gem_root, home_dir: Dir.home, cwd: Dir.pwd) @gem_root = gem_root @home_dir = home_dir @cwd = cwd end |
Instance Method Details
#resolve(tape_ref) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ace/demo/molecules/tape_resolver.rb', line 13 def resolve(tape_ref) direct_path = File.(tape_ref, @cwd) return direct_path if File.file?(direct_path) candidates = search_dirs.map do |dir| candidate_names(tape_ref).map { |name| File.join(dir, name) } end candidates.flatten! match = candidates.find { |path| File.file?(path) } return match if match raise TapeNotFoundError, (tape_ref) end |
#search_dirs ⇒ Object
28 29 30 |
# File 'lib/ace/demo/molecules/tape_resolver.rb', line 28 def search_dirs Atoms::TapeSearchDirs.build(cwd: @cwd, home_dir: @home_dir, gem_root: @gem_root) end |