Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
116df09c
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
116df09c
编写于
1月 13, 2010
作者:
J
José Valim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add notifications to ActiveResource.
上级
7c3573f3
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
68 addition
and
10 deletion
+68
-10
activeresource/lib/active_resource/connection.rb
activeresource/lib/active_resource/connection.rb
+4
-9
activeresource/lib/active_resource/railtie.rb
activeresource/lib/active_resource/railtie.rb
+10
-1
activeresource/lib/active_resource/railties/subscriber.rb
activeresource/lib/active_resource/railties/subscriber.rb
+15
-0
activeresource/test/cases/subscriber_test.rb
activeresource/test/cases/subscriber_test.rb
+39
-0
未找到文件。
activeresource/lib/active_resource/connection.rb
浏览文件 @
116df09c
...
...
@@ -103,14 +103,13 @@ def head(path, headers = {})
with_auth
{
request
(
:head
,
path
,
build_request_headers
(
headers
,
:head
,
self
.
site
.
merge
(
path
)))
}
end
private
# Makes a request to the remote service.
def
request
(
method
,
path
,
*
arguments
)
logger
.
info
"
#{
method
.
to_s
.
upcase
}
#{
site
.
scheme
}
://
#{
site
.
host
}
:
#{
site
.
port
}#{
path
}
"
if
logger
result
=
nil
ms
=
Benchmark
.
ms
{
result
=
http
.
send
(
method
,
path
,
*
arguments
)
}
logger
.
info
"--> %d %s (%d %.0fms)"
%
[
result
.
code
,
result
.
message
,
result
.
body
?
result
.
body
.
length
:
0
,
ms
]
if
logger
result
=
ActiveSupport
::
Notifications
.
instrument!
(
"active_resource.request"
,
:method
=>
method
,
:path
=>
path
,
:site
=>
site
)
do
http
.
send
(
method
,
path
,
*
arguments
)
end
handle_response
(
result
)
rescue
Timeout
::
Error
=>
e
raise
TimeoutError
.
new
(
e
.
message
)
...
...
@@ -274,10 +273,6 @@ def http_format_header(http_method)
{
HTTP_FORMAT_HEADER_NAMES
[
http_method
]
=>
format
.
mime_type
}
end
def
logger
#:nodoc:
Base
.
logger
end
def
legitimize_auth_type
(
auth_type
)
return
:basic
if
auth_type
.
nil?
auth_type
=
auth_type
.
to_sym
...
...
activeresource/lib/active_resource/railtie.rb
浏览文件 @
116df09c
require
"active_resource"
require
"rails"
\ No newline at end of file
require
"rails"
module
ActiveResource
class
Railtie
<
Rails
::
Railtie
plugin_name
:active_resource
require
"active_resource/railties/subscriber"
subscriber
ActiveResource
::
Railties
::
Subscriber
.
new
end
end
\ No newline at end of file
activeresource/lib/active_resource/railties/subscriber.rb
0 → 100644
浏览文件 @
116df09c
module
ActiveResource
module
Railties
class
Subscriber
<
Rails
::
Subscriber
def
request
(
event
)
result
,
site
=
event
.
payload
[
:result
],
event
.
payload
[
:site
]
info
"
#{
event
.
payload
[
:method
].
to_s
.
upcase
}
#{
site
.
scheme
}
://
#{
site
.
host
}
:
#{
site
.
port
}#{
event
.
payload
[
:path
]
}
"
info
"--> %d %s %d (%.1fms)"
%
[
result
.
code
,
result
.
message
,
result
.
body
.
to_s
.
length
,
event
.
duration
]
end
def
logger
ActiveResource
::
Base
.
logger
end
end
end
end
\ No newline at end of file
activeresource/test/cases/subscriber_test.rb
0 → 100644
浏览文件 @
116df09c
require
"abstract_unit"
require
"fixtures/person"
require
"rails/subscriber/test_helper"
require
"active_resource/railties/subscriber"
module
SubscriberTest
Rails
::
Subscriber
.
add
(
:active_resource
,
ActiveResource
::
Railties
::
Subscriber
.
new
)
def
setup
@matz
=
{
:id
=>
1
,
:name
=>
'Matz'
}.
to_xml
(
:root
=>
'person'
)
ActiveResource
::
HttpMock
.
respond_to
do
|
mock
|
mock
.
get
"/people/1.xml"
,
{},
@matz
end
super
end
def
set_logger
(
logger
)
ActiveResource
::
Base
.
logger
=
logger
end
def
test_request_notification
matz
=
Person
.
find
(
1
)
wait
assert_equal
2
,
@logger
.
logged
(
:info
).
size
assert_equal
"GET http://somewhere.else:80/people/1.xml"
,
@logger
.
logged
(
:info
)[
0
]
assert_match
/\-\-\> 200 200 106/
,
@logger
.
logged
(
:info
)[
1
]
end
class
SyncSubscriberTest
<
ActiveSupport
::
TestCase
include
Rails
::
Subscriber
::
SyncTestHelper
include
SubscriberTest
end
class
AsyncSubscriberTest
<
ActiveSupport
::
TestCase
include
Rails
::
Subscriber
::
AsyncTestHelper
include
SubscriberTest
end
end
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录