class Guard::I18nJson

Attributes

config_file[R]
current_thread[R]
require_file[R]

Public Class Methods

new(options = {}) click to toggle source
Calls superclass method
# File lib/guard/i18n_json.rb, line 14
def initialize(options = {})
  @config_file = options.delete(:config_file)
  @require_file = options.delete(:require_file)
  super
end

Public Instance Methods

error(message) click to toggle source
# File lib/guard/i18n_json.rb, line 71
def error(message)
  ::Guard::UI.error "[guard-i18n-json] #{message}"
end
export_files(changes = nil) click to toggle source
# File lib/guard/i18n_json.rb, line 48
def export_files(changes = nil)
  return unless validate_file(:config_file, config_file)
  return unless validate_file(:require_file, require_file)

  current_thread&.exit

  info("Changes detected: #{changes.join(', ')}") if changes

  @current_thread = Thread.new do
    require @require_file
    ::I18nJSON.call(config_file: @config_file)
  end

  current_thread.join
end
info(message) click to toggle source
# File lib/guard/i18n_json.rb, line 75
def info(message)
  ::Guard::UI.info "[guard-i18n-json] #{message}"
end
reload() click to toggle source
# File lib/guard/i18n_json.rb, line 28
def reload
  export_files
end
run_all() click to toggle source
# File lib/guard/i18n_json.rb, line 32
def run_all
  export_files
end
run_on_additions(paths) click to toggle source
# File lib/guard/i18n_json.rb, line 36
def run_on_additions(paths)
  export_files(paths)
end
run_on_modifications(paths) click to toggle source
# File lib/guard/i18n_json.rb, line 40
def run_on_modifications(paths)
  export_files(paths)
end
run_on_removals(paths) click to toggle source
# File lib/guard/i18n_json.rb, line 44
def run_on_removals(paths)
  export_files(paths)
end
start() click to toggle source
# File lib/guard/i18n_json.rb, line 20
def start
  export_files
end
stop() click to toggle source
# File lib/guard/i18n_json.rb, line 24
def stop
  current_thread&.exit
end
validate_file(key, file) click to toggle source
# File lib/guard/i18n_json.rb, line 64
def validate_file(key, file)
  return true if file && File.file?(file)

  error("#{key.inspect} must be a file")
  false
end