Class: Teapot::Graph::Node
- Inherits:
-
Object
- Object
- Teapot::Graph::Node
- Defined in:
- lib/teapot/graph.rb
Instance Attribute Summary collapse
-
#dependencies ⇒ Object
readonly
Returns the value of attribute dependencies.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
Instance Method Summary collapse
- #changed_since?(modified_time) ⇒ Boolean
- #extract_dependencies! ⇒ Object
-
#initialize(graph, path) ⇒ Node
constructor
A new instance of Node.
Constructor Details
#initialize(graph, path) ⇒ Node
Returns a new instance of Node.
76 77 78 79 80 81 82 83 84 |
# File 'lib/teapot/graph.rb', line 76 def initialize(graph, path) @graph = graph @path = Pathname(path) @dependencies = [] @changed = nil end |
Instance Attribute Details
#dependencies ⇒ Object (readonly)
Returns the value of attribute dependencies.
87 88 89 |
# File 'lib/teapot/graph.rb', line 87 def dependencies @dependencies end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
86 87 88 |
# File 'lib/teapot/graph.rb', line 86 def path @path end |
Instance Method Details
#changed_since?(modified_time) ⇒ Boolean
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/teapot/graph.rb', line 89 def changed_since?(modified_time) if @changed == nil # If the file was modified in the future relative to old modified_time: if @path.mtime > modified_time puts "Changed: #{path.to_s.inspect}" return @changed = true else @changed = false end # If any of the file's dependencies have changed relative to the old modified_time: @dependencies.each do |dependency| if dependency.changed_since?(modified_time) return @changed = true end end end return @changed end |
#extract_dependencies! ⇒ Object
110 111 112 |
# File 'lib/teapot/graph.rb', line 110 def extract_dependencies! @dependencies = @graph.extract(path) end |