Sha256: 453954ca143068d2a362739c35d062f7c35f7f4102cd168b4aaee76281d96ca7

Contents?: true

Size: 1009 Bytes

Versions: 5

Compression:

Stored size: 1009 Bytes

Contents

class BigbluebuttonPlaybackType < ActiveRecord::Base
  include ActiveModel::ForbiddenAttributesProtection

  validates :identifier, :presence => true

  has_many :playback_formats,
           :class_name => 'BigbluebuttonPlaybackFormat',
           :foreign_key => 'playback_type_id',
           :dependent => :nullify

  # Ensure there will be 0 or 1 (no more) records with default=true.
  # Setting a record with default=true will automatically set all others to default=false.
  before_save :ensure_default_uniqueness
  def ensure_default_uniqueness
    if default_changed? && default?
      self.class.where('id != ?', self.id).update_all(default: false)
    end
  end

  def name
    default = self.identifier.gsub("_", " ").titleize
    I18n.t("bigbluebutton_rails.playback_types.#{self.identifier}.name", default: default)
  end

  def description
    default = self.identifier.gsub("_", " ").titleize
    I18n.t("bigbluebutton_rails.playback_types.#{self.identifier}.tip", default: default)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bigbluebutton_rails-3.0.0 app/models/bigbluebutton_playback_type.rb
bigbluebutton_rails-2.3.0 app/models/bigbluebutton_playback_type.rb
bigbluebutton_rails-2.2.0 app/models/bigbluebutton_playback_type.rb
bigbluebutton_rails-2.1.0 app/models/bigbluebutton_playback_type.rb
bigbluebutton_rails-2.0.0 app/models/bigbluebutton_playback_type.rb