facebook_share 0.0.3 → 0.0.4
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.
- data/.gitignore +1 -0
- data/Gemfile.lock +1 -1
- data/README.md +20 -1
- data/lib/facebook_share.rb +8 -1
- data/lib/facebook_share/version.rb +1 -1
- data/spec/facebook_share/facebook_share_spec.rb +23 -0
- metadata +4 -4
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -38,7 +38,7 @@ Default facebook Share options can be changed with the above code snippet
|
|
38
38
|
|
39
39
|
* *appid* - your Facebook application ID that will connect your site to Facebook
|
40
40
|
* *status*. *cookie* and *xfbml* - as described at [FB.init JS SDK](http://developers.facebook.com/docs/reference/javascript/fb.init/)
|
41
|
-
* *locale* - Facebook locale code representations, ie. en_US, de_DE, pl_PL, etc. The full list of Facebook supported languages is available in http://www.facebook.com/translations/FacebookLocales.xml or at [Facebook Developer Wiki](http://fbdevwiki.com/wiki/Locales)
|
41
|
+
* *locale* - Facebook locale code representations, ie. en_US, de_DE, pl_PL, etc. The full list of Facebook supported languages is available in http://www.facebook.com/translations/FacebookLocales.xml or at [Facebook Developer Wiki](http://fbdevwiki.com/wiki/Locales). If your locale has both parts of the string the same, for example "de_DE", "pl_PL", since version 0.0.4 you can put just "de" or "pl", etc. The script **does not** check for validity of given locale.
|
42
42
|
* *selector* - a selector to target Facebook share binding, ".fb_share" by default
|
43
43
|
* any other parameter will be passed to Facebook's **[FB.ui](http://developers.facebook.com/docs/reference/javascript/fb.ui/)** function, so you can use whichever parameters you need, except for *method*, which defaults always to *publish.stream*
|
44
44
|
|
@@ -51,6 +51,25 @@ The simplest usage (given you specified your project's Facebook Application ID)
|
|
51
51
|
|
52
52
|
That will produce a link "Share on Facebook" with a class of "fb_share" and a corresponding JavaScript script tags initializing Facebook app and sharing method bind to click on that link. By default gem passes ".fb_share" selector to jQuery.
|
53
53
|
|
54
|
+
## Changelog
|
55
|
+
|
56
|
+
v0.0.4
|
57
|
+
|
58
|
+
* Locale guessing, if necessary
|
59
|
+
|
60
|
+
v0.0.3
|
61
|
+
|
62
|
+
* Added basic tests
|
63
|
+
|
64
|
+
v0.0.2
|
65
|
+
|
66
|
+
* Added global settings
|
67
|
+
* Replaced *url* param with *link* to be consistent with Facebook API
|
68
|
+
|
69
|
+
v0.0.1
|
70
|
+
|
71
|
+
* First public release
|
72
|
+
|
54
73
|
## Note on patches/pull requests
|
55
74
|
|
56
75
|
* Fork the project.
|
data/lib/facebook_share.rb
CHANGED
@@ -7,10 +7,16 @@ module FacebookShare
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def default_facebook_share_options
|
10
|
+
# usually you might want to provide your own link anyway
|
11
|
+
if defined? request
|
12
|
+
link = request.url
|
13
|
+
else
|
14
|
+
link = "http://railslove.com"
|
15
|
+
end
|
10
16
|
{
|
11
17
|
:app_id => "0",
|
12
18
|
:selector => ".fb_share",
|
13
|
-
:link =>
|
19
|
+
:link => link,
|
14
20
|
:locale => "en_US",
|
15
21
|
:display => "popup"
|
16
22
|
}.merge(FacebookShare.default_facebook_share_options || {})
|
@@ -47,6 +53,7 @@ JS
|
|
47
53
|
|
48
54
|
def facebook_connect_js_tag(options = {})
|
49
55
|
options = default_facebook_share_options.merge(options)
|
56
|
+
options[:locale] = "#{options[:locale]}_#{options[:locale].upcase}" if /^[a-z]{2}$/.match(options[:locale])
|
50
57
|
html_safe_string("<script type=\"text/javascript\" src=\"https://connect.facebook.net/#{options[:locale]}/all.js\"></script>")
|
51
58
|
end
|
52
59
|
|
@@ -46,4 +46,27 @@ describe FacebookShare do
|
|
46
46
|
it { should_not match(/selector: "/) }
|
47
47
|
end
|
48
48
|
end
|
49
|
+
|
50
|
+
describe "creating init script" do
|
51
|
+
context "when vanilla locale" do
|
52
|
+
subject { facebook_connect_js_tag( :locale => "en_US" ) }
|
53
|
+
|
54
|
+
it { should match(/\/en_US\/all\.js/) }
|
55
|
+
it { should_not match(/\/en\/all\.js/) }
|
56
|
+
end
|
57
|
+
|
58
|
+
context "when shortened locale" do
|
59
|
+
subject { facebook_connect_js_tag( :locale => "en" ) }
|
60
|
+
|
61
|
+
it { should match(/\/en_EN\/all\.js/) }
|
62
|
+
it { should_not match(/\/en\/all\.js/) }
|
63
|
+
end
|
64
|
+
|
65
|
+
context "when shortened locale 2" do
|
66
|
+
subject { facebook_connect_js_tag( :locale => "pl" ) }
|
67
|
+
|
68
|
+
it { should match(/\/pl_PL\/all\.js/) }
|
69
|
+
it { should_not match(/\/pl\/all\.js/) }
|
70
|
+
end
|
71
|
+
end
|
49
72
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facebook_share
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Mike Po\xC5\x82tyn"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-02-
|
18
|
+
date: 2011-02-17 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|