facebook-rails-starterkit 0.2.0 → 0.2.1
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/Gemfile +2 -2
- data/Gemfile.lock +5 -3
- data/README.md +36 -44
- data/VERSION +1 -1
- data/config/locales/omniauth/en.yml +6 -0
- data/facebook-rails-starterkit.gemspec +6 -5
- data/lib/facebook-rails-starterkit.rb +22 -2
- data/lib/facebook/access/helper.rb +70 -6
- data/lib/facebook/access/omniauth.rb +17 -0
- data/lib/facebook/app.rb +2 -15
- data/lib/facebook/auth/devise.rb +14 -4
- data/lib/facebook/graph_api.rb +32 -4
- metadata +7 -6
- data/lib/config_loader/yaml.rb +0 -43
data/Gemfile
CHANGED
@@ -3,13 +3,13 @@ source :rubygems
|
|
3
3
|
# Facebook
|
4
4
|
gem 'koala', '>= 1.4.0'
|
5
5
|
gem 'hashie', '~> 1.2.0'
|
6
|
-
gem 'fb_joy', '~> 0.1.2' # Joey with some fixes
|
6
|
+
# gem 'fb_joy', '~> 0.1.2' # Joey with some fixes
|
7
|
+
gem 'rails_config_loader', '~> 0.1.1'
|
7
8
|
|
8
9
|
group :development, :Test do
|
9
10
|
gem "rspec", ">= 2.8.0"
|
10
11
|
end
|
11
12
|
|
12
|
-
|
13
13
|
group :development do
|
14
14
|
gem "rdoc", ">= 3.12"
|
15
15
|
gem "bundler", ">= 1.1.0"
|
data/Gemfile.lock
CHANGED
@@ -7,8 +7,6 @@ GEM
|
|
7
7
|
addressable (~> 2.2)
|
8
8
|
multipart-post (~> 1.1)
|
9
9
|
rack (~> 1.1)
|
10
|
-
fb_joy (0.1.2)
|
11
|
-
hashie
|
12
10
|
git (1.2.5)
|
13
11
|
hashie (1.2.0)
|
14
12
|
jeweler (1.8.3)
|
@@ -17,12 +15,16 @@ GEM
|
|
17
15
|
rake
|
18
16
|
rdoc
|
19
17
|
json (1.6.6)
|
18
|
+
json_pure (1.7.1)
|
20
19
|
koala (1.4.1)
|
21
20
|
faraday (~> 0.7.0)
|
22
21
|
multi_json (~> 1.3.0)
|
23
22
|
multi_json (1.3.2)
|
24
23
|
multipart-post (1.1.5)
|
25
24
|
rack (1.4.1)
|
25
|
+
rails_config_loader (0.1.1)
|
26
|
+
hashie
|
27
|
+
json_pure
|
26
28
|
rake (0.9.2.2)
|
27
29
|
rdoc (3.12)
|
28
30
|
json (~> 1.4)
|
@@ -44,10 +46,10 @@ PLATFORMS
|
|
44
46
|
|
45
47
|
DEPENDENCIES
|
46
48
|
bundler (>= 1.1.0)
|
47
|
-
fb_joy (~> 0.1.2)
|
48
49
|
hashie (~> 1.2.0)
|
49
50
|
jeweler (>= 1.8.3)
|
50
51
|
koala (>= 1.4.0)
|
52
|
+
rails_config_loader (~> 0.1.1)
|
51
53
|
rdoc (>= 3.12)
|
52
54
|
rspec (>= 2.8.0)
|
53
55
|
simplecov (>= 0.5)
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
## Facebook Rails starter kit
|
2
2
|
|
3
|
-
This gem
|
3
|
+
This gem uses the 'hashie' gem for easy hash access (as returned by the Facebook graph API via Koala).
|
4
4
|
|
5
5
|
In an initializer or similar "boot location" for your app facebook integration:
|
6
6
|
|
@@ -18,7 +18,7 @@ class MyCool
|
|
18
18
|
include Singleton
|
19
19
|
|
20
20
|
# please change!
|
21
|
-
def
|
21
|
+
def identifier
|
22
22
|
'219868431409649'
|
23
23
|
end
|
24
24
|
|
@@ -28,7 +28,7 @@ class MyCool
|
|
28
28
|
end
|
29
29
|
|
30
30
|
# please change for staging/production
|
31
|
-
def
|
31
|
+
def site_url
|
32
32
|
'http://localhost:3000'
|
33
33
|
end
|
34
34
|
|
@@ -44,47 +44,18 @@ end
|
|
44
44
|
The `facebook.yml` file in `config/apis`:
|
45
45
|
|
46
46
|
```yaml
|
47
|
-
|
47
|
+
identifier: 219868431409649
|
48
48
|
secret: 7e5699f155df01d8e52b35c01dccd627
|
49
|
-
|
49
|
+
site_url: http://localhost:3000
|
50
50
|
default_permissions: ["publish_stream", "read_stream", "email"]
|
51
|
+
callback_path: '/home/callback'
|
51
52
|
```
|
52
53
|
|
53
|
-
|
54
|
+
Note that the `site_url` is the url of your site hosting the external Facebook app integration, fx: `www.mycoolapp.com`.
|
54
55
|
|
55
|
-
|
56
|
-
class MyCool
|
57
|
-
class FacebookAppConfig
|
58
|
-
include Singleton
|
59
|
-
|
60
|
-
def loader
|
61
|
-
@loader ||= ConfigLoader::Yaml.new 'apis', 'facebook.yml'
|
62
|
-
end
|
63
|
-
|
64
|
-
def secret
|
65
|
-
loader.load.secret
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
```
|
70
|
-
|
71
|
-
Or using the special Delegator module included. This module requires a #config method to be defined like so:
|
72
|
-
|
73
|
-
```ruby
|
74
|
-
class MyCool
|
75
|
-
class FacebookAppConfig
|
76
|
-
include Singleton
|
77
|
-
include ConfigLoader::Delegator
|
78
|
-
|
79
|
-
def config
|
80
|
-
@config ||= ConfigLoader::Yaml.new 'apis', 'facebook.yml'
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
```
|
56
|
+
See the `config_loader` or 'config-file-loader' gem for a nice way to load these yaml config values into a global `App` object of some kind.
|
85
57
|
|
86
|
-
|
87
|
-
This would allow you to:
|
58
|
+
Configuring this would allow you to do something like:
|
88
59
|
|
89
60
|
`Facebook.app.secret` # => value loaded from 'secret' entry in facebook.yml
|
90
61
|
|
@@ -97,7 +68,7 @@ class CampaignController < ApplicationController
|
|
97
68
|
include Facebook::Access::Helper
|
98
69
|
|
99
70
|
def signup
|
100
|
-
fb_login
|
71
|
+
fb_login!
|
101
72
|
end
|
102
73
|
end
|
103
74
|
```
|
@@ -111,17 +82,24 @@ Some of the key methods made available are:
|
|
111
82
|
* signed_request
|
112
83
|
* registration
|
113
84
|
|
114
|
-
You can
|
85
|
+
You can access the Facebook graph API for the current (session) user.
|
86
|
+
|
87
|
+
For this to work, it requires a previous Facebook login which can be done fx via the Facebook login button (see fx 'facebook-social_plugins' gem). Alternatively use OAuth directly, fx by using the `fb_login!` method.
|
115
88
|
|
116
|
-
|
89
|
+
Note: You can use the `after_authenticate_new_user(user)` hook method to fx add the authenticated user to the session for the `current_user` or similar method.
|
90
|
+
|
91
|
+
## Debugging and logging
|
92
|
+
|
93
|
+
You can set the `Facebook::Starterkit.logging_on!` in order to get some logging/debugging output while using the Starterkit. By default, logging is turned off. You can also turn it off using ``Facebook::Starterkit.logging_off!`
|
117
94
|
|
118
95
|
## Facebook Graph API
|
119
96
|
|
120
|
-
The `fb_graph` method returns a class with some nice convenience methods. The
|
121
|
-
graph api used is `Koala::Facebook::GraphAndRestAPI` from the `joey` gem, which uses Hashie (see `hashie gem) under the covers for easy access into the hashes returned.
|
97
|
+
The `fb_graph` method returns a class with some nice convenience methods. The graph api used is `Koala::Facebook::API` from the `koala` gem.
|
122
98
|
|
123
99
|
* me
|
124
100
|
|
101
|
+
The me method call get_object('me') on the GraphAPI and converts the returned `Hash` into a `Hashie` for easy method access (using `method_missing`).
|
102
|
+
|
125
103
|
The following methods are all prefixed with 'my_'
|
126
104
|
|
127
105
|
* name
|
@@ -245,12 +223,26 @@ rake db:migrate
|
|
245
223
|
In your `routes.rb file
|
246
224
|
|
247
225
|
```ruby
|
248
|
-
match '
|
226
|
+
match 'auth/:provider/registration' => 'registrations#create', :as => :registration
|
249
227
|
|
250
228
|
# See http://railscasts.com/episodes/235-omniauth-part-1
|
251
229
|
match 'auth/:provider/callback' => 'authentications#create'
|
252
230
|
```
|
253
231
|
|
232
|
+
The `:provider` param can be accessed in the controller via `params[:provider]`.
|
233
|
+
Note that the method `auth_provider` is already defined to return this value or default to `'facebook'`.
|
234
|
+
|
235
|
+
You can then use the route like this:
|
236
|
+
|
237
|
+
```haml
|
238
|
+
= link_to "Register with Facebook", registration_path('facebook')
|
239
|
+
```
|
240
|
+
|
241
|
+
Or perhaps like this:
|
242
|
+
|
243
|
+
```haml
|
244
|
+
= button_to "", registration_path('facebook'), :class => "facebook_button"
|
245
|
+
``
|
254
246
|
## Contributing to facebook-rails-starterkit
|
255
247
|
|
256
248
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "facebook-rails-starterkit"
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
@@ -25,10 +25,11 @@ Gem::Specification.new do |s|
|
|
25
25
|
"README.md",
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
|
+
"config/locales/omniauth/en.yml",
|
28
29
|
"facebook-rails-starterkit.gemspec",
|
29
|
-
"lib/config_loader/yaml.rb",
|
30
30
|
"lib/facebook-rails-starterkit.rb",
|
31
31
|
"lib/facebook/access/helper.rb",
|
32
|
+
"lib/facebook/access/omniauth.rb",
|
32
33
|
"lib/facebook/app.rb",
|
33
34
|
"lib/facebook/auth/devise.rb",
|
34
35
|
"lib/facebook/graph_api.rb",
|
@@ -50,7 +51,7 @@ Gem::Specification.new do |s|
|
|
50
51
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
52
|
s.add_runtime_dependency(%q<koala>, [">= 1.4.0"])
|
52
53
|
s.add_runtime_dependency(%q<hashie>, ["~> 1.2.0"])
|
53
|
-
s.add_runtime_dependency(%q<
|
54
|
+
s.add_runtime_dependency(%q<rails_config_loader>, ["~> 0.1.1"])
|
54
55
|
s.add_development_dependency(%q<rspec>, [">= 2.8.0"])
|
55
56
|
s.add_development_dependency(%q<rdoc>, [">= 3.12"])
|
56
57
|
s.add_development_dependency(%q<bundler>, [">= 1.1.0"])
|
@@ -59,7 +60,7 @@ Gem::Specification.new do |s|
|
|
59
60
|
else
|
60
61
|
s.add_dependency(%q<koala>, [">= 1.4.0"])
|
61
62
|
s.add_dependency(%q<hashie>, ["~> 1.2.0"])
|
62
|
-
s.add_dependency(%q<
|
63
|
+
s.add_dependency(%q<rails_config_loader>, ["~> 0.1.1"])
|
63
64
|
s.add_dependency(%q<rspec>, [">= 2.8.0"])
|
64
65
|
s.add_dependency(%q<rdoc>, [">= 3.12"])
|
65
66
|
s.add_dependency(%q<bundler>, [">= 1.1.0"])
|
@@ -69,7 +70,7 @@ Gem::Specification.new do |s|
|
|
69
70
|
else
|
70
71
|
s.add_dependency(%q<koala>, [">= 1.4.0"])
|
71
72
|
s.add_dependency(%q<hashie>, ["~> 1.2.0"])
|
72
|
-
s.add_dependency(%q<
|
73
|
+
s.add_dependency(%q<rails_config_loader>, ["~> 0.1.1"])
|
73
74
|
s.add_dependency(%q<rspec>, [">= 2.8.0"])
|
74
75
|
s.add_dependency(%q<rdoc>, [">= 3.12"])
|
75
76
|
s.add_dependency(%q<bundler>, [">= 1.1.0"])
|
@@ -1,6 +1,26 @@
|
|
1
|
-
require 'config_loader/yaml'
|
2
1
|
require 'facebook/app'
|
3
2
|
require 'facebook/graph_api'
|
4
3
|
require 'facebook/access/helper'
|
4
|
+
require 'facebook/access/omniauth'
|
5
5
|
|
6
|
-
require 'facebook/auth/devise' if defined?(Devise)
|
6
|
+
require 'facebook/auth/devise' if defined?(Devise)
|
7
|
+
|
8
|
+
module Facebook
|
9
|
+
module Starterkit
|
10
|
+
class << self
|
11
|
+
attr_accessor :logging
|
12
|
+
|
13
|
+
def logging_on!
|
14
|
+
@logging = true
|
15
|
+
end
|
16
|
+
|
17
|
+
def logging_off!
|
18
|
+
@logging = false
|
19
|
+
end
|
20
|
+
|
21
|
+
def logging?
|
22
|
+
@logging
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -2,12 +2,38 @@ module Facebook
|
|
2
2
|
module Access
|
3
3
|
module Helper
|
4
4
|
def fb_retrieve_access_token
|
5
|
-
session[:access_token] =
|
5
|
+
session[:access_token] = has_code? ? access_token_from_code : cookies_access_token
|
6
|
+
log! 'session-access_token', session[:access_token]
|
6
7
|
end
|
7
8
|
|
8
|
-
def
|
9
|
-
session[:oauth]
|
9
|
+
def access_token_from_code
|
10
|
+
session[:oauth].get_access_token(code)
|
11
|
+
end
|
12
|
+
|
13
|
+
def fb_login permissions = nil
|
14
|
+
session[:oauth] = oauth_api.new(fb_app.identifier, fb_app.secret, fb_app.site_url + fb_app.callback_path)
|
15
|
+
log! 'session-oath', session[:oauth]
|
10
16
|
@auth_url = session[:oauth].url_for_oauth_code(:permissions=> permissions || fb_app.default_permissions)
|
17
|
+
log! 'auth_url', @auth_url
|
18
|
+
end
|
19
|
+
|
20
|
+
def fb_login! permissions = nil
|
21
|
+
fb_login permissions
|
22
|
+
redirect_to auth_url
|
23
|
+
end
|
24
|
+
|
25
|
+
def cookies_access_token
|
26
|
+
@cookies_access_token ||= session[:oauth].get_user_info_from_cookies(cookies)
|
27
|
+
end
|
28
|
+
|
29
|
+
def user_access_token
|
30
|
+
@user_access_token ||= user_cookie_info["access_token"]
|
31
|
+
log! 'user cookie access_token', @user_access_token
|
32
|
+
@user_access_token
|
33
|
+
end
|
34
|
+
|
35
|
+
def real_time_updates
|
36
|
+
@updates = Facebook.updates_api.new(:app_id => fb_app.identifier, :secret => fb_app.secret)
|
11
37
|
end
|
12
38
|
|
13
39
|
def auth_url
|
@@ -19,11 +45,17 @@ module Facebook
|
|
19
45
|
end
|
20
46
|
|
21
47
|
def fb_graph
|
22
|
-
|
48
|
+
@fb_graph ||= graph_api.new session
|
49
|
+
log! 'fb_graph', @fb_graph
|
50
|
+
@fb_graph
|
23
51
|
end
|
24
52
|
|
25
53
|
def fb_my_id
|
26
|
-
fb_graph.my_id
|
54
|
+
@fb_my_id ||= fb_graph.my_id
|
55
|
+
end
|
56
|
+
|
57
|
+
def auth_provider
|
58
|
+
params[:provider] || 'facebook'
|
27
59
|
end
|
28
60
|
|
29
61
|
# for FB Registration plugin
|
@@ -38,9 +70,41 @@ module Facebook
|
|
38
70
|
|
39
71
|
protected
|
40
72
|
|
73
|
+
def has_code?
|
74
|
+
params[:code]
|
75
|
+
end
|
76
|
+
|
77
|
+
def code
|
78
|
+
params[:code]
|
79
|
+
end
|
80
|
+
|
81
|
+
def auth_sessions?
|
82
|
+
session[:access_token] && session[:oauth]
|
83
|
+
end
|
84
|
+
|
85
|
+
def log! title, msg
|
86
|
+
msg = msg.kind_of?(String) ? msg : msg.inspect
|
87
|
+
puts "#{title}: #{msg}" if auth_logging?
|
88
|
+
end
|
89
|
+
|
90
|
+
def auth_logging?
|
91
|
+
Facebook::Starterkit.logging?
|
92
|
+
end
|
93
|
+
|
94
|
+
def oauth_api
|
95
|
+
Koala::Facebook::OAuth
|
96
|
+
end
|
97
|
+
|
98
|
+
# Custom GraphAPI wrapper
|
99
|
+
def graph_api
|
100
|
+
Facebook::GraphApi
|
101
|
+
end
|
102
|
+
|
41
103
|
# http://acknowledgement.co.uk/post/Decoding-and-Accessing-The-signed_request-Parameter-in-Rails/247
|
42
104
|
def decoded_signed_request
|
43
|
-
decoder.decode params['signed_request']
|
105
|
+
@decoded_signed_request ||= decoder.decode params['signed_request']
|
106
|
+
log! 'decoded_signed_request', @decoded_signed_request
|
107
|
+
@decoded_signed_request
|
44
108
|
end
|
45
109
|
|
46
110
|
def decoder
|
data/lib/facebook/app.rb
CHANGED
@@ -14,20 +14,7 @@ module Facebook
|
|
14
14
|
|
15
15
|
attr_accessor :fb_app
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
def secret_key
|
22
|
-
fb_app.secret
|
23
|
-
end
|
24
|
-
|
25
|
-
def site_url
|
26
|
-
fb_app.url
|
27
|
-
end
|
28
|
-
|
29
|
-
def fb_default_permissions
|
30
|
-
fb_app.default_permissions
|
31
|
-
end
|
17
|
+
delegate :identifier, :secret, :site_url, :default_permissions,
|
18
|
+
:callback_path, :to => :fb_app #, :allow_nil => true
|
32
19
|
end
|
33
20
|
end
|
data/lib/facebook/auth/devise.rb
CHANGED
@@ -2,16 +2,16 @@ require 'facebook/access/helper'
|
|
2
2
|
|
3
3
|
module Facebook
|
4
4
|
module Auth
|
5
|
-
include Facebook::Access::Helper
|
6
|
-
|
7
5
|
module Devise
|
6
|
+
include Facebook::Access::Helper
|
7
|
+
|
8
8
|
def index
|
9
9
|
@authentications = current_user.authentications if current_user
|
10
10
|
end
|
11
11
|
|
12
12
|
# based on OmniAuth 2 railscast
|
13
13
|
def create
|
14
|
-
|
14
|
+
authenticated? ? authenticated : try_authenticate_user
|
15
15
|
end
|
16
16
|
|
17
17
|
def destroy
|
@@ -40,14 +40,20 @@ module Facebook
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def authenticate_user
|
43
|
+
# fb_login!
|
43
44
|
current_user.authentications.create(:provider => auth_provider, :uid => fb_my_id)
|
44
45
|
flash[:notice] = t "#{auth_provider}.auth.success"
|
45
46
|
redirect_to authentications_url
|
46
47
|
end
|
47
48
|
|
48
49
|
def authenticate_new_user
|
49
|
-
|
50
|
+
fb_login!
|
51
|
+
user = new_user.authentications.build(:provider => auth_provider, :uid => fb_my_id)
|
50
52
|
user.save ? authenticated_user_saved : authenticated_user_not_saved
|
53
|
+
after_authenticate_new_user(user)
|
54
|
+
end
|
55
|
+
|
56
|
+
def after_authenticate_new_user user
|
51
57
|
end
|
52
58
|
|
53
59
|
def authenticated_user_saved
|
@@ -59,6 +65,10 @@ module Facebook
|
|
59
65
|
redirect_to new_user_registration_url
|
60
66
|
end
|
61
67
|
|
68
|
+
def authenticated?
|
69
|
+
auth_sessions? && authentication
|
70
|
+
end
|
71
|
+
|
62
72
|
def authentication
|
63
73
|
@authentication ||= Authentication.find_by_provider_and_uid(auth_provider, fb_my_id)
|
64
74
|
end
|
data/lib/facebook/graph_api.rb
CHANGED
@@ -1,18 +1,35 @@
|
|
1
1
|
module Facebook
|
2
|
+
def self.api
|
3
|
+
::Koala::Facebook::API
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.updates_api
|
7
|
+
::Koala::Facebook::RealtimeUpdates
|
8
|
+
end
|
9
|
+
|
2
10
|
class GraphApi
|
3
|
-
attr_reader :
|
11
|
+
attr_reader :fb_api, :access_token
|
4
12
|
|
5
13
|
def initialize session
|
6
14
|
@access_token = session[:access_token]
|
7
|
-
|
15
|
+
log! 'GraphApi access_token', @access_token
|
16
|
+
@fb_api = ::Facebook.api.new(access_token)
|
17
|
+
end
|
18
|
+
|
19
|
+
def api
|
20
|
+
@api ||= fb_api
|
8
21
|
end
|
9
22
|
|
23
|
+
def self.clazz
|
24
|
+
::Facebook.api
|
25
|
+
end
|
26
|
+
|
10
27
|
# also see https://developers.facebook.com/docs/reference/fql/
|
11
28
|
# The Facebook Query Language for more efficient complex queries
|
12
29
|
# Also enables Multi-query
|
13
30
|
|
14
31
|
def me
|
15
|
-
@me ||= api.me
|
32
|
+
@me ||= ::Hashie::Mash.new api.get_object('me')
|
16
33
|
end
|
17
34
|
|
18
35
|
# my_id, my_email ...
|
@@ -39,6 +56,17 @@ module Facebook
|
|
39
56
|
|
40
57
|
def post_on_wall message
|
41
58
|
api.put_wall_post message
|
42
|
-
end
|
59
|
+
end
|
60
|
+
|
61
|
+
protected
|
62
|
+
|
63
|
+
def log! title, msg
|
64
|
+
msg = msg.kind_of?(String) ? msg : msg.inspect
|
65
|
+
puts "#{title}: #{msg}" if logging?
|
66
|
+
end
|
67
|
+
|
68
|
+
def logging?
|
69
|
+
Facebook::Starterkit.logging?
|
70
|
+
end
|
43
71
|
end
|
44
72
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facebook-rails-starterkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -44,13 +44,13 @@ dependencies:
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 1.2.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: rails_config_loader
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0.1.
|
53
|
+
version: 0.1.1
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.1.
|
61
|
+
version: 0.1.1
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: rspec
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -155,10 +155,11 @@ files:
|
|
155
155
|
- README.md
|
156
156
|
- Rakefile
|
157
157
|
- VERSION
|
158
|
+
- config/locales/omniauth/en.yml
|
158
159
|
- facebook-rails-starterkit.gemspec
|
159
|
-
- lib/config_loader/yaml.rb
|
160
160
|
- lib/facebook-rails-starterkit.rb
|
161
161
|
- lib/facebook/access/helper.rb
|
162
|
+
- lib/facebook/access/omniauth.rb
|
162
163
|
- lib/facebook/app.rb
|
163
164
|
- lib/facebook/auth/devise.rb
|
164
165
|
- lib/facebook/graph_api.rb
|
@@ -182,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
182
183
|
version: '0'
|
183
184
|
segments:
|
184
185
|
- 0
|
185
|
-
hash:
|
186
|
+
hash: -3307906802591948014
|
186
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
188
|
none: false
|
188
189
|
requirements:
|
data/lib/config_loader/yaml.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'hashie'
|
2
|
-
|
3
|
-
module ConfigLoader
|
4
|
-
class Yaml
|
5
|
-
attr_reader :path, :file_name, :ext, :file_path, :root
|
6
|
-
|
7
|
-
# will try root element if such exists
|
8
|
-
def initialize file_path, root = nil
|
9
|
-
@file_path = file_path
|
10
|
-
@path = File.dirname file_path
|
11
|
-
@file_name = File.basename file_path
|
12
|
-
@ext = file_name.split(/(ya?ml$)/).last
|
13
|
-
@root = (root || file_name.split('.').first).to_s
|
14
|
-
@root = nil unless mashie.send(@root)
|
15
|
-
@mashie = mashie.send(@root) if @root
|
16
|
-
end
|
17
|
-
|
18
|
-
def as_hash
|
19
|
-
@as_hash ||= mashie
|
20
|
-
end
|
21
|
-
|
22
|
-
def as_yaml
|
23
|
-
@as_yaml ||= ::YAML::load File.open(config_file_path)
|
24
|
-
end
|
25
|
-
|
26
|
-
protected
|
27
|
-
|
28
|
-
def mashie
|
29
|
-
@mashie ||= ::Hashie::Mash.new as_yaml
|
30
|
-
end
|
31
|
-
|
32
|
-
def config_file_path
|
33
|
-
@config_file_path ||= File.join(Rails.root.to_s, 'config', file_path)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
module Delegator
|
38
|
-
def method_missing(m, *args, &block)
|
39
|
-
raise "A #config method must be defined in the container for ConfigLoader::Delegator, for it to delegate to #config: delegation attempted with #{m}" unless self.respond_to?(:config)
|
40
|
-
config.send(m)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|