lib/pupa/models/concerns/linkable.rb
module Pupa
module Concerns
# Adds the Popolo `links` property to a model.
module Linkable
extend ActiveSupport::Concern
included do
attr_reader :links
dump :links
end
def initialize(*args)
@links = []
super
end
# Sets the links.
#
# @param [Array] links a list of links
def links=(links)
@links = symbolize_keys(links)
end
# Adds a URL.
#
# @param [String] url a URL
# @param [String] note a note, e.g. "Wikipedia page"
def add_link(url, note: nil)
data = {url: url}
if note
data[:note] = note
end
if url.present?
@links << data
end
end
end
end
end