share_buttons 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|