Files
once-campfire/app/models/opengraph/metadata.rb
Kevin McConnell df76a227dc Hello world
First open source release of Campfire 🎉
2025-08-21 09:31:59 +01:00

28 lines
686 B
Ruby

class Opengraph::Metadata
include ActiveModel::Model
include ActiveModel::Validations::Callbacks
include ActionView::Helpers::SanitizeHelper
include Fetching
ATTRIBUTES = %i[ title url image description ]
attr_accessor *ATTRIBUTES
before_validation :sanitize_fields
validates_presence_of :title, :url, :description
validate :ensure_valid_image_url
private
def sanitize_fields
self.title = sanitize(strip_tags(title))
self.description = sanitize(strip_tags(description))
end
def ensure_valid_image_url
if image.present?
errors.add :image, "url is invalid" unless Opengraph::Location.new(image).valid?
end
end
end