Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
7e2bbe10
H
hub
项目概览
github
/
hub
12 个月 前同步成功
通知
3
Star
22523
Fork
2406
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7e2bbe10
编写于
11月 13, 2013
作者:
M
Mislav Marohnić
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'git-editor'
上级
13954a4b
87050ce9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
80 addition
and
0 deletion
+80
-0
lib/hub/context.rb
lib/hub/context.rb
+1
-0
test/context_test.rb
test/context_test.rb
+79
-0
未找到文件。
lib/hub/context.rb
浏览文件 @
7e2bbe10
...
...
@@ -437,6 +437,7 @@ module Hub
def
git_editor
# possible: ~/bin/vi, $SOME_ENVIRONMENT_VARIABLE, "C:\Program Files\Vim\gvim.exe" --nofork
editor
=
git_command
'var GIT_EDITOR'
editor
.
gsub!
(
/\$(\w+|\{\w+\})/
)
{
ENV
[
$1
.
tr
(
'{}'
,
''
)]
}
editor
=
ENV
[
$1
]
if
editor
=~
/^\$(\w+)$/
editor
=
File
.
expand_path
editor
if
(
editor
=~
/^[~.]/
or
editor
.
index
(
'/'
))
and
editor
!~
/["']/
# avoid shellsplitting "C:\Program Files"
...
...
test/context_test.rb
0 → 100644
浏览文件 @
7e2bbe10
require
'helper'
class
ContextTest
<
Test
::
Unit
::
TestCase
class
Context
include
Hub
::
Context
def
initialize
(
&
block
)
@git_reader
=
Hub
::
Context
::
GitReader
.
new
(
'git'
,
&
block
)
end
public
:git_editor
end
attr_reader
:context
def
setup
super
@stubs
=
{}
@context
=
Context
.
new
do
|
_
,
cmd
|
@stubs
.
fetch
(
cmd
)
end
end
def
test_editor
stub_command_output
'var GIT_EDITOR'
,
'vim'
assert_equal
%w'vim'
,
context
.
git_editor
end
def
test_editor_with_argument
stub_command_output
'var GIT_EDITOR'
,
'subl -w'
assert_equal
%w'subl -w'
,
context
.
git_editor
end
def
test_editor_with_spaces
stub_command_output
'var GIT_EDITOR'
,
'"my editor" -w arg2'
assert_equal
%w'my\ editor -w arg2'
,
context
.
git_editor
end
def
test_editor_with_tilde
stub_command_output
'var GIT_EDITOR'
,
'~/bin/vi'
with_env
(
'HOME'
,
'/home/mislav'
)
do
assert_equal
%w'/home/mislav/bin/vi'
,
context
.
git_editor
end
end
def
test_editor_with_env_variable
stub_command_output
'var GIT_EDITOR'
,
'$EDITOR'
with_env
(
'EDITOR'
,
'subl -w'
)
do
assert_equal
%w'subl -w'
,
context
.
git_editor
end
end
def
test_editor_with_embedded_env_variable
stub_command_output
'var GIT_EDITOR'
,
'$EDITOR -w'
with_env
(
'EDITOR'
,
'subl'
)
do
assert_equal
%w'subl -w'
,
context
.
git_editor
end
end
def
test_editor_with_curly_brackets_embedded_env_variable
stub_command_output
'var GIT_EDITOR'
,
'my${EDITOR}2 -w'
with_env
(
'EDITOR'
,
'subl'
)
do
assert_equal
%w'mysubl2 -w'
,
context
.
git_editor
end
end
private
def
stub_command_output
(
cmd
,
value
)
@stubs
[
cmd
]
=
value
.
nil?
?
nil
:
value
.
to_s
end
def
with_env
(
name
,
value
)
dir
,
ENV
[
name
]
=
ENV
[
name
],
value
yield
ensure
ENV
[
name
]
=
dir
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录