benry-cmdapp 0.1.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/CHANGES.md +8 -0
- data/MIT-LICENSE +21 -0
- data/README.md +2475 -0
- data/benry-cmdapp.gemspec +38 -0
- data/doc/benry-cmdapp.html +2314 -0
- data/doc/css/style.css +168 -0
- data/lib/benry/cmdapp.rb +1376 -0
- data/test/action_test.rb +1038 -0
- data/test/app_test.rb +1371 -0
- data/test/func_test.rb +137 -0
- data/test/help_test.rb +755 -0
- data/test/index_test.rb +185 -0
- data/test/run_all.rb +7 -0
- data/test/shared.rb +75 -0
- data/test/util_test.rb +189 -0
- metadata +98 -0
data/test/func_test.rb
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'oktest'
|
4
|
+
|
5
|
+
require 'benry/cmdapp'
|
6
|
+
require_relative './shared'
|
7
|
+
|
8
|
+
|
9
|
+
Oktest.scope do
|
10
|
+
|
11
|
+
|
12
|
+
topic Benry::CmdApp do
|
13
|
+
|
14
|
+
|
15
|
+
topic '.delete_action()' do
|
16
|
+
|
17
|
+
spec "[!era7d] deletes action." do
|
18
|
+
class DeleteAction2Test < Benry::CmdApp::ActionScope
|
19
|
+
@action.("test")
|
20
|
+
def delaction2(); end
|
21
|
+
end
|
22
|
+
#
|
23
|
+
pr = proc {
|
24
|
+
class DeleteAction2Test
|
25
|
+
@action.("test")
|
26
|
+
def delaction2(); end
|
27
|
+
end
|
28
|
+
}
|
29
|
+
ok {pr}.raise?(Benry::CmdApp::ActionDefError,
|
30
|
+
"def delaction2(): Action 'delaction2' already exist.")
|
31
|
+
#
|
32
|
+
Benry::CmdApp.delete_action("delaction2")
|
33
|
+
ok {pr}.NOT.raise?(Exception)
|
34
|
+
end
|
35
|
+
|
36
|
+
spec "[!ifaj1] raises error if action not exist." do
|
37
|
+
pr = proc { Benry::CmdApp.delete_action("delaction91") }
|
38
|
+
ok {pr}.raise?(Benry::CmdApp::ActionNotFoundError,
|
39
|
+
"delete_action(\"delaction91\"): Action not found.")
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
topic '.delete_alias()' do
|
46
|
+
|
47
|
+
spec "[!9g0x9] deletes alias." do
|
48
|
+
class DeleteAlias2Test < Benry::CmdApp::ActionScope
|
49
|
+
@action.("test")
|
50
|
+
def delalias2(); end
|
51
|
+
end
|
52
|
+
Benry::CmdApp.action_alias("delali2", "delalias2")
|
53
|
+
#
|
54
|
+
pr = proc {
|
55
|
+
Benry::CmdApp.action_alias("delali2", "delalias2")
|
56
|
+
}
|
57
|
+
ok {pr}.raise?(Benry::CmdApp::AliasDefError,
|
58
|
+
"action_alias(\"delali2\", \"delalias2\"): Alias name duplicated.")
|
59
|
+
#
|
60
|
+
Benry::CmdApp.delete_alias("delali2")
|
61
|
+
ok {pr}.NOT.raise?(Exception)
|
62
|
+
end
|
63
|
+
|
64
|
+
spec "[!r49vi] raises error if alias not exist." do
|
65
|
+
pr = proc { Benry::CmdApp.delete_alias("delalias91") }
|
66
|
+
ok {pr}.raise?(Benry::CmdApp::ActionNotFoundError,
|
67
|
+
"delete_alias(\"delalias91\"): Alias not found.")
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
topic '.action_alias()' do
|
74
|
+
|
75
|
+
class Alias1Test < Benry::CmdApp::ActionScope
|
76
|
+
prefix "alias1"
|
77
|
+
@action.("alias test")
|
78
|
+
def a1(); end
|
79
|
+
@action.("alias test")
|
80
|
+
def a2(); end
|
81
|
+
end
|
82
|
+
|
83
|
+
spec "[!vzlrb] registers alias name with action name." do
|
84
|
+
Benry::CmdApp.action_alias("a4", "alias1:a1")
|
85
|
+
ok {Benry::CmdApp::INDEX.alias_exist?("a4")} == true
|
86
|
+
ok {Benry::CmdApp::INDEX.get_alias("a4").alias_name} == "a4"
|
87
|
+
ok {Benry::CmdApp::INDEX.get_alias("a4").action_name} == "alias1:a1"
|
88
|
+
end
|
89
|
+
|
90
|
+
spec "[!0cq6o] supports args." do
|
91
|
+
Benry::CmdApp.action_alias("a8", "alias1:a1", "Alice", "-l", "it")
|
92
|
+
ok {Benry::CmdApp::INDEX.alias_exist?("a8")} == true
|
93
|
+
ok {Benry::CmdApp::INDEX.get_alias("a8").alias_name} == "a8"
|
94
|
+
ok {Benry::CmdApp::INDEX.get_alias("a8").action_name} == "alias1:a1"
|
95
|
+
ok {Benry::CmdApp::INDEX.get_alias("a8").args} == ["Alice", "-l", "it"]
|
96
|
+
end
|
97
|
+
|
98
|
+
spec "[!4wtxj] supports 'tag:' keyword arg." do
|
99
|
+
Benry::CmdApp.action_alias("a7", "alias1:a1", tag: :important)
|
100
|
+
ok {Benry::CmdApp::INDEX.alias_exist?("a7")} == true
|
101
|
+
ok {Benry::CmdApp::INDEX.get_alias("a7").action_name} == "alias1:a1"
|
102
|
+
ok {Benry::CmdApp::INDEX.get_alias("a7").tag} == :important
|
103
|
+
end
|
104
|
+
|
105
|
+
spec "[!5immb] convers both alias name and action name into string." do
|
106
|
+
Benry::CmdApp.action_alias(:a5, :'alias1:a2')
|
107
|
+
ok {Benry::CmdApp::INDEX.alias_exist?("a5")} == true
|
108
|
+
ok {Benry::CmdApp::INDEX.get_alias("a5").alias_name} == "a5"
|
109
|
+
ok {Benry::CmdApp::INDEX.get_alias("a5").action_name} == "alias1:a2"
|
110
|
+
end
|
111
|
+
|
112
|
+
spec "[!nrz3d] error if action not found." do
|
113
|
+
pr = proc { Benry::CmdApp.action_alias(:a5, :'alias1:a5') }
|
114
|
+
ok {pr}.raise?(Benry::CmdApp::AliasDefError,
|
115
|
+
"action_alias(:a5, :\"alias1:a5\"): Action not found.")
|
116
|
+
end
|
117
|
+
|
118
|
+
spec "[!vvmwd] error when action with same name as alias exists." do
|
119
|
+
pr = proc { Benry::CmdApp.action_alias(:'alias1:a2', :'alias1:a1') }
|
120
|
+
ok {pr}.raise?(Benry::CmdApp::AliasDefError,
|
121
|
+
"action_alias(:\"alias1:a2\", :\"alias1:a1\"): Not allowed to define same name alias as existing action.")
|
122
|
+
end
|
123
|
+
|
124
|
+
spec "[!i9726] error if alias already defined." do
|
125
|
+
pr1 = proc { Benry::CmdApp.action_alias(:'a6', :'alias1:a1') }
|
126
|
+
pr2 = proc { Benry::CmdApp.action_alias(:'a6', :'alias1:a2') }
|
127
|
+
ok {pr1}.NOT.raise?(Exception)
|
128
|
+
ok {pr2}.raise?(Benry::CmdApp::AliasDefError,
|
129
|
+
"action_alias(:a6, :\"alias1:a2\"): Alias name duplicated.")
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
end
|