Class: MotionBundler::Require::Tracer::Log
- Defined in:
- lib/motion-bundler/require/tracer/log.rb
Instance Method Summary collapse
- #clear ⇒ Object
- #files ⇒ Object
- #files_dependencies ⇒ Object
-
#initialize ⇒ Log
constructor
A new instance of Log.
- #register(file, path) ⇒ Object
- #requires ⇒ Object
Constructor Details
#initialize ⇒ Log
Returns a new instance of Log.
6 7 8 9 10 |
# File 'lib/motion-bundler/require/tracer/log.rb', line 6 def initialize @files = Set.new @files_dependencies = {} @requires = {} end |
Instance Method Details
#clear ⇒ Object
12 13 14 15 16 |
# File 'lib/motion-bundler/require/tracer/log.rb', line 12 def clear @files.clear @files_dependencies.clear @requires.clear end |
#files ⇒ Object
18 19 20 |
# File 'lib/motion-bundler/require/tracer/log.rb', line 18 def files @files.to_a end |
#files_dependencies ⇒ Object
22 23 24 |
# File 'lib/motion-bundler/require/tracer/log.rb', line 22 def files_dependencies @files_dependencies.dup end |
#register(file, path) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/motion-bundler/require/tracer/log.rb', line 30 def register(file, path) return unless file.match(/^(.*\.rb):(\d+)/) || file.match(/^([A-Z]+)$/) file = $1.include?("/bundler/") ? "BUNDLER" : $1 line = $1.include?("/bundler/") ? nil : $2 (@requires[[file, line].compact.join(":")] ||= []) << path dependencies = (@files_dependencies[file] ||= []) index = dependencies.size loaded_feature = begin if (result = yield).is_a?(Hash) result[:required] else loaded_features.last end end if loaded_feature @files << file unless @files.include? file @files << loaded_feature dependencies.insert index, loaded_feature else @files_dependencies.delete file if dependencies.empty? end true end |
#requires ⇒ Object
26 27 28 |
# File 'lib/motion-bundler/require/tracer/log.rb', line 26 def requires @requires.dup end |