lib/rails_admin/adapters/active_record/property.rb
# frozen_string_literal: true
module RailsAdmin
module Adapters
module ActiveRecord
class Property
attr_reader :property, :model
def initialize(property, model)
@property = property
@model = model
end
def name
property.name.to_sym
end
def pretty_name
property.name.to_s.tr('_', ' ').capitalize
end
def type
if serialized?
:serialized
else
property.type
end
end
def length
property.limit
end
def nullable?
property.null
end
def serial?
model.primary_key == property.name
end
def association?
false
end
def read_only?
model.readonly_attributes.include? property.name.to_s
end
private
def serialized?
model.type_for_attribute(property.name).instance_of?(::ActiveRecord::Type::Serialized)
end
end
end
end
end