Sha256: 66f8e9ce957fce74050209393cf38b825353555de06531e5c2a823e15754be22
Contents?: true
Size: 1.21 KB
Versions: 8
Compression:
Stored size: 1.21 KB
Contents
module Pageflow module SocialShareLinksHelper include SocialShareHelper PROVIDER_URL_TEMPLATES = { email: 'mailto:?body=%{url}', facebook: 'http://www.facebook.com/sharer/sharer.php?u=%{url}', google: 'https://plus.google.com/share?url=%{url}', linked_in: 'https://www.linkedin.com/shareArticle?mini=true&url=%{url}', telegram: 'tg://msg?text=%{url}', twitter: 'http://twitter.com/home?status=%{url}', whats_app: 'WhatsApp://send?text=%{url}' }.freeze def social_share_link(provider, entry, &block) block ||= ->() {} page_share_link_url = social_share_link_url(provider, social_share_page_url(entry, 'permaId')) data_attributes = entry.share_url.present? ? {} : {share_page: page_share_link_url} link_to(social_share_link_url(provider, social_share_entry_url(entry)), target: '_blank', tabindex: '2', class: ['share', provider], data: data_attributes, &block) end private def social_share_link_url(provider, url) return nil if url.blank? encoded_url = ERB::Util.url_encode(url) PROVIDER_URL_TEMPLATES[provider] % {url: encoded_url} end end end
Version data entries
8 entries across 8 versions & 1 rubygems