rest-more 0.7.1 → 0.7.2
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/.travis.yml +2 -1
- data/CHANGES.md +20 -0
- data/Gemfile +5 -1
- data/README.md +26 -0
- data/bin/rib-rest-core +22 -0
- data/example/rails2/Gemfile +1 -0
- data/example/rails2/app/views/application/helper.html.erb +1 -1
- data/example/rails2/config/environment.rb +10 -0
- data/example/rails2/config/rest-core.yaml +2 -2
- data/example/rails2/test/functional/application_controller_test.rb +3 -3
- data/example/rails2/test/unit/rails_util_test.rb +12 -7
- data/example/rails3/Gemfile +1 -0
- data/example/rails3/app/views/application/helper.html.erb +1 -1
- data/example/rails3/config/rest-core.yaml +2 -2
- data/example/rails3/test/functional/application_controller_test.rb +3 -3
- data/example/rails3/test/unit/rails_util_test.rb +12 -7
- data/lib/rest-core/client/bing.rb +92 -0
- data/lib/rest-core/client/bing/rails_util.rb +13 -0
- data/lib/rest-core/client/facebook.rb +2 -2
- data/lib/rest-core/client/facebook/rails_util.rb +28 -65
- data/lib/rest-core/client/flurry.rb +3 -3
- data/lib/rest-core/client/flurry/rails_util.rb +3 -64
- data/lib/rest-core/client/github.rb +3 -0
- data/lib/rest-core/client/github/rails_util.rb +13 -0
- data/lib/rest-core/client/linkedin.rb +2 -0
- data/lib/rest-core/client/linkedin/rails_util.rb +13 -0
- data/lib/rest-core/client/mixi.rb +2 -0
- data/lib/rest-core/client/mixi/rails_util.rb +13 -0
- data/lib/rest-core/client/twitter.rb +2 -0
- data/lib/rest-core/client/twitter/rails_util.rb +13 -0
- data/lib/rest-core/util/rails_util_util.rb +112 -5
- data/lib/rest-more.rb +4 -3
- data/lib/rest-more/version.rb +1 -1
- data/lib/rib/app/rest-core.rb +15 -0
- data/rest-more.gemspec +13 -4
- data/test/client/bing/test_api.rb +34 -0
- data/test/client/facebook/test_api.rb +12 -12
- data/test/client/facebook/test_cache.rb +3 -3
- data/test/client/facebook/test_default.rb +5 -5
- data/test/client/facebook/test_error.rb +25 -25
- data/test/client/facebook/test_handler.rb +12 -12
- data/test/client/facebook/test_load_config.rb +4 -4
- data/test/client/facebook/test_misc.rb +16 -16
- data/test/client/facebook/test_oauth.rb +3 -3
- data/test/client/facebook/test_old.rb +11 -11
- data/test/client/facebook/test_page.rb +4 -4
- data/test/client/facebook/test_parse.rb +14 -14
- data/test/client/facebook/test_serialize.rb +4 -4
- data/test/client/facebook/test_timeout.rb +4 -4
- data/test/client/flurry/test_metrics.rb +1 -1
- data/test/client/twitter/test_api.rb +1 -1
- metadata +16 -7
- data/lib/rest-core/client/simple.rb +0 -2
- data/lib/rest-core/client/universal.rb +0 -18
@@ -20,41 +20,18 @@ module RestCore::Facebook::DefaultAttributes
|
|
20
20
|
end
|
21
21
|
|
22
22
|
module RestCore::Facebook::RailsUtil
|
23
|
-
|
24
|
-
RestCore::Config.load_for_rails(RestCore::Facebook, 'facebook', app)
|
25
|
-
end
|
26
|
-
|
27
|
-
module Helper
|
28
|
-
def rc_facebook
|
29
|
-
controller.send(:rc_facebook)
|
30
|
-
end
|
31
|
-
end
|
23
|
+
include RestCore::RailsUtilUtil
|
32
24
|
|
33
25
|
def self.included controller
|
34
26
|
# skip if included already, any better way to detect this?
|
35
27
|
return if controller.respond_to?(:rc_facebook, true)
|
36
|
-
|
28
|
+
super
|
37
29
|
controller.rescue_from(RestCore::Facebook::Error::AccessToken,
|
38
30
|
:with => :rc_facebook_on_access_token_error)
|
39
|
-
controller.helper(RestCore::Facebook::RailsUtil::Helper)
|
40
|
-
controller.instance_methods.select{ |method|
|
41
|
-
method.to_s =~ /^rc_facebook/
|
42
|
-
}.each{ |method| controller.send(:protected, method) }
|
43
31
|
end
|
44
32
|
|
45
33
|
def rc_facebook_setup options={}
|
46
|
-
|
47
|
-
RestCore::RailsUtilUtil.extract_options(
|
48
|
-
RestCore::Facebook.members, options, :reject))
|
49
|
-
rc_facebook_options_new.merge!(
|
50
|
-
RestCore::RailsUtilUtil.extract_options(
|
51
|
-
RestCore::Facebook.members, options, :select))
|
52
|
-
|
53
|
-
# we'll need to reinitialize rc_facebook with the new options,
|
54
|
-
# otherwise if you're calling rc_facebook before rc_facebook_setup,
|
55
|
-
# you'll end up with default options without the ones you've passed
|
56
|
-
# into rc_facebook_setup.
|
57
|
-
rc_facebook.send(:initialize, rc_facebook_options_new)
|
34
|
+
super
|
58
35
|
|
59
36
|
rc_facebook_check_params_signed_request # canvas
|
60
37
|
rc_facebook_check_params_session # i think it would be deprecated
|
@@ -69,7 +46,9 @@ module RestCore::Facebook::RailsUtil
|
|
69
46
|
|
70
47
|
rc_facebook_check_rg_fbs # check rc_facebook storage
|
71
48
|
|
72
|
-
if
|
49
|
+
if rc_options_get(RestCore::Facebook, :ensure_authorized) &&
|
50
|
+
!rc_facebook.authorized?
|
51
|
+
|
73
52
|
rc_facebook_authorize('ensure authorized')
|
74
53
|
false # action halt, redirect to do authorize,
|
75
54
|
# eagerly, as opposed to auto_authorize
|
@@ -78,11 +57,6 @@ module RestCore::Facebook::RailsUtil
|
|
78
57
|
end
|
79
58
|
end
|
80
59
|
|
81
|
-
# override this if you need different app_id and secret
|
82
|
-
def rc_facebook
|
83
|
-
@rc_facebook ||= RestCore::Facebook.new(rc_facebook_options_new)
|
84
|
-
end
|
85
|
-
|
86
60
|
def rc_facebook_on_access_token_error error=nil
|
87
61
|
rc_facebook_authorize(error, false)
|
88
62
|
end
|
@@ -93,8 +67,9 @@ module RestCore::Facebook::RailsUtil
|
|
93
67
|
if force_redirect || rc_facebook_auto_authorize?
|
94
68
|
@rc_facebook_authorize_url = rc_facebook.authorize_url(
|
95
69
|
{:redirect_uri => rc_facebook_normalized_request_uri,
|
96
|
-
:scope =>
|
97
|
-
|
70
|
+
:scope =>
|
71
|
+
rc_options_get(RestCore::Facebook, :auto_authorize_scope)}.
|
72
|
+
merge(rc_options_get(RestCore::Facebook, :auto_authorize_options)))
|
98
73
|
|
99
74
|
logger.debug(
|
100
75
|
"DEBUG: Facebook: redirect to #{@rc_facebook_authorize_url}")
|
@@ -146,26 +121,6 @@ module RestCore::Facebook::RailsUtil
|
|
146
121
|
HTML
|
147
122
|
end
|
148
123
|
|
149
|
-
module_function
|
150
|
-
|
151
|
-
# ==================== begin options utility =======================
|
152
|
-
def rc_facebook_oget key
|
153
|
-
if rc_facebook_options_ctl.has_key?(key)
|
154
|
-
rc_facebook_options_ctl[key]
|
155
|
-
else
|
156
|
-
RestCore::Facebook.send("default_#{key}")
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
def rc_facebook_options_ctl
|
161
|
-
@rc_facebook_options_ctl ||= {}
|
162
|
-
end
|
163
|
-
|
164
|
-
def rc_facebook_options_new
|
165
|
-
@rc_facebook_options_new ||= {}
|
166
|
-
end
|
167
|
-
# ==================== end options utility =======================
|
168
|
-
|
169
124
|
|
170
125
|
|
171
126
|
# ==================== begin facebook check ======================
|
@@ -235,7 +190,7 @@ module RestCore::Facebook::RailsUtil
|
|
235
190
|
|
236
191
|
# ==================== begin check ================================
|
237
192
|
def rc_facebook_storage_key
|
238
|
-
"rc_facebook_fbs_#{
|
193
|
+
"rc_facebook_fbs_#{rc_options_get(RestCore::Facebook, :app_id)}"
|
239
194
|
end
|
240
195
|
|
241
196
|
def rc_facebook_check_rg_fbs
|
@@ -244,7 +199,9 @@ module RestCore::Facebook::RailsUtil
|
|
244
199
|
rc_facebook_check_rg_cookies # in canvas, session might not work..
|
245
200
|
end
|
246
201
|
|
247
|
-
def rc_facebook_check_rg_handler handler=
|
202
|
+
def rc_facebook_check_rg_handler handler=
|
203
|
+
rc_options_get(RestCore::Facebook, :check_handler)
|
204
|
+
|
248
205
|
return if rc_facebook.authorized? || !handler
|
249
206
|
rc_facebook.parse_fbs!(handler.call)
|
250
207
|
logger.debug("DEBUG: Facebook: called check_handler, parsed:" \
|
@@ -252,16 +209,20 @@ module RestCore::Facebook::RailsUtil
|
|
252
209
|
end
|
253
210
|
|
254
211
|
def rc_facebook_check_rg_session
|
255
|
-
return if rc_facebook.authorized?
|
212
|
+
return if rc_facebook.authorized? ||
|
213
|
+
!rc_options_get(RestCore::Facebook, :write_session) ||
|
256
214
|
!(fbs = session[rc_facebook_storage_key])
|
215
|
+
|
257
216
|
rc_facebook.parse_fbs!(fbs)
|
258
217
|
logger.debug("DEBUG: Facebook: detected rc_facebook session, parsed:" \
|
259
218
|
" #{rc_facebook.data.inspect}")
|
260
219
|
end
|
261
220
|
|
262
221
|
def rc_facebook_check_rg_cookies
|
263
|
-
return if rc_facebook.authorized?
|
222
|
+
return if rc_facebook.authorized? ||
|
223
|
+
!rc_options_get(RestCore::Facebook, :write_cookies) ||
|
264
224
|
!(fbs = cookies[rc_facebook_storage_key])
|
225
|
+
|
265
226
|
rc_facebook.parse_fbs!(fbs)
|
266
227
|
logger.debug("DEBUG: Facebook: detected rc_facebook cookies, parsed:" \
|
267
228
|
" #{rc_facebook.data.inspect}")
|
@@ -282,13 +243,13 @@ module RestCore::Facebook::RailsUtil
|
|
282
243
|
end
|
283
244
|
|
284
245
|
def rc_facebook_write_rg_session
|
285
|
-
return if !
|
246
|
+
return if !rc_options_get(RestCore::Facebook, :write_session)
|
286
247
|
session[rc_facebook_storage_key] = fbs = rc_facebook.fbs
|
287
248
|
logger.debug("DEBUG: Facebook: wrote session: fbs => #{fbs}")
|
288
249
|
end
|
289
250
|
|
290
251
|
def rc_facebook_write_rg_cookies
|
291
|
-
return if !
|
252
|
+
return if !rc_options_get(RestCore::Facebook, :write_cookies)
|
292
253
|
cookies[rc_facebook_storage_key] = fbs = rc_facebook.fbs
|
293
254
|
logger.debug("DEBUG: Facebook: wrote cookies: fbs => #{fbs}")
|
294
255
|
end
|
@@ -300,7 +261,8 @@ module RestCore::Facebook::RailsUtil
|
|
300
261
|
def rc_facebook_normalized_request_uri
|
301
262
|
uri = if rc_facebook_in_canvas?
|
302
263
|
# rails 3 uses newer rack which has fullpath
|
303
|
-
"http://apps.facebook.com/#{
|
264
|
+
"http://apps.facebook.com/#{
|
265
|
+
rc_options_get(RestCore::Facebook, :canvas)}" +
|
304
266
|
(request.respond_to?(:fullpath) ?
|
305
267
|
request.fullpath : request.request_uri)
|
306
268
|
else
|
@@ -320,13 +282,14 @@ module RestCore::Facebook::RailsUtil
|
|
320
282
|
end
|
321
283
|
|
322
284
|
def rc_facebook_in_canvas?
|
323
|
-
!
|
285
|
+
!rc_options_get(RestCore::Facebook, :canvas).blank?
|
324
286
|
end
|
325
287
|
|
326
288
|
def rc_facebook_auto_authorize?
|
327
|
-
|
328
|
-
!
|
329
|
-
|
289
|
+
client = RestCore::Facebook
|
290
|
+
!rc_options_get(client, :auto_authorize_scope) .blank? ||
|
291
|
+
!rc_options_get(client, :auto_authorize_options).blank? ||
|
292
|
+
rc_options_get(client, :auto_authorize)
|
330
293
|
end
|
331
294
|
# ==================== end misc ================================
|
332
295
|
end
|
@@ -3,7 +3,7 @@ require 'rest-core'
|
|
3
3
|
|
4
4
|
require 'time' # for Time.parse
|
5
5
|
|
6
|
-
RestCore::Flurry = RestCore::Builder.client(:
|
6
|
+
RestCore::Flurry = RestCore::Builder.client(:apiKey, :apiAccessCode) do
|
7
7
|
s = self.class # this is only for ruby 1.8!
|
8
8
|
use s::Timeout , 10
|
9
9
|
|
@@ -81,8 +81,8 @@ module RestCore::Flurry::Client
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def query
|
84
|
-
{'apiKey' =>
|
85
|
-
'apiAccessCode' =>
|
84
|
+
{'apiKey' => apiKey ,
|
85
|
+
'apiAccessCode' => apiAccessCode}
|
86
86
|
end
|
87
87
|
|
88
88
|
private
|
@@ -2,73 +2,12 @@
|
|
2
2
|
require 'rest-core/util/rails_util_util'
|
3
3
|
|
4
4
|
module RestCore::Flurry::DefaultAttributes
|
5
|
-
def default_log_method
|
6
|
-
def default_cache
|
7
|
-
def default_api_key ; nil ; end
|
8
|
-
def default_access_code; nil ; end
|
5
|
+
def default_log_method; Rails.logger.method(:debug); end
|
6
|
+
def default_cache ; Rails.cache ; end
|
9
7
|
end
|
10
8
|
|
11
9
|
module RestCore::Flurry::RailsUtil
|
12
|
-
|
13
|
-
RestCore::Config.load_for_rails(RestCore::Flurry, 'flurry', app)
|
14
|
-
end
|
15
|
-
|
16
|
-
module Helper
|
17
|
-
def rc_flurry
|
18
|
-
controller.send(:rc_flurry)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.included controller
|
23
|
-
# skip if included already, any better way to detect this?
|
24
|
-
return if controller.respond_to?(:rc_flurry, true)
|
25
|
-
|
26
|
-
controller.helper(RestCore::Flurry::RailsUtil::Helper)
|
27
|
-
controller.instance_methods.select{ |method|
|
28
|
-
method.to_s =~ /^rc_flurry/
|
29
|
-
}.each{ |method| controller.send(:protected, method) }
|
30
|
-
end
|
31
|
-
|
32
|
-
def rc_flurry_setup options={}
|
33
|
-
rc_flurry_options_ctl.merge!(
|
34
|
-
RestCore::RailsUtilUtil.extract_options(
|
35
|
-
RestCore::Flurry.members, options, :reject))
|
36
|
-
rc_flurry_options_new.merge!(
|
37
|
-
RestCore::RailsUtilUtil.extract_options(
|
38
|
-
RestCore::Flurry.members, options, :select))
|
39
|
-
|
40
|
-
# we'll need to reinitialize rc_flurry with the new options,
|
41
|
-
# otherwise if you're calling rc_flurry before rc_flurry_setup,
|
42
|
-
# you'll end up with default options without the ones you've passed
|
43
|
-
# into rc_flurry_setup.
|
44
|
-
rc_flurry.send(:initialize, rc_flurry_options_new)
|
45
|
-
|
46
|
-
true # keep going
|
47
|
-
end
|
48
|
-
|
49
|
-
def rc_flurry
|
50
|
-
@rc_flurry ||= RestCore::Flurry.new(rc_flurry_options_new)
|
51
|
-
end
|
52
|
-
|
53
|
-
module_function
|
54
|
-
|
55
|
-
# ==================== begin options utility =======================
|
56
|
-
def rc_flurry_oget key
|
57
|
-
if rc_flurry_options_ctl.has_key?(key)
|
58
|
-
rc_flurry_options_ctl[key]
|
59
|
-
else
|
60
|
-
RestCore::Flurry.send("default_#{key}")
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def rc_flurry_options_ctl
|
65
|
-
@rc_flurry_options_ctl ||= {}
|
66
|
-
end
|
67
|
-
|
68
|
-
def rc_flurry_options_new
|
69
|
-
@rc_flurry_options_new ||= {}
|
70
|
-
end
|
71
|
-
# ==================== end options utility =======================
|
10
|
+
include RestCore::RailsUtilUtil
|
72
11
|
end
|
73
12
|
|
74
13
|
RestCore::Flurry::RailsUtil.init(Rails)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
require 'rest-core/util/rails_util_util'
|
3
|
+
|
4
|
+
module RestCore::Github::DefaultAttributes
|
5
|
+
def default_log_method; Rails.logger.method(:debug); end
|
6
|
+
def default_cache ; Rails.cache ; end
|
7
|
+
end
|
8
|
+
|
9
|
+
module RestCore::Github::RailsUtil
|
10
|
+
include RestCore::RailsUtilUtil
|
11
|
+
end
|
12
|
+
|
13
|
+
RestCore::Github::RailsUtil.init(Rails)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
require 'rest-core/util/rails_util_util'
|
3
|
+
|
4
|
+
module RestCore::Linkedin::DefaultAttributes
|
5
|
+
def default_log_method; Rails.logger.method(:debug); end
|
6
|
+
def default_cache ; Rails.cache ; end
|
7
|
+
end
|
8
|
+
|
9
|
+
module RestCore::Linkedin::RailsUtil
|
10
|
+
include RestCore::RailsUtilUtil
|
11
|
+
end
|
12
|
+
|
13
|
+
RestCore::Linkedin::RailsUtil.init(Rails)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
require 'rest-core/util/rails_util_util'
|
3
|
+
|
4
|
+
module RestCore::Mixi::DefaultAttributes
|
5
|
+
def default_log_method; Rails.logger.method(:debug); end
|
6
|
+
def default_cache ; Rails.cache ; end
|
7
|
+
end
|
8
|
+
|
9
|
+
module RestCore::Mixi::RailsUtil
|
10
|
+
include RestCore::RailsUtilUtil
|
11
|
+
end
|
12
|
+
|
13
|
+
RestCore::Mixi::RailsUtil.init(Rails)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
require 'rest-core/util/rails_util_util'
|
3
|
+
|
4
|
+
module RestCore::Twitter::DefaultAttributes
|
5
|
+
def default_log_method; Rails.logger.method(:debug); end
|
6
|
+
def default_cache ; Rails.cache ; end
|
7
|
+
end
|
8
|
+
|
9
|
+
module RestCore::Twitter::RailsUtil
|
10
|
+
include RestCore::RailsUtilUtil
|
11
|
+
end
|
12
|
+
|
13
|
+
RestCore::Twitter::RailsUtil.init(Rails)
|
@@ -8,11 +8,118 @@ module RestCore::RailsUtilUtil
|
|
8
8
|
options={}; write(key, value, options); end
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
module InstanceMethod
|
12
|
+
module_function # to mark below private in controllers
|
13
|
+
def rc_setup client, options={}
|
14
|
+
rc_options_ctl(client).merge!(
|
15
|
+
rc_options_extract(client.members, options, :reject))
|
16
|
+
|
17
|
+
rc_options_new(client).merge!(
|
18
|
+
rc_options_extract(client.members, options, :select))
|
19
|
+
end
|
20
|
+
|
21
|
+
def rc_options_get client, key
|
22
|
+
if rc_options_ctl(client).has_key?(key)
|
23
|
+
rc_options_ctl(client)[key]
|
24
|
+
else
|
25
|
+
client.send("default_#{key}")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def rc_options_ctl client
|
30
|
+
@rc_options_ctl ||= {}
|
31
|
+
@rc_options_ctl[client.name] ||= {}
|
32
|
+
end
|
33
|
+
|
34
|
+
def rc_options_new client
|
35
|
+
@rc_options_new ||= {}
|
36
|
+
@rc_options_new[client.name] ||= {}
|
37
|
+
end
|
38
|
+
|
39
|
+
def rc_options_extract members, options, method
|
40
|
+
# Hash[] is for ruby 1.8.7
|
41
|
+
# map(&:to_sym) is for ruby 1.8.7
|
42
|
+
Hash[options.send(method){ |(k, v)| members.map(&:to_sym).member?(k) }]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.included rails_util, name=rails_util.name[/(\w+)::\w+$/, 1]
|
47
|
+
extend_rails_util(rails_util, name)
|
48
|
+
include_rails_util(rails_util, name)
|
49
|
+
setup_helper(rails_util, name)
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.extend_rails_util rails_util, name
|
53
|
+
meth = name.downcase
|
54
|
+
mod = if rails_util.const_defined?(:ClassMethod)
|
55
|
+
rails_util.const_get(:ClassMethod)
|
56
|
+
else
|
57
|
+
Module.new
|
58
|
+
end
|
59
|
+
mod.module_eval(<<-RUBY, __FILE__, __LINE__)
|
60
|
+
def init app=Rails
|
61
|
+
RestCore::Config.load_for_rails(RestCore::#{name}, '#{meth}', app)
|
62
|
+
end
|
63
|
+
|
64
|
+
def included controller
|
65
|
+
# skip if included already, any better way to detect this?
|
66
|
+
return if controller.private_instance_methods.include?(:rc_#{meth})
|
67
|
+
|
68
|
+
controller.send(:include, RestCore::RailsUtilUtil::InstanceMethod)
|
69
|
+
|
70
|
+
controller.helper(RestCore::#{name}::RailsUtil::Helper)
|
71
|
+
controller.instance_methods.select{ |method|
|
72
|
+
method.to_s =~ /^rc_#{meth}/
|
73
|
+
}.each{ |method| controller.send(:private, method) }
|
74
|
+
end
|
75
|
+
RUBY
|
76
|
+
rails_util.send(:extend, mod)
|
77
|
+
rails_util.const_set(:ClassMethod, mod)
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.include_rails_util rails_util, name
|
81
|
+
meth = name.downcase
|
82
|
+
mod = if rails_util.const_defined?(:InstanceMethod)
|
83
|
+
rails_util.const_get(:InstanceMethod)
|
84
|
+
else
|
85
|
+
Module.new
|
86
|
+
end
|
87
|
+
mod.module_eval(<<-RUBY, __FILE__, __LINE__)
|
88
|
+
def rc_#{meth}
|
89
|
+
client = RestCore::#{name}
|
90
|
+
@rc_#{meth} ||= client.new(rc_options_new(client))
|
91
|
+
end
|
92
|
+
|
93
|
+
def rc_#{meth}_setup options={}
|
94
|
+
client = RestCore::#{name}
|
95
|
+
rc_setup(client, options)
|
96
|
+
|
97
|
+
# we'll need to reinitialize rc_#{meth} with the new options,
|
98
|
+
# otherwise if you're calling rc_#{meth} before rc_#{meth}_setup,
|
99
|
+
# you'll end up with default options without the ones you've passed
|
100
|
+
# into rc_#{meth}_setup.
|
101
|
+
rc_#{meth}.send(:initialize, rc_options_new(client))
|
102
|
+
|
103
|
+
true # keep going
|
104
|
+
end
|
105
|
+
RUBY
|
106
|
+
rails_util.send(:include, mod)
|
107
|
+
rails_util.const_set(:InstanceMethod, mod)
|
108
|
+
end
|
109
|
+
|
110
|
+
def self.setup_helper rails_util, name
|
111
|
+
meth = name.downcase
|
112
|
+
mod = if rails_util.const_defined?(:Helper)
|
113
|
+
rails_util.const_get(:Helper)
|
114
|
+
else
|
115
|
+
Module.new
|
116
|
+
end
|
117
|
+
mod.module_eval(<<-RUBY, __FILE__, __LINE__)
|
118
|
+
def rc_#{meth}
|
119
|
+
controller.send(:rc_#{meth})
|
120
|
+
end
|
121
|
+
RUBY
|
122
|
+
rails_util.const_set(:Helper, mod)
|
16
123
|
end
|
17
124
|
end
|
18
125
|
|