Class: Middleman::Sitemap::Extensions::OnDisk
- Inherits:
-
Object
- Object
- Middleman::Sitemap::Extensions::OnDisk
- Defined in:
- middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb
Instance Attribute Summary (collapse)
-
- (Object) sitemap
Returns the value of attribute sitemap.
-
- (Object) waiting_for_ready
Returns the value of attribute waiting_for_ready.
Instance Method Summary (collapse)
-
- (OnDisk) initialize(sitemap)
constructor
A new instance of OnDisk.
-
- (void) manipulate_resource_list(resources)
Update the main sitemap resource list.
-
- (void) remove_file(file, rebuild = true)
Remove a file from the store.
-
- (Boolean) touch_file(file, rebuild = true)
Update or add an on-disk file path.
Constructor Details
- (OnDisk) initialize(sitemap)
A new instance of OnDisk
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb', line 14 def initialize(sitemap) @sitemap = sitemap @app = @sitemap.app @file_paths_on_disk = Set.new scoped_self = self @waiting_for_ready = true # Register file change callback @app.files.changed do |file| scoped_self.touch_file(file, !scoped_self.waiting_for_ready) end # Register file delete callback @app.files.deleted do |file| scoped_self.remove_file(file, !scoped_self.waiting_for_ready) end @app.ready do scoped_self.waiting_for_ready = false scoped_self.sitemap.rebuild_resource_list!(:on_disk_ready) end end |
Instance Attribute Details
- (Object) sitemap
Returns the value of attribute sitemap
11 12 13 |
# File 'middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb', line 11 def sitemap @sitemap end |
- (Object) waiting_for_ready
Returns the value of attribute waiting_for_ready
12 13 14 |
# File 'middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb', line 12 def waiting_for_ready @waiting_for_ready end |
Instance Method Details
- (void) manipulate_resource_list(resources)
This method returns an undefined value.
Update the main sitemap resource list
72 73 74 75 76 77 78 79 80 |
# File 'middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb', line 72 def manipulate_resource_list(resources) resources + @file_paths_on_disk.map do |file| ::Middleman::Sitemap::Resource.new( @sitemap, @sitemap.file_to_path(file), File.(file, @app.root) ) end end |
- (void) remove_file(file, rebuild = true)
This method returns an undefined value.
Remove a file from the store
64 65 66 67 68 |
# File 'middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb', line 64 def remove_file(file, rebuild=true) if @file_paths_on_disk.delete?(file) @sitemap.rebuild_resource_list!(:removed_file) if rebuild end end |
- (Boolean) touch_file(file, rebuild = true)
Update or add an on-disk file path
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb', line 42 def touch_file(file, rebuild=true) return false if file == @app.source_dir || File.directory?(file) path = @sitemap.file_to_path(file) return false unless path ignored = @app.ignored_sitemap_matchers.any? do |name, callback| callback.call(file, path) end @file_paths_on_disk << file unless ignored # Rebuild the sitemap any time a file is touched # in case one of the other manipulators # (like asset_hash) cares about the contents of this file, # whether or not it belongs in the sitemap (like a partial) @sitemap.rebuild_resource_list!(:touched_file) if rebuild end |