An in-between solution for you might be:
def initialize(site:, name:, **options)
@site = site
@name = name
@date_online = options[:date_online] || '-'
@date_offline = options[:date_offline] || '-'
@date_modified = options[:date_modified] || '-'
@date_tagged = options[:date_tagged] || '-'
@tags = options[:tags] || []
end
You would probably want to raise an error if an unexpected key was passed in as part of options.