query.rb 743 B

12345678910111213141516171819202122232425
  1. module Blazer
  2. class Query < ActiveRecord::Base
  3. belongs_to :creator, Blazer::BELONGS_TO_OPTIONAL.merge(class_name: Blazer.user_class.to_s) if Blazer.user_class
  4. has_many :checks, dependent: :destroy
  5. has_many :dashboard_queries, dependent: :destroy
  6. has_many :dashboards, through: :dashboard_queries
  7. has_many :audits
  8. validates :statement, presence: true
  9. scope :named, -> { where("name <> ''") }
  10. def to_param
  11. [id, name].compact.join("-").gsub("'", "").parameterize
  12. end
  13. def friendly_name
  14. name.to_s.sub(/\A[#\*]/, "").gsub(/\[.+\]/, "").strip
  15. end
  16. def editable?(user)
  17. !persisted? || (name.present? && name.first != "*" && name.first != "#") || user == creator
  18. end
  19. end
  20. end