fb-localizer 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ pkg/
2
+ pkg/*
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fb-localizer (0.1.1)
4
+ fb-localizer (0.1.2)
5
5
  i18n
6
6
  libxml-ruby (= 1.1.3)
7
7
  rails
@@ -1,5 +1,5 @@
1
1
  module Fb
2
2
  module Localizer
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
data/lib/fb-localizer.rb CHANGED
@@ -2,17 +2,34 @@ require 'fb-localizer/railtie' if defined? Rails
2
2
  require 'i18n'
3
3
 
4
4
  module FbLocalizer
5
+ DEFAULT_PRIORITIES = { :en => "en_US", :es => "es_ES", :pt => "pt_PT", :zh => "zh_CN" }
6
+ mattr_accessor :priorized
7
+
5
8
  module FbLocalizerHelpers
6
9
  def get_fb_locale(ruby_locale = nil)
10
+ ruby_locale = ruby_locale.to_sym if ruby_locale.is_a? String
7
11
  ruby_locale ||= I18n.locale
8
12
  fb_candidate_locales = FbLocalizer::FbLocalizerHelpers::FB_LOCALES.select{ |l| l.match(/^#{ruby_locale}/)}
9
13
  if fb_candidate_locales.any?
10
- fb_candidate_locales[0]
14
+ priorized = FbLocalizer.priorized[ruby_locale] # get priorized locale for that one
15
+ if priorized && fb_candidate_locales.include?(priorized) # if available, get that one
16
+ priorized
17
+ else # if not, just get the first available
18
+ fb_candidate_locales[0]
19
+ end
11
20
  else
12
- "en_US"
21
+ "en_US" # US english by default
13
22
  end
14
23
  end
15
24
  end
25
+
26
+ def self.configure
27
+ yield self
28
+ end
29
+
30
+ def self.priorized
31
+ DEFAULT_PRIORITIES.merge(@@priorized)
32
+ end
16
33
  end
17
34
 
18
35
  ActionView::Base.send(:include, FbLocalizer::FbLocalizerHelpers)
@@ -10,11 +10,16 @@ describe FbLocalizer::FbLocalizerHelpers do
10
10
  end
11
11
 
12
12
  context "when we check for english" do
13
- it "should return en_PI" do
14
- helper.get_fb_locale("en").should == "en_PI"
13
+ it "should return en_GB" do
14
+ helper.get_fb_locale("en").should == "en_GB"
15
15
  end
16
16
  end
17
17
 
18
+ context "when we check for chinese" do
19
+ it "should return zh_CN" do
20
+ helper.get_fb_locale("zh").should == "zh_CN" # simplified Chinese
21
+ end
22
+ end
18
23
 
19
24
  # Invalid checks
20
25
  context "when we check for spanish" do
@@ -28,4 +33,29 @@ describe FbLocalizer::FbLocalizerHelpers do
28
33
  helper.get_fb_locale("cy").should_not == "ca_ES"
29
34
  end
30
35
  end
36
+
37
+ # Set some priorizations
38
+ context "when we check for english" do
39
+ it "should not return en_GB" do
40
+ FbLocalizer.priorized = { :en => "en_US" }
41
+ helper.get_fb_locale("en").should_not == "en_GB"
42
+ end
43
+
44
+ it "should return en_US" do
45
+ FbLocalizer.priorized = { :en => "en_US" }
46
+ helper.get_fb_locale("en").should == "en_US"
47
+ end
48
+ end
49
+
50
+ context "when we check for chinese" do
51
+ it "should not return zh_CN" do
52
+ FbLocalizer.priorized = { :zh => "zh_HK" } # switch Hong Kong's chinese
53
+ helper.get_fb_locale("zh").should_not == "zh_CN"
54
+ end
55
+
56
+ it "should return zh_HK" do
57
+ FbLocalizer.priorized = { :zh => "zh_HK" } # switch Hong Kong's chinese
58
+ helper.get_fb_locale("zh").should == "zh_HK"
59
+ end
60
+ end
31
61
  end
data/testapp/Gemfile CHANGED
@@ -3,30 +3,6 @@ source 'http://rubygems.org'
3
3
  gem 'rails', '3.0.5'
4
4
  gem 'fb-localizer', :path => ".."
5
5
 
6
- # Bundle edge Rails instead:
7
- # gem 'rails', :git => 'git://github.com/rails/rails.git'
6
+ gem 'haml-rails'
8
7
 
9
8
  gem 'sqlite3'
10
-
11
- # Use unicorn as the web server
12
- # gem 'unicorn'
13
-
14
- # Deploy with Capistrano
15
- # gem 'capistrano'
16
-
17
- # To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
18
- # gem 'ruby-debug'
19
- # gem 'ruby-debug19', :require => 'ruby-debug'
20
-
21
- # Bundle the extra gems:
22
- # gem 'bj'
23
- # gem 'nokogiri'
24
- # gem 'sqlite3-ruby', :require => 'sqlite3'
25
- # gem 'aws-s3', :require => 'aws/s3'
26
-
27
- # Bundle gems for the local environment. Make sure to
28
- # put test-only gems in this group so their generators
29
- # and rake tasks are available in development mode:
30
- # group :development, :test do
31
- # gem 'webrat'
32
- # end
data/testapp/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- fb-localizer (0.1.0)
4
+ fb-localizer (0.1.2)
5
5
  i18n
6
- libxml-ruby
6
+ libxml-ruby (= 1.1.3)
7
7
  rails
8
8
 
9
9
  GEM
@@ -40,8 +40,14 @@ GEM
40
40
  builder (2.1.2)
41
41
  erubis (2.6.6)
42
42
  abstract (>= 1.0.0)
43
+ haml (3.1.1)
44
+ haml-rails (0.3.4)
45
+ actionpack (~> 3.0)
46
+ activesupport (~> 3.0)
47
+ haml (~> 3.0)
48
+ railties (~> 3.0)
43
49
  i18n (0.5.0)
44
- libxml-ruby (1.1.4)
50
+ libxml-ruby (1.1.3)
45
51
  mail (2.2.15)
46
52
  activesupport (>= 2.3.6)
47
53
  i18n (>= 0.4.0)
@@ -79,5 +85,6 @@ PLATFORMS
79
85
 
80
86
  DEPENDENCIES
81
87
  fb-localizer!
88
+ haml-rails
82
89
  rails (= 3.0.5)
83
90
  sqlite3
@@ -0,0 +1,15 @@
1
+ class StaticController < ApplicationController
2
+ NAMES = {
3
+ :en => "UK English", # default is US, but we priorize en_GB in app/initializers/fb-localizer.rb
4
+ :es => "Spain's Spanish",
5
+ :it => "Italian",
6
+ :ca => "Catalan",
7
+ :pt => "Portugal's Portuguese",
8
+ :tl => "Klingon"
9
+ }
10
+
11
+ def index
12
+ @locale = params[:locale] ? params[:locale].to_sym : I18n.locale
13
+ @names = NAMES
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ - @names.each do |k,v|
2
+ = link_to v, root_path(:locale => k)
3
+ %hr
4
+ %h2= @names[@locale]
5
+ %script{:src => "http://connect.facebook.net/#{get_fb_locale(@locale)}/all.js#xfbml=1"}
6
+ %fb:like{:href => request.url, :layout => "button_count", :show_faces => "true"}
@@ -0,0 +1,3 @@
1
+ FbLocalizer.configure do |config|
2
+ config.priorized = { :en => "en_GB" }
3
+ end
@@ -1,58 +1,3 @@
1
1
  Testapp::Application.routes.draw do
2
- # The priority is based upon order of creation:
3
- # first created -> highest priority.
4
-
5
- # Sample of regular route:
6
- # match 'products/:id' => 'catalog#view'
7
- # Keep in mind you can assign values other than :controller and :action
8
-
9
- # Sample of named route:
10
- # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
11
- # This route can be invoked with purchase_url(:id => product.id)
12
-
13
- # Sample resource route (maps HTTP verbs to controller actions automatically):
14
- # resources :products
15
-
16
- # Sample resource route with options:
17
- # resources :products do
18
- # member do
19
- # get 'short'
20
- # post 'toggle'
21
- # end
22
- #
23
- # collection do
24
- # get 'sold'
25
- # end
26
- # end
27
-
28
- # Sample resource route with sub-resources:
29
- # resources :products do
30
- # resources :comments, :sales
31
- # resource :seller
32
- # end
33
-
34
- # Sample resource route with more complex sub-resources
35
- # resources :products do
36
- # resources :comments
37
- # resources :sales do
38
- # get 'recent', :on => :collection
39
- # end
40
- # end
41
-
42
- # Sample resource route within a namespace:
43
- # namespace :admin do
44
- # # Directs /admin/products/* to Admin::ProductsController
45
- # # (app/controllers/admin/products_controller.rb)
46
- # resources :products
47
- # end
48
-
49
- # You can have the root of your site routed with "root"
50
- # just remember to delete public/index.html.
51
- # root :to => "welcome#index"
52
-
53
- # See how all your routes lay out with "rake routes"
54
-
55
- # This is a legacy wild controller route that's not recommended for RESTful applications.
56
- # Note: This route will make all actions in every controller accessible via GET requests.
57
- # match ':controller(/:action(/:id(.:format)))'
2
+ root :to => "static#index"
58
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fb-localizer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
9
+ - 3
10
+ version: 0.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Albert Bellonch
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-26 00:00:00 +02:00
18
+ date: 2011-05-13 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -89,6 +89,7 @@ extensions: []
89
89
  extra_rdoc_files: []
90
90
 
91
91
  files:
92
+ - .gitignore
92
93
  - Gemfile
93
94
  - Gemfile.lock
94
95
  - README.md
@@ -107,8 +108,10 @@ files:
107
108
  - testapp/README
108
109
  - testapp/Rakefile
109
110
  - testapp/app/controllers/application_controller.rb
111
+ - testapp/app/controllers/static_controller.rb
110
112
  - testapp/app/helpers/application_helper.rb
111
113
  - testapp/app/views/layouts/application.html.erb
114
+ - testapp/app/views/static/index.html.haml
112
115
  - testapp/config.ru
113
116
  - testapp/config/application.rb
114
117
  - testapp/config/boot.rb
@@ -118,6 +121,7 @@ files:
118
121
  - testapp/config/environments/production.rb
119
122
  - testapp/config/environments/test.rb
120
123
  - testapp/config/initializers/backtrace_silencers.rb
124
+ - testapp/config/initializers/fb-localizer.rb
121
125
  - testapp/config/initializers/inflections.rb
122
126
  - testapp/config/initializers/mime_types.rb
123
127
  - testapp/config/initializers/secret_token.rb
@@ -132,7 +136,6 @@ files:
132
136
  - testapp/public/500.html
133
137
  - testapp/public/favicon.ico
134
138
  - testapp/public/images/rails.png
135
- - testapp/public/index.html
136
139
  - testapp/public/javascripts/application.js
137
140
  - testapp/public/javascripts/controls.js
138
141
  - testapp/public/javascripts/dragdrop.js
@@ -1,239 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Ruby on Rails: Welcome aboard</title>
5
- <style type="text/css" media="screen">
6
- body {
7
- margin: 0;
8
- margin-bottom: 25px;
9
- padding: 0;
10
- background-color: #f0f0f0;
11
- font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
12
- font-size: 13px;
13
- color: #333;
14
- }
15
-
16
- h1 {
17
- font-size: 28px;
18
- color: #000;
19
- }
20
-
21
- a {color: #03c}
22
- a:hover {
23
- background-color: #03c;
24
- color: white;
25
- text-decoration: none;
26
- }
27
-
28
-
29
- #page {
30
- background-color: #f0f0f0;
31
- width: 750px;
32
- margin: 0;
33
- margin-left: auto;
34
- margin-right: auto;
35
- }
36
-
37
- #content {
38
- float: left;
39
- background-color: white;
40
- border: 3px solid #aaa;
41
- border-top: none;
42
- padding: 25px;
43
- width: 500px;
44
- }
45
-
46
- #sidebar {
47
- float: right;
48
- width: 175px;
49
- }
50
-
51
- #footer {
52
- clear: both;
53
- }
54
-
55
-
56
- #header, #about, #getting-started {
57
- padding-left: 75px;
58
- padding-right: 30px;
59
- }
60
-
61
-
62
- #header {
63
- background-image: url("images/rails.png");
64
- background-repeat: no-repeat;
65
- background-position: top left;
66
- height: 64px;
67
- }
68
- #header h1, #header h2 {margin: 0}
69
- #header h2 {
70
- color: #888;
71
- font-weight: normal;
72
- font-size: 16px;
73
- }
74
-
75
-
76
- #about h3 {
77
- margin: 0;
78
- margin-bottom: 10px;
79
- font-size: 14px;
80
- }
81
-
82
- #about-content {
83
- background-color: #ffd;
84
- border: 1px solid #fc0;
85
- margin-left: -55px;
86
- margin-right: -10px;
87
- }
88
- #about-content table {
89
- margin-top: 10px;
90
- margin-bottom: 10px;
91
- font-size: 11px;
92
- border-collapse: collapse;
93
- }
94
- #about-content td {
95
- padding: 10px;
96
- padding-top: 3px;
97
- padding-bottom: 3px;
98
- }
99
- #about-content td.name {color: #555}
100
- #about-content td.value {color: #000}
101
-
102
- #about-content ul {
103
- padding: 0;
104
- list-style-type: none;
105
- }
106
-
107
- #about-content.failure {
108
- background-color: #fcc;
109
- border: 1px solid #f00;
110
- }
111
- #about-content.failure p {
112
- margin: 0;
113
- padding: 10px;
114
- }
115
-
116
-
117
- #getting-started {
118
- border-top: 1px solid #ccc;
119
- margin-top: 25px;
120
- padding-top: 15px;
121
- }
122
- #getting-started h1 {
123
- margin: 0;
124
- font-size: 20px;
125
- }
126
- #getting-started h2 {
127
- margin: 0;
128
- font-size: 14px;
129
- font-weight: normal;
130
- color: #333;
131
- margin-bottom: 25px;
132
- }
133
- #getting-started ol {
134
- margin-left: 0;
135
- padding-left: 0;
136
- }
137
- #getting-started li {
138
- font-size: 18px;
139
- color: #888;
140
- margin-bottom: 25px;
141
- }
142
- #getting-started li h2 {
143
- margin: 0;
144
- font-weight: normal;
145
- font-size: 18px;
146
- color: #333;
147
- }
148
- #getting-started li p {
149
- color: #555;
150
- font-size: 13px;
151
- }
152
-
153
-
154
- #sidebar ul {
155
- margin-left: 0;
156
- padding-left: 0;
157
- }
158
- #sidebar ul h3 {
159
- margin-top: 25px;
160
- font-size: 16px;
161
- padding-bottom: 10px;
162
- border-bottom: 1px solid #ccc;
163
- }
164
- #sidebar li {
165
- list-style-type: none;
166
- }
167
- #sidebar ul.links li {
168
- margin-bottom: 5px;
169
- }
170
-
171
- </style>
172
- <script type="text/javascript">
173
- function about() {
174
- info = document.getElementById('about-content');
175
- if (window.XMLHttpRequest)
176
- { xhr = new XMLHttpRequest(); }
177
- else
178
- { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
179
- xhr.open("GET","rails/info/properties",false);
180
- xhr.send("");
181
- info.innerHTML = xhr.responseText;
182
- info.style.display = 'block'
183
- }
184
- </script>
185
- </head>
186
- <body>
187
- <div id="page">
188
- <div id="sidebar">
189
- <ul id="sidebar-items">
190
- <li>
191
- <h3>Browse the documentation</h3>
192
- <ul class="links">
193
- <li><a href="http://api.rubyonrails.org/">Rails API</a></li>
194
- <li><a href="http://stdlib.rubyonrails.org/">Ruby standard library</a></li>
195
- <li><a href="http://corelib.rubyonrails.org/">Ruby core</a></li>
196
- <li><a href="http://guides.rubyonrails.org/">Rails Guides</a></li>
197
- </ul>
198
- </li>
199
- </ul>
200
- </div>
201
-
202
- <div id="content">
203
- <div id="header">
204
- <h1>Welcome aboard</h1>
205
- <h2>You&rsquo;re riding Ruby on Rails!</h2>
206
- </div>
207
-
208
- <div id="about">
209
- <h3><a href="rails/info/properties" onclick="about(); return false">About your application&rsquo;s environment</a></h3>
210
- <div id="about-content" style="display: none"></div>
211
- </div>
212
-
213
- <div id="getting-started">
214
- <h1>Getting started</h1>
215
- <h2>Here&rsquo;s how to get rolling:</h2>
216
-
217
- <ol>
218
- <li>
219
- <h2>Use <code>rails generate</code> to create your models and controllers</h2>
220
- <p>To see all available options, run it without parameters.</p>
221
- </li>
222
-
223
- <li>
224
- <h2>Set up a default route and remove or rename this file</h2>
225
- <p>Routes are set up in config/routes.rb.</p>
226
- </li>
227
-
228
- <li>
229
- <h2>Create your database</h2>
230
- <p>Run <code>rake db:migrate</code> to create your database. If you're not using SQLite (the default), edit <code>config/database.yml</code> with your username and password.</p>
231
- </li>
232
- </ol>
233
- </div>
234
- </div>
235
-
236
- <div id="footer">&nbsp;</div>
237
- </div>
238
- </body>
239
- </html>