Module: FileWatch::ObservingBase
- Included in:
- ObservingRead, ObservingTail
- Defined in:
- lib/filewatch/observing_base.rb
Instance Attribute Summary collapse
-
#settings ⇒ Object
readonly
Returns the value of attribute settings.
-
#sincedb_collection ⇒ Object
readonly
Returns the value of attribute sincedb_collection.
-
#watch ⇒ Object
readonly
Returns the value of attribute watch.
Instance Method Summary collapse
- #build_watch_and_dependencies ⇒ Object
-
#close_file(path) ⇒ Object
close_file(path) is to be used by external code when it knows that it is completely done with a file.
- #initialize(opts = {}) ⇒ Object
-
#quit ⇒ Object
quit is a sort-of finalizer, it should be called for clean up before the instance is disposed of.
- #sincedb_write(reason = nil) ⇒ Object
- #watch_this(path) ⇒ Object
Instance Attribute Details
#settings ⇒ Object (readonly)
Returns the value of attribute settings.
37 38 39 |
# File 'lib/filewatch/observing_base.rb', line 37 def settings @settings end |
#sincedb_collection ⇒ Object (readonly)
Returns the value of attribute sincedb_collection.
37 38 39 |
# File 'lib/filewatch/observing_base.rb', line 37 def sincedb_collection @sincedb_collection end |
#watch ⇒ Object (readonly)
Returns the value of attribute watch.
37 38 39 |
# File 'lib/filewatch/observing_base.rb', line 37 def watch @watch end |
Instance Method Details
#build_watch_and_dependencies ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/filewatch/observing_base.rb', line 58 def build_watch_and_dependencies logger.info("START, creating Discoverer, Watch with file and sincedb collections") watched_files_collection = WatchedFilesCollection.new(@settings) @sincedb_collection = SincedbCollection.new(@settings) @sincedb_collection.open discoverer = Discoverer.new(watched_files_collection, @sincedb_collection, @settings) @watch = Watch.new(discoverer, watched_files_collection, @settings) @watch.add_processor build_specific_processor(@settings) end |
#close_file(path) ⇒ Object
close_file(path) is to be used by external code when it knows that it is completely done with a file. Other files or folders may still be being watched. Caution, once unwatched, a file can’t be watched again unless a new instance of this class begins watching again. The sysadmin should rename, move or delete the file.
92 93 94 95 |
# File 'lib/filewatch/observing_base.rb', line 92 def close_file(path) @watch.unwatch(path) sincedb_write end |
#initialize(opts = {}) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/filewatch/observing_base.rb', line 39 def initialize(opts={}) = { :sincedb_write_interval => 10, :stat_interval => 1, :discover_interval => 5, :exclude => [], :start_new_files_at => :end, :delimiter => "\n", :file_chunk_count => FIXNUM_MAX, :file_sort_by => "last_modified", :file_sort_direction => "asc", }.merge(opts) unless .include?(:sincedb_path) raise NoSinceDBPathGiven.new("No sincedb_path set in options. This should have been added in the main LogStash::Inputs::File class") end @settings = Settings.() build_watch_and_dependencies end |
#quit ⇒ Object
quit is a sort-of finalizer, it should be called for clean up before the instance is disposed of.
80 81 82 83 84 |
# File 'lib/filewatch/observing_base.rb', line 80 def quit logger.info("QUIT - closing all files and shutting down.") @watch.quit # <-- should close all the files # sincedb_write("shutting down") end |
#sincedb_write(reason = nil) ⇒ Object
72 73 74 75 |
# File 'lib/filewatch/observing_base.rb', line 72 def sincedb_write(reason=nil) # can be invoked from the file input @sincedb_collection.write(reason) end |
#watch_this(path) ⇒ Object
68 69 70 |
# File 'lib/filewatch/observing_base.rb', line 68 def watch_this(path) @watch.watch(path) end |