Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

37 рядки
768B

  1. class Analysis < ApplicationRecord
  2. enum service: %i[https smtp xmpp tls ssh].collect { |e| [e, e.to_s] }.to_h
  3. validates :service, presence: true
  4. validates :host, presence: true
  5. def self.[](service, host, args)
  6. key = self.key service, host, args
  7. self.find_by key
  8. end
  9. def self.pending!(service, host, args)
  10. key = self.key service, host, args
  11. analysis = self.find_or_create_by! key
  12. analysis.pending!
  13. end
  14. def pending!
  15. self.update! pending: true
  16. self
  17. end
  18. def self.post!(service, host, args, result)
  19. analysis = self[service, host, args]
  20. analysis.post! result
  21. end
  22. def post!(result)
  23. self.update! pending: false, result: result
  24. end
  25. private
  26. def self.key(service, host, args)
  27. { service: service, host: host, args: args }
  28. end
  29. end