Class: DiscourseTheme::Watcher
- Inherits:
-
Object
- Object
- DiscourseTheme::Watcher
- Defined in:
- lib/discourse_theme/watcher.rb
Instance Method Summary collapse
-
#initialize(dir:, uploader:) ⇒ Watcher
constructor
A new instance of Watcher.
- #watch ⇒ Object
Constructor Details
#initialize(dir:, uploader:) ⇒ Watcher
Returns a new instance of Watcher.
2 3 4 5 |
# File 'lib/discourse_theme/watcher.rb', line 2 def initialize(dir:, uploader:) @dir = dir @uploader = uploader end |
Instance Method Details
#watch ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/discourse_theme/watcher.rb', line 7 def watch listener = Listen.to(@dir) do |modified, added, removed| if modified.length == 1 && added.length == 0 && removed.length == 0 && (resolved = resolve_file(modified[0])) target, name, type_id = resolved print "Updating #{target} #{name}: " @uploader.upload_theme_field( target: target, name: name, value: File.read(modified[0]), type_id: type_id ) else print "Full re-sync is required, re-uploading theme: " @uploader.upload_full_theme end end listener.start sleep end |