share_buttons 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +73 -0
- data/Rakefile +23 -0
- data/app/assets/javascripts/share_buttons.coffee +39 -0
- data/app/assets/javascripts/share_buttons/copy.coffee +28 -0
- data/app/assets/javascripts/share_buttons/popup.coffee +12 -0
- data/app/assets/stylesheets/share_buttons/application.css +13 -0
- data/app/controllers/share_buttons/application_controller.rb +4 -0
- data/app/helpers/share_buttons/view_helper.rb +28 -0
- data/app/views/layouts/share_buttons/application.html.erb +14 -0
- data/app/views/share_buttons/_email.html.haml +3 -0
- data/app/views/share_buttons/_facebook.html.haml +3 -0
- data/app/views/share_buttons/_google_plus.html.haml +3 -0
- data/app/views/share_buttons/_link.html.haml +18 -0
- data/app/views/share_buttons/_pinterest.html.haml +3 -0
- data/app/views/share_buttons/_twitter.html.haml +3 -0
- data/config/routes.rb +2 -0
- data/lib/generators/share_buttons/install/install_generator.rb +30 -0
- data/lib/generators/share_buttons/install/templates/initializer.rb +4 -0
- data/lib/share_buttons.rb +32 -0
- data/lib/share_buttons/base.rb +38 -0
- data/lib/share_buttons/email.rb +12 -0
- data/lib/share_buttons/engine.rb +11 -0
- data/lib/share_buttons/facebook.rb +23 -0
- data/lib/share_buttons/google_plus.rb +13 -0
- data/lib/share_buttons/link.rb +17 -0
- data/lib/share_buttons/pinterest.rb +13 -0
- data/lib/share_buttons/twitter.rb +17 -0
- data/lib/share_buttons/version.rb +3 -0
- data/lib/tasks/share_buttons_tasks.rake +4 -0
- metadata +115 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f864646f16ecd65bceb81bea0a350d1ebb505740
|
4
|
+
data.tar.gz: 0ef06fa8322ab5eac269bb89cb8e6225101ee3dd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b14f4d2f4da73a1f41416a8f24cd9b3fd77fc250a6cc2b2ebebe41e78ed6c365f346dce81e456ac173d85d48408691365af49595f1a07b523f899672a57524b6
|
7
|
+
data.tar.gz: 0021d96cc21f75f98cee086db1214dc4cd3cf5b96116de2bd7e806f25cb1da45000167229a04818d1336bb7f5ca68908a7deabcb4e4b063e7aaa13763c61d971
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2014 Valentin Ballestrino
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
# Share Buttons
|
2
|
+
|
3
|
+
Small sharing buttons helpers lib.
|
4
|
+
|
5
|
+
**Note :** Templates markup is written with
|
6
|
+
[Twitter Bootstrap v3](http://getbootstrap.com/) in mind and the javascript for
|
7
|
+
the `link_share_button` helper uses Bootsrap's `collapse` plugin.
|
8
|
+
You can override the plugin's view markup for every helper and delete the
|
9
|
+
`[data-link-button]` attribute for the `link_share_button` helper to avoid
|
10
|
+
the associated javascript to run.
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
Add to your Gemfile and `bundle install` :
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
gem 'share_buttons', github: 'glyph-fr/share_buttons'
|
18
|
+
```
|
19
|
+
|
20
|
+
Use the included generator to generate the initializer file and the customizable views :
|
21
|
+
|
22
|
+
```bash
|
23
|
+
rails generate share_buttons:install
|
24
|
+
```
|
25
|
+
|
26
|
+
At last, include the javascript file in your `application.js` with :
|
27
|
+
|
28
|
+
```javascript
|
29
|
+
//= require share_buttons
|
30
|
+
```
|
31
|
+
|
32
|
+
## Configuration
|
33
|
+
|
34
|
+
For Facebook sharing, you need to add you Facebook APP_ID to the generated
|
35
|
+
initializer configuration file in `config/initializers/share_buttons.rb` :
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
ShareButtons.configure do |config|
|
39
|
+
# Configure your facebook App ID for sharing
|
40
|
+
config.facebook.app_id = ENV['FACEBOOK_KEY']
|
41
|
+
end
|
42
|
+
```
|
43
|
+
|
44
|
+
## Usage
|
45
|
+
|
46
|
+
In your views, use any of the included helpers :
|
47
|
+
|
48
|
+
```erb
|
49
|
+
<%= facebook_share_button(resource_path(resource), title: resource.title) %>
|
50
|
+
<%= twitter_share_button(resource_path(resource), title: resource.title) %>
|
51
|
+
<%= google_plus_share_button(resource_path(resource), title: resource.title) %>
|
52
|
+
<%= pinterest_share_button(resource_path(resource), title: resource.title, image_url: resource.image.url) %>
|
53
|
+
<%= email_share_button(resource_path(resource), title: resource.title) %>
|
54
|
+
<%= link_share_button(resource_path(resource), title: resource.title) %>
|
55
|
+
```
|
56
|
+
|
57
|
+
And customize the generated views to your needs in `app/views/share_buttons/_<provider>.html.haml`
|
58
|
+
|
59
|
+
### Facebook
|
60
|
+
|
61
|
+
Facebook's `redirect_uri` parameter will be set to `request.original_url` by
|
62
|
+
default but you can pass a custom URL as follow
|
63
|
+
|
64
|
+
```erb
|
65
|
+
<%= facebook_share_button(resource_path(resource), title: resource.title, redirect_uri: a_custom_url) %>
|
66
|
+
```
|
67
|
+
|
68
|
+
Useful if you want to handle when user cancelled dialog (e.g. close popup) or
|
69
|
+
successfully shared on his wall (e.g. track sharing hits)
|
70
|
+
|
71
|
+
## Licence
|
72
|
+
|
73
|
+
This project rocks and uses MIT-LICENSE.
|
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'ShareButtons'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
18
|
+
load 'rails/tasks/engine.rake'
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
Bundler::GemHelper.install_tasks
|
23
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#= require zeroclipboard
|
2
|
+
#= require_self
|
3
|
+
#= require share_buttons/popup
|
4
|
+
#= require share_buttons/copy
|
5
|
+
|
6
|
+
@ShareButtons =
|
7
|
+
_plugins: {}
|
8
|
+
|
9
|
+
# Custom page ready handler allowing to automatically handle apps with or
|
10
|
+
# without Turbolinks
|
11
|
+
onPageReady: (callback) ->
|
12
|
+
$(document).ready(-> callback() unless window.Turbolinks)
|
13
|
+
$(document).on('page:change', callback);
|
14
|
+
|
15
|
+
register: (type, plugin) ->
|
16
|
+
ShareButtons._plugins[type] = plugin
|
17
|
+
|
18
|
+
initializePlugins: ($container) ->
|
19
|
+
for type, plugin of ShareButtons._plugins
|
20
|
+
$container.find("[data-share='#{ type }']").each (i, el) ->
|
21
|
+
$button = $(el)
|
22
|
+
# Avoid double initialization
|
23
|
+
return if $button.data('share-button')
|
24
|
+
# Initialize plugin and cache it
|
25
|
+
button = new plugin($button)
|
26
|
+
$button.data('share-button', button)
|
27
|
+
|
28
|
+
# Expose jQuery plugin to initialize share buttons inside a given container
|
29
|
+
#
|
30
|
+
# Usage: $('body').ShareButtons()
|
31
|
+
#
|
32
|
+
$.fn.shareButtons = ->
|
33
|
+
@each (i, el) -> ShareButtons.initializePlugins($(el))
|
34
|
+
|
35
|
+
# Auto initialize plugins on page ready
|
36
|
+
#
|
37
|
+
ShareButtons.onPageReady ->
|
38
|
+
$('body').shareButtons()
|
39
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class ShareButtons.CopyButton
|
2
|
+
constructor: (@$button) ->
|
3
|
+
@clipboard = new ZeroClipboard(@$button[0])
|
4
|
+
@clipboard.on('load', => @_initializeClipboardHandlers())
|
5
|
+
@$modal = $(@$button.data('target'))
|
6
|
+
@$button.on('click', => @_buttonClicked())
|
7
|
+
|
8
|
+
_initializeClipboardHandlers: ->
|
9
|
+
@clipboard.on('complete', => @_linkCopied())
|
10
|
+
|
11
|
+
_buttonClicked: ->
|
12
|
+
if @$modal.hasClass('in') then @_openModal() else @_closeModal()
|
13
|
+
|
14
|
+
_closeModal: ->
|
15
|
+
@$modal.modal('hide')
|
16
|
+
|
17
|
+
_openModal: ->
|
18
|
+
@$modal.modal('show')
|
19
|
+
|
20
|
+
_linkCopied: ->
|
21
|
+
@$modal.find('.copy-alert-text').hide(0)
|
22
|
+
|
23
|
+
@$modal.one 'shown.bs.modal', =>
|
24
|
+
@$modal.find('.copied-alert-text').collapse('show')
|
25
|
+
|
26
|
+
@_openModal()
|
27
|
+
|
28
|
+
ShareButtons.register('copy', ShareButtons.CopyButton)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class ShareButtons.PopupButton
|
2
|
+
constructor: (@$el) ->
|
3
|
+
@$el.on('click', (e) => @_buttonClicked(e))
|
4
|
+
|
5
|
+
_buttonClicked: (e) ->
|
6
|
+
e.preventDefault()
|
7
|
+
window.open(@$el.attr('href'), 'share-popup', @_popupOptions())
|
8
|
+
|
9
|
+
_popupOptions: ->
|
10
|
+
'menubar=no, scrollbars=no, top=0, left=0, width=700, height=300'
|
11
|
+
|
12
|
+
ShareButtons.register('popup', ShareButtons.PopupButton)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require_self
|
12
|
+
*= require_tree .
|
13
|
+
*/
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module ShareButtons
|
2
|
+
module ViewHelper
|
3
|
+
ShareButtons::HELPER_NAMES.each do |medium|
|
4
|
+
define_method(:"#{ medium }_share_button") do |*args|
|
5
|
+
url, options = extract_url_and_options(*args)
|
6
|
+
|
7
|
+
handler_class = ShareButtons.const_get(medium.camelize)
|
8
|
+
button = handler_class.new(request, url, options)
|
9
|
+
|
10
|
+
render partial: "share_buttons/#{ medium }", locals: { button: button }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def extract_url_and_options url = nil, options = nil
|
17
|
+
unless options
|
18
|
+
if url.kind_of?(Hash)
|
19
|
+
options = url
|
20
|
+
url = nil
|
21
|
+
else
|
22
|
+
options = {}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
[url, options]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>ShareButtons</title>
|
5
|
+
<%= stylesheet_link_tag "share_buttons/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "share_buttons/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
%button.btn.btn-default{ type: 'button', data: { share: 'copy', target: "##{ button.dom_id }", :"clipboard-text" => button.url, :title => button.label } }
|
2
|
+
%i.fa.fa-link
|
3
|
+
= button.label
|
4
|
+
|
5
|
+
.link-button-alert.collapse{ id: button.dom_id }
|
6
|
+
= text_area_tag :share_link, button.url, readonly: 'readonly', class: 'form-control'
|
7
|
+
%p.help-text.copy-alert-text.collapse.in
|
8
|
+
Sélectionnez l'adresse URL ci-dessus et copiez là
|
9
|
+
%p.help-text.copied-alert-text.collapse
|
10
|
+
Le lien ci-dessus a bien été copié dans votre presse-papier !
|
11
|
+
= link_to "##{ button.dom_id }", data: { toggle: 'collapse' } do
|
12
|
+
%u
|
13
|
+
×
|
14
|
+
Masquer
|
15
|
+
|
16
|
+
.clearfix
|
17
|
+
|
18
|
+
|
data/config/routes.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module ShareButtons
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
|
7
|
+
desc "Share Buttons install generator"
|
8
|
+
|
9
|
+
def welcome
|
10
|
+
say "Installing Share Buttons ..."
|
11
|
+
end
|
12
|
+
|
13
|
+
def copy_initializer_file
|
14
|
+
say "Installing default initializer template"
|
15
|
+
copy_file "initializer.rb", "config/initializers/share_buttons.rb"
|
16
|
+
end
|
17
|
+
|
18
|
+
def copy_views
|
19
|
+
folder = %w(app views share_buttons)
|
20
|
+
|
21
|
+
source = File.join('..', '..', '..', '..', '..', *folder)
|
22
|
+
source_dir = File.expand_path(source, __FILE__)
|
23
|
+
dest_dir = Rails.root.join(*folder)
|
24
|
+
|
25
|
+
print "Copying share buttons views to #{ dest_dir } ... "
|
26
|
+
FileUtils.cp_r(source_dir, dest_dir)
|
27
|
+
puts 'done !'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'zeroclipboard-rails'
|
2
|
+
require "share_buttons/engine"
|
3
|
+
require 'active_support/dependencies/autoload'
|
4
|
+
|
5
|
+
module ShareButtons
|
6
|
+
extend ActiveSupport::Autoload
|
7
|
+
|
8
|
+
autoload :Base, 'share_buttons/base'
|
9
|
+
autoload :Facebook, 'share_buttons/facebook'
|
10
|
+
autoload :Twitter, 'share_buttons/twitter'
|
11
|
+
autoload :GooglePlus, 'share_buttons/google_plus'
|
12
|
+
autoload :Email, 'share_buttons/email'
|
13
|
+
autoload :Link, 'share_buttons/link'
|
14
|
+
autoload :Pinterest, 'share_buttons/pinterest'
|
15
|
+
|
16
|
+
HELPER_NAMES = %w(facebook twitter google_plus pinterest email link)
|
17
|
+
|
18
|
+
def self.configure(&block)
|
19
|
+
configuration = ShareButtons::Configuration.new
|
20
|
+
block_given? ? yield(configuration) : configuration
|
21
|
+
end
|
22
|
+
|
23
|
+
class Configuration
|
24
|
+
# Allow users to configure each provider class attributes by accessing
|
25
|
+
# `config.provider_name.attribute`
|
26
|
+
HELPER_NAMES.each do |helper|
|
27
|
+
define_method(helper) do
|
28
|
+
ShareButtons.const_get(helper.camelize)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module ShareButtons
|
2
|
+
class Base
|
3
|
+
attr_accessor :request, :url, :options
|
4
|
+
|
5
|
+
def initialize(request, url, options)
|
6
|
+
@request = request
|
7
|
+
@url = url || request.original_url
|
8
|
+
@options = options
|
9
|
+
end
|
10
|
+
|
11
|
+
def href
|
12
|
+
[share_url, url_options.to_param].join('?')
|
13
|
+
end
|
14
|
+
|
15
|
+
def label
|
16
|
+
options.fetch(:label, "Partager sur #{ medium_name }")
|
17
|
+
end
|
18
|
+
|
19
|
+
def medium_name
|
20
|
+
self.class.name.demodulize.underscore.humanize
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def share_url
|
26
|
+
raise 'Implement #share_url in subsclass'
|
27
|
+
end
|
28
|
+
|
29
|
+
def url_options
|
30
|
+
{}
|
31
|
+
end
|
32
|
+
|
33
|
+
# More explicit shortcut to access class attributes
|
34
|
+
def config
|
35
|
+
self.class
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ShareButtons
|
2
|
+
class Facebook < ShareButtons::Base
|
3
|
+
cattr_accessor :app_id
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
def share_url
|
8
|
+
"https://www.facebook.com/dialog/share"
|
9
|
+
end
|
10
|
+
|
11
|
+
def url_options
|
12
|
+
{
|
13
|
+
display: 'popup', redirect_uri: redirect_uri,
|
14
|
+
app_id: config.app_id, href: url
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
def redirect_uri
|
19
|
+
options[:redirect_uri] || request.original_url
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: share_buttons
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Valentin Ballestrino
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-05-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: zeroclipboard-rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.0.13
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.13
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sqlite3
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Simple social share buttons helpers for Rails.
|
56
|
+
email:
|
57
|
+
- vala@glyph.fr
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- MIT-LICENSE
|
63
|
+
- README.md
|
64
|
+
- Rakefile
|
65
|
+
- app/assets/javascripts/share_buttons.coffee
|
66
|
+
- app/assets/javascripts/share_buttons/copy.coffee
|
67
|
+
- app/assets/javascripts/share_buttons/popup.coffee
|
68
|
+
- app/assets/stylesheets/share_buttons/application.css
|
69
|
+
- app/controllers/share_buttons/application_controller.rb
|
70
|
+
- app/helpers/share_buttons/view_helper.rb
|
71
|
+
- app/views/layouts/share_buttons/application.html.erb
|
72
|
+
- app/views/share_buttons/_email.html.haml
|
73
|
+
- app/views/share_buttons/_facebook.html.haml
|
74
|
+
- app/views/share_buttons/_google_plus.html.haml
|
75
|
+
- app/views/share_buttons/_link.html.haml
|
76
|
+
- app/views/share_buttons/_pinterest.html.haml
|
77
|
+
- app/views/share_buttons/_twitter.html.haml
|
78
|
+
- config/routes.rb
|
79
|
+
- lib/generators/share_buttons/install/install_generator.rb
|
80
|
+
- lib/generators/share_buttons/install/templates/initializer.rb
|
81
|
+
- lib/share_buttons.rb
|
82
|
+
- lib/share_buttons/base.rb
|
83
|
+
- lib/share_buttons/email.rb
|
84
|
+
- lib/share_buttons/engine.rb
|
85
|
+
- lib/share_buttons/facebook.rb
|
86
|
+
- lib/share_buttons/google_plus.rb
|
87
|
+
- lib/share_buttons/link.rb
|
88
|
+
- lib/share_buttons/pinterest.rb
|
89
|
+
- lib/share_buttons/twitter.rb
|
90
|
+
- lib/share_buttons/version.rb
|
91
|
+
- lib/tasks/share_buttons_tasks.rake
|
92
|
+
homepage: http://www.glyph.fr
|
93
|
+
licenses: []
|
94
|
+
metadata: {}
|
95
|
+
post_install_message:
|
96
|
+
rdoc_options: []
|
97
|
+
require_paths:
|
98
|
+
- lib
|
99
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
109
|
+
requirements: []
|
110
|
+
rubyforge_project:
|
111
|
+
rubygems_version: 2.4.4
|
112
|
+
signing_key:
|
113
|
+
specification_version: 4
|
114
|
+
summary: Simple social share buttons helpers for Rails.
|
115
|
+
test_files: []
|