Class: SiteSettingsTask
- Inherits:
-
Object
- Object
- SiteSettingsTask
- Defined in:
- app/services/site_settings_task.rb
Class Method Summary collapse
- .directories ⇒ Object
- .directories_to_check ⇒ Object
- .directory_path(directory_name) ⇒ Object
- .export_to_hash(include_defaults: false, include_hidden: false) ⇒ Object
- .import(yml) ⇒ Object
- .names ⇒ Object
- .rg_installed? ⇒ Boolean
- .rg_search_count(term, directory) ⇒ Object
Class Method Details
.directories ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'app/services/site_settings_task.rb', line 65 def self.directories directories = [Dir.pwd] SiteSettingsTask.directories_to_check.each do |d| if Dir.exist? SiteSettingsTask.directory_path(d) directories << SiteSettingsTask.directory_path(d) end end directories end |
.directories_to_check ⇒ Object
61 62 63 |
# File 'app/services/site_settings_task.rb', line 61 def self.directories_to_check %w[all-the-themes all-the-custom-themes all-the-plugins all-the-custom-plugins] end |
.directory_path(directory_name) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'app/services/site_settings_task.rb', line 52 def self.directory_path(directory_name) all_the_parent_dir = ENV["ALL_THE_PARENT_DIR"] if all_the_parent_dir File.(File.join(all_the_parent_dir, directory_name)) else File.(File.join(Dir.pwd, "..", directory_name)) end end |
.export_to_hash(include_defaults: false, include_hidden: false) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'app/services/site_settings_task.rb', line 4 def self.export_to_hash(include_defaults: false, include_hidden: false) site_settings = SiteSetting.all_settings(include_hidden: include_hidden) h = {} site_settings.each do |site_setting| next if site_setting[:default] == site_setting[:value] if !include_defaults h.store(site_setting[:setting].to_s, site_setting[:value]) end h end |
.import(yml) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/services/site_settings_task.rb', line 14 def self.import(yml) h = SiteSettingsTask.export_to_hash(include_defaults: true, include_hidden: true) counts = { updated: 0, not_found: 0, errors: 0 } log = [] site_settings = YAML.safe_load(yml) site_settings.each do |site_setting| key = site_setting[0] val = site_setting[1] if h.has_key?(key) if val != h[key] #only update if different begin result = SiteSetting.set_and_log(key, val) log << "Changed #{key} FROM: #{result.previous_value} TO: #{result.new_value}" counts[:updated] += 1 rescue => e log << "ERROR: #{e.}" counts[:errors] += 1 end end else log << "NOT FOUND: existing site setting not found for #{key}" counts[:not_found] += 1 end end [log, counts] end |
.names ⇒ Object
42 43 44 45 46 |
# File 'app/services/site_settings_task.rb', line 42 def self.names SiteSetting .all_settings(include_hidden: true) .map { |site_setting| site_setting[:setting].to_s } end |
.rg_installed? ⇒ Boolean
48 49 50 |
# File 'app/services/site_settings_task.rb', line 48 def self.rg_installed? !`which rg`.strip.empty? end |
.rg_search_count(term, directory) ⇒ Object
75 76 77 |
# File 'app/services/site_settings_task.rb', line 75 def self.rg_search_count(term, directory) `rg -l --no-ignore "#{term}" "#{directory}" -g '!config' -g '!db/migrate' | wc -l`.strip.to_i end |