social 0.0.11 → 0.3.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/README.md +72 -40
- data/lib/social.rb +65 -30
- data/lib/social/balance.rb +1 -14
- data/lib/social/config/ok.rb +16 -18
- data/lib/social/config/vk.rb +15 -17
- data/lib/social/determinant.rb +4 -0
- data/lib/social/determinant/request_param.rb +56 -0
- data/lib/social/determinant/social_prefix.rb +81 -0
- data/lib/social/env.rb +21 -15
- data/lib/social/network.rb +9 -1
- data/lib/social/network/base.rb +60 -9
- data/lib/social/network/graph.rb +1 -40
- data/lib/social/network/graph/ok.rb +1 -5
- data/lib/social/network/graph/ok/base.rb +50 -56
- data/lib/social/network/graph/ok/notification.rb +9 -15
- data/lib/social/network/graph/ok/user.rb +61 -67
- data/lib/social/network/graph/tail.rb +14 -20
- data/lib/social/network/graph/vk.rb +1 -5
- data/lib/social/network/graph/vk/base.rb +27 -33
- data/lib/social/network/graph/vk/notification.rb +11 -17
- data/lib/social/network/graph/vk/user.rb +55 -61
- data/lib/social/network/ok.rb +9 -17
- data/lib/social/network/stub.rb +2 -7
- data/lib/social/network/vk.rb +9 -17
- data/lib/social/version.rb +1 -1
- data/social.gemspec +1 -0
- data/spec/lib/social/ok_api_spec.rb +8 -8
- data/spec/lib/social/vk_api_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -4
- metadata +80 -48
- data/lib/social/auth.rb +0 -4
- data/lib/social/auth/controller.rb +0 -144
- data/lib/social/builder.rb +0 -22
- data/lib/social/cache.rb +0 -26
- data/lib/social/helper.rb +0 -4
- data/lib/social/helper/controller.rb +0 -43
- data/lib/social/helper/model.rb +0 -61
- data/lib/social/network/params.rb +0 -31
- data/lib/social/provider.rb +0 -42
data/spec/spec_helper.rb
CHANGED
@@ -2,8 +2,5 @@ require "bundler"
|
|
2
2
|
Bundler.require :default, :development
|
3
3
|
|
4
4
|
RSpec.configure do |config|
|
5
|
-
|
6
|
-
#config.run_all_when_everything_filtered = true
|
7
|
-
#config.filter_run :focus
|
8
|
-
#config.mock_with :rr
|
5
|
+
config.mock_with :rr
|
9
6
|
end
|
metadata
CHANGED
@@ -1,116 +1,156 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Kazantsev Nickolay
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-10-31 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec-core
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '2.0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rspec-mocks
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: rspec-expectations
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
45
|
- - ~>
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '2.0'
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: rack
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
59
|
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: 1.4.1
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.4.1
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: rack-test
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
73
|
- - ~>
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: 0.6.1
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.6.1
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rr
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
87
|
- - ~>
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: '1.0'
|
77
90
|
type: :development
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.0'
|
80
97
|
- !ruby/object:Gem::Dependency
|
81
98
|
name: pry
|
82
|
-
requirement:
|
83
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
84
100
|
requirements:
|
85
101
|
- - ~>
|
86
102
|
- !ruby/object:Gem::Version
|
87
103
|
version: 0.9.8.4
|
88
104
|
type: :development
|
89
105
|
prerelease: false
|
90
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.9.8.4
|
91
111
|
- !ruby/object:Gem::Dependency
|
92
112
|
name: activesupport
|
93
|
-
requirement:
|
94
|
-
none: false
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
95
114
|
requirements:
|
96
115
|
- - ~>
|
97
116
|
- !ruby/object:Gem::Version
|
98
117
|
version: 3.1.3
|
99
118
|
type: :development
|
100
119
|
prerelease: false
|
101
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 3.1.3
|
102
125
|
- !ruby/object:Gem::Dependency
|
103
126
|
name: i18n
|
104
|
-
requirement:
|
105
|
-
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ~>
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.6.0
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
135
|
requirements:
|
107
136
|
- - ~>
|
108
137
|
- !ruby/object:Gem::Version
|
109
138
|
version: 0.6.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rake
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
110
146
|
type: :development
|
111
147
|
prerelease: false
|
112
|
-
version_requirements:
|
113
|
-
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
description: "This is social networks api wrapper and authorization tools for social
|
114
154
|
applications. \n Now it is a compilation of code from various projects in production.
|
115
155
|
Without tests. =( NOT RECOMMENDED USE IN PRODUCTION."
|
116
156
|
email:
|
@@ -127,18 +167,14 @@ files:
|
|
127
167
|
- Rakefile
|
128
168
|
- config/social.yml
|
129
169
|
- lib/social.rb
|
130
|
-
- lib/social/auth.rb
|
131
|
-
- lib/social/auth/controller.rb
|
132
170
|
- lib/social/balance.rb
|
133
|
-
- lib/social/builder.rb
|
134
|
-
- lib/social/cache.rb
|
135
171
|
- lib/social/config.rb
|
136
172
|
- lib/social/config/ok.rb
|
137
173
|
- lib/social/config/vk.rb
|
174
|
+
- lib/social/determinant.rb
|
175
|
+
- lib/social/determinant/request_param.rb
|
176
|
+
- lib/social/determinant/social_prefix.rb
|
138
177
|
- lib/social/env.rb
|
139
|
-
- lib/social/helper.rb
|
140
|
-
- lib/social/helper/controller.rb
|
141
|
-
- lib/social/helper/model.rb
|
142
178
|
- lib/social/network.rb
|
143
179
|
- lib/social/network/base.rb
|
144
180
|
- lib/social/network/graph.rb
|
@@ -152,11 +188,9 @@ files:
|
|
152
188
|
- lib/social/network/graph/vk/notification.rb
|
153
189
|
- lib/social/network/graph/vk/user.rb
|
154
190
|
- lib/social/network/ok.rb
|
155
|
-
- lib/social/network/params.rb
|
156
191
|
- lib/social/network/stub.rb
|
157
192
|
- lib/social/network/vk.rb
|
158
193
|
- lib/social/networks.rb
|
159
|
-
- lib/social/provider.rb
|
160
194
|
- lib/social/version.rb
|
161
195
|
- social.gemspec
|
162
196
|
- spec/lib/social/config_spec.rb
|
@@ -166,27 +200,26 @@ files:
|
|
166
200
|
- spec/spec_helper.rb
|
167
201
|
homepage: http://github.com/realb0t/social
|
168
202
|
licenses: []
|
203
|
+
metadata: {}
|
169
204
|
post_install_message:
|
170
205
|
rdoc_options: []
|
171
206
|
require_paths:
|
172
207
|
- lib
|
173
208
|
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
-
none: false
|
175
209
|
requirements:
|
176
|
-
- -
|
210
|
+
- - '>='
|
177
211
|
- !ruby/object:Gem::Version
|
178
212
|
version: '0'
|
179
213
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
-
none: false
|
181
214
|
requirements:
|
182
|
-
- -
|
215
|
+
- - '>='
|
183
216
|
- !ruby/object:Gem::Version
|
184
217
|
version: '0'
|
185
218
|
requirements: []
|
186
219
|
rubyforge_project: social
|
187
|
-
rubygems_version:
|
220
|
+
rubygems_version: 2.0.7
|
188
221
|
signing_key:
|
189
|
-
specification_version:
|
222
|
+
specification_version: 4
|
190
223
|
summary: Social API wrapper and Tools
|
191
224
|
test_files:
|
192
225
|
- spec/lib/social/config_spec.rb
|
@@ -194,4 +227,3 @@ test_files:
|
|
194
227
|
- spec/lib/social/vk_api_spec.rb
|
195
228
|
- spec/lib/social_spec.rb
|
196
229
|
- spec/spec_helper.rb
|
197
|
-
has_rdoc:
|
data/lib/social/auth.rb
DELETED
@@ -1,144 +0,0 @@
|
|
1
|
-
module Social
|
2
|
-
module Auth
|
3
|
-
module Controller
|
4
|
-
|
5
|
-
def self.included(controller)
|
6
|
-
controller.send(:include, InstanceMethods)
|
7
|
-
controller.extend(ClassMethods)
|
8
|
-
end
|
9
|
-
|
10
|
-
module ClassMethods
|
11
|
-
def self.extended(controller)
|
12
|
-
|
13
|
-
controller.helper_method :current_user, :signed?, :signed_out?
|
14
|
-
controller.hide_action :current_user, :current_user=,
|
15
|
-
:signed?, :signed_out?,
|
16
|
-
:sign_in, :sign_out,
|
17
|
-
:deny_access
|
18
|
-
|
19
|
-
controller.before_filter :ie_hack
|
20
|
-
controller.before_filter :deny_access, :safari_cookie_set
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
module InstanceMethods
|
26
|
-
|
27
|
-
def current_user
|
28
|
-
@current_user ||= try_get_user
|
29
|
-
end
|
30
|
-
|
31
|
-
def signed?
|
32
|
-
current_user.present?
|
33
|
-
end
|
34
|
-
|
35
|
-
def signed_out?
|
36
|
-
!signed?
|
37
|
-
end
|
38
|
-
|
39
|
-
def deny_access
|
40
|
-
unless signed?
|
41
|
-
store_location
|
42
|
-
redirect_to "/signin?#{Rack::Utils.build_nested_query(params)}"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def sign_in(user, auth_params)
|
47
|
-
remember_token = user.remember_token
|
48
|
-
if remember_token
|
49
|
-
cookies[:remember_token] = {
|
50
|
-
:value => remember_token,
|
51
|
-
:expires => 1.day.from_now.utc
|
52
|
-
}
|
53
|
-
|
54
|
-
cookies[:social_auth_params] = {
|
55
|
-
:value => auth_params.to_json,
|
56
|
-
:expires => 1.day.from_now.utc
|
57
|
-
}
|
58
|
-
|
59
|
-
cookies[:user_id] = { :value => user.id, :expires => 1.day.from_now.utc }
|
60
|
-
|
61
|
-
cookies[:social_type] = {
|
62
|
-
:value => auth_params[:social_type],
|
63
|
-
:expires => 1.day.from_now.utc
|
64
|
-
}
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def sign_out
|
69
|
-
current_user.reset_remember_token! if current_user
|
70
|
-
cookies.delete(:remember_token)
|
71
|
-
cookies.delete(:social_auth_params)
|
72
|
-
self.current_user = nil
|
73
|
-
end
|
74
|
-
|
75
|
-
def try_get_user
|
76
|
-
#auth_params = cookies[:social_auth_params] and ActiveSupport::JSON.decode(cookies[:social_auth_params]).with_indifferent_access
|
77
|
-
|
78
|
-
auth_params = ActiveSupport::JSON.decode(cookies[:social_auth_params])
|
79
|
-
auth_params = (auth_params || {}).with_indifferent_access
|
80
|
-
|
81
|
-
finded_user = nil
|
82
|
-
|
83
|
-
if token = cookies[:remember_token]
|
84
|
-
if cookies[:user_id] && (user = Profile.find(cookies[:user_id])) && (user.remember_token == token || token == 'hello_psyfaces')
|
85
|
-
user.auth_params = auth_params
|
86
|
-
finded_user = user
|
87
|
-
else
|
88
|
-
finded_user = Profile.authenticate_by_token(token, auth_params)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
self.send(:after_authenticate_user, finded_user) if finded_user && self.respond_to?(:after_authenticate_user)
|
93
|
-
|
94
|
-
finded_user
|
95
|
-
end
|
96
|
-
|
97
|
-
def redirect_back_or(default)
|
98
|
-
redirect_to(return_to || default)
|
99
|
-
clear_return_to
|
100
|
-
end
|
101
|
-
|
102
|
-
def return_to
|
103
|
-
session[:return_to] || params[:return_to]
|
104
|
-
end
|
105
|
-
|
106
|
-
def clear_return_to
|
107
|
-
session[:return_to] = nil
|
108
|
-
end
|
109
|
-
|
110
|
-
def redirect_to_root
|
111
|
-
redirect_to('/')
|
112
|
-
end
|
113
|
-
|
114
|
-
protected
|
115
|
-
|
116
|
-
def auth_params
|
117
|
-
@auth_params ||= {
|
118
|
-
:session_key => params[:session_key],
|
119
|
-
:auth_sig => params[:auth_sig],
|
120
|
-
:apiconnection => params[:apiconnection],
|
121
|
-
:session_secret_key => params[:session_secret_key]
|
122
|
-
}
|
123
|
-
end
|
124
|
-
|
125
|
-
def safari_cookie_set
|
126
|
-
cookies['safari_cookie_fix'] = 'OK'
|
127
|
-
end
|
128
|
-
|
129
|
-
def ie_hack
|
130
|
-
response.headers["P3P"]='CP="CAO PSA OUR"'
|
131
|
-
#header('P3P: CP="NOI ADM DEV COM NAV OUR STP"P3P: CP="NOI ADM DEV COM NAV OUR STP"');
|
132
|
-
end
|
133
|
-
|
134
|
-
def store_location
|
135
|
-
if request.get?
|
136
|
-
session[:return_to] = request.fullpath
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
end
|
141
|
-
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
data/lib/social/builder.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
module Social
|
2
|
-
class Builder < Rack::Builder
|
3
|
-
def self.produce(app)
|
4
|
-
new do
|
5
|
-
|
6
|
-
map '/' do
|
7
|
-
run app
|
8
|
-
end
|
9
|
-
|
10
|
-
Social.type_prefixes.each_with_index do |prefix, index|
|
11
|
-
|
12
|
-
map '/' + prefix do
|
13
|
-
use Social::Provider.build(prefix)
|
14
|
-
run app
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/lib/social/cache.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module Social
|
2
|
-
class Cache
|
3
|
-
|
4
|
-
def initialize(driver)
|
5
|
-
@driver = driver
|
6
|
-
end
|
7
|
-
|
8
|
-
def read(key)
|
9
|
-
driver.read(key) if driver.respond_to? :read
|
10
|
-
end
|
11
|
-
|
12
|
-
def write(key, data)
|
13
|
-
driver.write(key, data) if driver.respond_to? :write
|
14
|
-
end
|
15
|
-
|
16
|
-
def fetch(key, &block)
|
17
|
-
return nil if block_gived?
|
18
|
-
unless data = read(key)
|
19
|
-
data = block.call
|
20
|
-
end
|
21
|
-
|
22
|
-
data
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
end
|