diff options
author | Jenkins <jenkins@jenkins.ninjawedding.org> | 2017-11-30 03:17:12 +0000 |
---|---|---|
committer | Jenkins <jenkins@jenkins.ninjawedding.org> | 2017-11-30 03:17:12 +0000 |
commit | ad46bc9772dfc52c7ed522658eda1a3ef608a7b3 (patch) | |
tree | 12be46cac80eadcddc3ab122f1bda36d9c67a07c /app/helpers | |
parent | d020ed1e05278a4b3e5d1ed60ee03e511bb513e3 (diff) | |
parent | 4c6b5dbe96b565d3db3cbf0912f3b9911bc3922a (diff) |
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/jsonld_helper.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/helpers/jsonld_helper.rb b/app/helpers/jsonld_helper.rb index a3441e6f9..6c7c38070 100644 --- a/app/helpers/jsonld_helper.rb +++ b/app/helpers/jsonld_helper.rb @@ -9,6 +9,24 @@ module JsonLdHelper value.is_a?(Array) ? value.first : value end + # The url attribute can be a string, an array of strings, or an array of objects. + # The objects could include a mimeType. Not-included mimeType means it's text/html. + def url_to_href(value, preferred_type = nil) + single_value = if value.is_a?(Array) && !value.first.is_a?(String) + value.find { |link| preferred_type.nil? || ((link['mimeType'].presence || 'text/html') == preferred_type) } + elsif value.is_a?(Array) + value.first + else + value + end + + if single_value.nil? || single_value.is_a?(String) + single_value + else + single_value['href'] + end + end + def as_array(value) value.is_a?(Array) ? value : [value] end |