Sha256: a591206a7dad9c1bf9687c6ff3a9e1dd50f8b16001bbb1f13b7dc1dd13ec787b

Contents?: true

Size: 1.21 KB

Versions: 11

Compression:

Stored size: 1.21 KB

Contents

class Dhatu::MetaTag < Dhatu::ApplicationRecord

  # Constants
  META_TYPES = ["Default", "Open Graph", "Twitter", "Facebook", "Other"]

  # Set Table Name
  self.table_name = "meta_tags"

  # Including the State Machine Methods
  include Publishable

  # Validations
  validates :meta_type, presence: true, length: {minimum: 3, maximum: 16}, allow_blank: false
  validates :meta_key, presence: true, length: {minimum: 1, maximum: 128}, allow_blank: false
  validates :meta_value, presence: true, length: {minimum: 1, maximum: 1064}, allow_blank: false
  
  # Associations
  belongs_to :meta_taggable, :polymorphic => true

  # ------------------
  # Class Methods
  # ------------------

  scope :search, lambda { |query| where("LOWER(meta_type) LIKE LOWER('%#{query}%') OR LOWER(meta_key) LIKE LOWER('%#{query}%') OR LOWER(meta_value) LIKE LOWER('%#{query}%')") }

  # ------------------
  # Instance Methods
  # ------------------

  # Generic Methods
  # ---------------

  def display_name
    "#{self.meta_type_was} - #{self.meta_key_was}"
  end

  # Permission Methods
  # ------------------

  def can_be_edited?
    status?(:published) or status?(:unpublished)
  end

  def can_be_deleted?
    status?(:removed)
  end
  
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
dhatu-0.3.0.pre.materialize app/models/dhatu/meta_tag.rb
dhatu-0.2.3 app/models/dhatu/meta_tag.rb
dhatu-0.2.2 app/models/dhatu/meta_tag.rb
dhatu-0.2.1 app/models/dhatu/meta_tag.rb
dhatu-0.2.0 app/models/dhatu/meta_tag.rb
dhatu-0.1.25 app/models/dhatu/meta_tag.rb
dhatu-0.1.24 app/models/dhatu/meta_tag.rb
dhatu-0.1.23 app/models/dhatu/meta_tag.rb
dhatu-0.1.22 app/models/dhatu/meta_tag.rb
dhatu-0.1.21 app/models/dhatu/meta_tag.rb
dhatu-0.1.20 app/models/dhatu/meta_tag.rb