Class: Dirwatch::Settings
- Defined in:
- lib/dirwatch/settings.rb,
lib/dirwatch/settings/watch_setting.rb
Defined Under Namespace
Classes: WatchSetting
Instance Attribute Summary collapse
-
#watch_settings ⇒ Object
readonly
Returns the value of attribute watch_settings.
Class Method Summary collapse
Instance Method Summary collapse
- #<<(watch_setting) ⇒ Object
- #add(watch_setting) ⇒ Object
- #add_from_config(watch_setting, defaults, directory) ⇒ Object
- #by_interval(&block) ⇒ Object
- #import_config(config, directory) ⇒ Object
-
#initialize ⇒ Settings
constructor
A new instance of Settings.
Constructor Details
#initialize ⇒ Settings
Returns a new instance of Settings.
21 22 23 |
# File 'lib/dirwatch/settings.rb', line 21 def initialize @watch_settings = [] end |
Instance Attribute Details
#watch_settings ⇒ Object (readonly)
Returns the value of attribute watch_settings.
19 20 21 |
# File 'lib/dirwatch/settings.rb', line 19 def watch_settings @watch_settings end |
Class Method Details
.from_file(filename, options) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/dirwatch/settings.rb', line 10 def self.from_file filename, raise FileNotFoundError, filename unless File.exist? filename settings = new config = YAML.load_file(filename).symbolize_keys raise FileEmptyError, filename unless config settings.import_config config, .directory settings end |
.from_options(options) ⇒ Object
6 7 8 |
# File 'lib/dirwatch/settings.rb', line 6 def self. Settings.from_file(File.join(.directory, '.dirwatch.yml'), ) end |
Instance Method Details
#<<(watch_setting) ⇒ Object
25 26 27 |
# File 'lib/dirwatch/settings.rb', line 25 def << watch_setting add watch_setting end |
#add(watch_setting) ⇒ Object
29 30 31 |
# File 'lib/dirwatch/settings.rb', line 29 def add watch_setting @watch_settings << watch_setting end |
#add_from_config(watch_setting, defaults, directory) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/dirwatch/settings.rb', line 33 def add_from_config watch_setting, defaults, directory add WatchSetting.new( directory: directory, file_match: watch_setting[:file_match] || defaults[:file_match], interval: watch_setting[:interval] || defaults[:interval], scripts: watch_setting[:script] || defaults[:script], ) end |
#by_interval(&block) ⇒ Object
42 43 44 |
# File 'lib/dirwatch/settings.rb', line 42 def by_interval &block @watch_settings.group_by(&:interval).each(&block) end |
#import_config(config, directory) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/dirwatch/settings.rb', line 46 def import_config config, directory watch_data = {} defaults = {} config.each do |key, watch_setting| if key == :defaults defaults.merge! watch_setting else watch_data[key] = watch_setting end end watch_data.each do |_key, watch_setting| add_from_config watch_setting, defaults, directory end end |