module Dis::Model::ClassMethods

Public Instance Methods

default_dis_attributes() click to toggle source

Returns the default attribute names.

# File lib/dis/model/class_methods.rb, line 53
def default_dis_attributes
  {
    content_hash: :content_hash,
    content_length: :content_length,
    content_type: :content_type,
    filename: :filename
  }
end
dis_attributes() click to toggle source

Returns the mapping of attribute names.

# File lib/dis/model/class_methods.rb, line 7
def dis_attributes
  default_dis_attributes.merge(@dis_attributes ||= {})
end
dis_attributes=(new_attributes) click to toggle source

Sets the current mapping of attribute names. Use this if you want to override the attributes and database columns that Dis will use.

class Document < ActiveRecord::Base
  include Dis::Model
  self.dis_attributes = { filename: :my_custom_filename }
end
# File lib/dis/model/class_methods.rb, line 18
def dis_attributes=(new_attributes)
  @dis_attributes = new_attributes
end
dis_type() click to toggle source

Returns the storage type name, which Dis will use for directory scoping. Defaults to the name of the database table.

class Document < ActiveRecord::Base; end
Document.dis_type # => "documents"
# File lib/dis/model/class_methods.rb, line 27
def dis_type
  @dis_type ||= table_name
end
dis_type=(new_type) click to toggle source

Sets the storage type name.

Take care not to set the same name for multiple models, this will cause data loss when a record is destroyed.

# File lib/dis/model/class_methods.rb, line 35
def dis_type=(new_type)
  @dis_type = new_type
end
validates_data_presence() click to toggle source

Adds a presence validation on the data attribute.

This is better than using ‘validates :data, presence: true`, since that would cause it to load the data from storage on each save.

class Document < ActiveRecord::Base
  include Dis::Model
  validates_data_presence
end
# File lib/dis/model/class_methods.rb, line 48
def validates_data_presence
  validates_with Dis::Validations::DataPresence
end