Sha256: c6a718de496e06186aa46e8173064fd616e98f2c1fe571ab7fc7da2feade797e

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

# encoding: utf-8
# frozen_string_literal: true

module Doggy
  module Models
    class Dashboard < Doggy::Model
      self.root = 'dash'

      attribute :id,          Integer
      attribute :title,       String
      attribute :description, String

      attribute :graphs,             Array[Hash]
      attribute :template_variables, Array[Hash]
      attribute :read_only,          Boolean

      def prefix
        'dash'
      end

      def ensure_read_only!
        self.read_only = true
      end

      def refute_read_only!
        self.read_only = false
      end

      def self.resource_url(id = nil)
        ["https://app.datadoghq.com/api/v1/dash", id].compact.join("/")
      end

      def managed?
        !(title =~ Doggy::DOG_SKIP_REGEX)
      end

      def ensure_managed_emoji!
        return unless managed?
        return if title =~ /\xF0\x9F\x90\xB6/
        self.title += " \xF0\x9F\x90\xB6"
      end

      def human_url
        "https://#{Doggy.base_human_url}/dash/#{id}"
      end

      # Dashboards don't have a direct edit URL
      alias_method :human_edit_url, :human_url
    end # Dashboard
  end # Models
end # Doggy

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
doggy-2.1.1 lib/doggy/models/dashboard.rb