yap-shell 0.6.0 → 0.7.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 +4 -4
- data/Gemfile.travis.lock +104 -0
- data/bin/yap +6 -0
- data/bin/yap-dev +37 -0
- data/lib/yap.rb +29 -39
- data/lib/yap/addon.rb +24 -0
- data/lib/yap/addon/base.rb +52 -0
- data/lib/yap/addon/export_as.rb +12 -0
- data/lib/yap/addon/loader.rb +84 -0
- data/lib/yap/addon/path.rb +56 -0
- data/lib/yap/addon/rc_file.rb +21 -0
- data/lib/yap/addon/reference.rb +22 -0
- data/lib/yap/cli.rb +4 -0
- data/lib/yap/cli/commands.rb +6 -0
- data/lib/yap/cli/commands/addon.rb +14 -0
- data/lib/yap/cli/commands/addon/disable.rb +35 -0
- data/lib/yap/cli/commands/addon/enable.rb +35 -0
- data/lib/yap/cli/commands/addon/list.rb +37 -0
- data/lib/yap/cli/commands/addon/search.rb +99 -0
- data/lib/yap/cli/commands/generate.rb +13 -0
- data/lib/yap/cli/commands/generate/addon.rb +258 -0
- data/lib/yap/cli/commands/generate/addonrb.template +22 -0
- data/lib/yap/cli/commands/generate/gemspec.template +25 -0
- data/lib/yap/cli/commands/generate/license.template +21 -0
- data/lib/yap/cli/commands/generate/rakefile.template +6 -0
- data/lib/yap/cli/commands/generate/readme.template +40 -0
- data/lib/yap/cli/options.rb +162 -0
- data/lib/yap/cli/options/addon.rb +64 -0
- data/lib/yap/cli/options/addon/disable.rb +62 -0
- data/lib/yap/cli/options/addon/enable.rb +63 -0
- data/lib/yap/cli/options/addon/list.rb +65 -0
- data/lib/yap/cli/options/addon/search.rb +76 -0
- data/lib/yap/cli/options/generate.rb +59 -0
- data/lib/yap/cli/options/generate/addon.rb +63 -0
- data/lib/yap/configuration.rb +10 -3
- data/lib/yap/gem_helper.rb +195 -0
- data/lib/yap/gem_tasks.rb +6 -0
- data/lib/yap/shell.rb +1 -1
- data/lib/yap/shell/repl.rb +1 -1
- data/lib/yap/shell/version.rb +1 -1
- data/lib/yap/world.rb +45 -7
- data/rcfiles/yaprc +90 -10
- data/spec/features/addons/generating_an_addon_spec.rb +55 -0
- data/spec/features/addons/using_an_addon_spec.rb +182 -0
- data/spec/features/aliases_spec.rb +6 -6
- data/spec/features/grouping_spec.rb +18 -18
- data/spec/features/line_editing_spec.rb +9 -1
- data/spec/features/redirection_spec.rb +12 -3
- data/spec/spec_helper.rb +21 -11
- data/spec/support/matchers/have_printed.rb +38 -0
- data/spec/support/yap_spec_dsl.rb +24 -6
- data/yap-shell.gemspec +6 -11
- metadata +51 -45
- data/addons/history/README.md +0 -16
- data/addons/history/history.rb +0 -58
- data/addons/history_search/history_search.rb +0 -197
- data/addons/keyboard_macros/keyboard_macros.rb +0 -425
- data/addons/keyboard_macros/lib/keyboard_macros/cycle.rb +0 -38
- data/addons/prompt/Gemfile +0 -1
- data/addons/prompt/right_prompt.rb +0 -17
- data/addons/prompt_updates/prompt_updates.rb +0 -28
- data/addons/tab_completion/Gemfile +0 -0
- data/addons/tab_completion/lib/tab_completion/basic_completion.rb +0 -151
- data/addons/tab_completion/lib/tab_completion/completer.rb +0 -62
- data/addons/tab_completion/lib/tab_completion/custom_completion.rb +0 -33
- data/addons/tab_completion/lib/tab_completion/dsl_methods.rb +0 -7
- data/addons/tab_completion/tab_completion.rb +0 -174
- data/lib/tasks/addons.rake +0 -97
- data/lib/yap/world/addons.rb +0 -181
@@ -16,7 +16,7 @@ describe 'Aliases', type: :feature do
|
|
16
16
|
it 'executes them' do
|
17
17
|
type 'foo'
|
18
18
|
enter
|
19
|
-
expect { output }.to have_printed(
|
19
|
+
expect { output }.to have_printed(/^bar$/m)
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'unsets them' do
|
@@ -41,14 +41,14 @@ describe 'Aliases', type: :feature do
|
|
41
41
|
it 'supports logical AND: &&' do
|
42
42
|
type "pass && pass"
|
43
43
|
enter
|
44
|
-
expect { output }.to have_printed(
|
44
|
+
expect { output }.to have_printed(/^pass$.*^pass$/m)
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'supports logical OR: &&' do
|
48
48
|
type "fail || pass"
|
49
49
|
enter
|
50
50
|
expect { error_output }.to have_printed(/yap: command not found: non-existent-command/m)
|
51
|
-
expect { output }.to have_printed(
|
51
|
+
expect { output }.to have_printed(/^pass$/m)
|
52
52
|
clear_all_output
|
53
53
|
|
54
54
|
type "echo $?"
|
@@ -60,19 +60,19 @@ describe 'Aliases', type: :feature do
|
|
60
60
|
type "(pass && fail) || pass"
|
61
61
|
enter
|
62
62
|
expect { error_output }.to have_printed(/yap: command not found: non-existent-command/m)
|
63
|
-
expect { output }.to have_printed(
|
63
|
+
expect { output }.to have_printed(/^pass$.*^pass$/m)
|
64
64
|
clear_all_output
|
65
65
|
|
66
66
|
type "(pass || fail) && pass"
|
67
67
|
enter
|
68
68
|
expect { error_output }.to have_not_printed(/yap: command not found: non-existent-command/m)
|
69
|
-
expect { output }.to have_printed(
|
69
|
+
expect { output }.to have_printed(/^pass$.*^pass$/m)
|
70
70
|
clear_all_output
|
71
71
|
|
72
72
|
type "(fail && pass) && pass"
|
73
73
|
enter
|
74
74
|
expect { error_output }.to have_printed(/yap: command not found: non-existent-command/m)
|
75
|
-
expect { output }.to have_not_printed(
|
75
|
+
expect { output }.to have_not_printed(/^pass$.*^pass$/m)
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
@@ -19,62 +19,62 @@ describe 'Grouping commands', type: :feature do
|
|
19
19
|
it 'works with: (command1 && command2) || command3' do
|
20
20
|
type '(./pass 1 && ./fail 2) || ./pass 3'
|
21
21
|
enter
|
22
|
-
expect { output }.to have_printed(
|
22
|
+
expect { output }.to have_printed(/^pass 1$.*^fail 2$.*^pass 3$/m)
|
23
23
|
clear_all_output
|
24
24
|
|
25
25
|
type '(./fail 1 && ./pass 2) || ./pass 3'
|
26
26
|
enter
|
27
|
-
expect { output }.to have_printed(
|
28
|
-
expect { output }.to have_not_printed(
|
27
|
+
expect { output }.to have_printed(/^fail 1$.*^pass 3$/m)
|
28
|
+
expect { output }.to have_not_printed(/^pass 2$/m)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'works with: (command1 && command2 && command3) || command4' do
|
32
32
|
type '(./pass 1 && ./fail 2 && ./pass 3) || ./pass 4'
|
33
33
|
enter
|
34
|
-
expect { output }.to have_printed(
|
35
|
-
expect { output }.to have_not_printed(
|
34
|
+
expect { output }.to have_printed(/^pass 1$.*^fail 2$.*^pass 4$/m)
|
35
|
+
expect { output }.to have_not_printed(/^pass 1$.*^fail 2$.*^pass 3$.*^pass 4$/m)
|
36
36
|
clear_all_output
|
37
37
|
|
38
38
|
type '(./fail 1 && ./pass 2 && ./pass 3) || ./pass 4'
|
39
39
|
enter
|
40
|
-
expect { output }.to have_printed(
|
41
|
-
expect { output }.to have_not_printed(
|
40
|
+
expect { output }.to have_printed(/^fail 1$.*^pass 4$/m)
|
41
|
+
expect { output }.to have_not_printed(/^pass 2$.*^pass 3$/m)
|
42
42
|
end
|
43
43
|
|
44
44
|
it 'works with: (command1 || command2) && command4' do
|
45
45
|
type '(./fail 1 || ./pass 2) && ./pass 3'
|
46
46
|
enter
|
47
|
-
expect { output }.to have_printed(
|
47
|
+
expect { output }.to have_printed(/^fail 1$.*^pass 2$.*^pass 3$/m)
|
48
48
|
|
49
49
|
type '(./pass 1 || ./fail 2) && ./pass 3'
|
50
50
|
enter
|
51
|
-
expect { output }.to have_printed(
|
52
|
-
expect { output }.to have_not_printed(
|
51
|
+
expect { output }.to have_printed(/^pass 1$.*^pass 3$/m)
|
52
|
+
expect { output }.to have_not_printed(/^fail 2$/m)
|
53
53
|
end
|
54
54
|
|
55
55
|
it 'works with: (command1 && command2) && command4' do
|
56
56
|
type '(./fail 1 && ./pass 2) && ./pass 3'
|
57
57
|
enter
|
58
|
-
expect { output }.to have_printed(
|
59
|
-
expect { output }.to have_not_printed(
|
58
|
+
expect { output }.to have_printed(/^fail 1$/m)
|
59
|
+
expect { output }.to have_not_printed(/^pass 2$.*^pass 3$/m)
|
60
60
|
clear_all_output
|
61
61
|
|
62
62
|
type '(./pass 1 && ./fail 2) && ./pass 3'
|
63
63
|
enter
|
64
|
-
expect { output }.to have_printed(
|
65
|
-
expect { output }.to have_not_printed(
|
64
|
+
expect { output }.to have_printed(/^pass 1$.*^fail 2$/m)
|
65
|
+
expect { output }.to have_not_printed(/^pass 3$/m)
|
66
66
|
end
|
67
67
|
|
68
68
|
it 'works with: (command1 || command2) || command4' do
|
69
69
|
type '(./fail 1 || ./pass 2) || ./pass 3'
|
70
70
|
enter
|
71
|
-
expect { output }.to have_printed(
|
72
|
-
expect { output }.to have_not_printed(
|
71
|
+
expect { output }.to have_printed(/^fail 1$.*^pass 2$/m)
|
72
|
+
expect { output }.to have_not_printed(/^pass 3$/m)
|
73
73
|
|
74
74
|
type '(./pass 1 || ./fail 2) || ./pass 3'
|
75
75
|
enter
|
76
|
-
expect { output }.to have_printed(
|
77
|
-
expect { output }.to have_not_printed(
|
76
|
+
expect { output }.to have_printed(/^pass 1$/m)
|
77
|
+
expect { output }.to have_not_printed(/^fail 2$.*^pass 3$/m)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -35,8 +35,12 @@ describe 'Line editing', type: :feature do
|
|
35
35
|
type 'echo hello world'
|
36
36
|
6.times { type left_arrow }
|
37
37
|
6.times { type delete }
|
38
|
+
|
39
|
+
expect { output }.to have_printed_lines('yap> echo hello')
|
40
|
+
clear_all_output(console: false)
|
41
|
+
|
38
42
|
enter
|
39
|
-
expect { output }.to
|
43
|
+
expect { output }.to have_printed_lines('hello')
|
40
44
|
expect { output }.to have_not_printed('world')
|
41
45
|
end
|
42
46
|
|
@@ -141,6 +145,10 @@ describe 'Line editing', type: :feature do
|
|
141
145
|
type ?\C-w
|
142
146
|
type ?\C-w
|
143
147
|
type 'nope'
|
148
|
+
|
149
|
+
expect { output }.to have_printed_line('yap> echo nope')
|
150
|
+
clear_all_output(console: false)
|
151
|
+
|
144
152
|
enter
|
145
153
|
expect { output }.to have_printed('nope')
|
146
154
|
expect { output }.to have_not_printed('hello world')
|
@@ -47,15 +47,19 @@ describe 'I/O Redirection', type: :feature do
|
|
47
47
|
before do
|
48
48
|
type 'echo foo > output.txt'
|
49
49
|
enter
|
50
|
+
clear_all_output
|
51
|
+
|
50
52
|
type 'cat output.txt'
|
51
53
|
enter
|
52
|
-
expect { output }.to
|
54
|
+
expect { output }.to have_printed_line('foo')
|
53
55
|
clear_all_output
|
54
56
|
end
|
55
57
|
|
56
58
|
it 'appends with: >>' do
|
57
59
|
type 'echo bar >> output.txt'
|
58
60
|
enter
|
61
|
+
clear_all_output
|
62
|
+
|
59
63
|
type 'cat output.txt'
|
60
64
|
enter
|
61
65
|
expect { output }.to have_printed(/foo.*\n.*bar/)
|
@@ -64,6 +68,8 @@ describe 'I/O Redirection', type: :feature do
|
|
64
68
|
it 'appends with: 1>>' do
|
65
69
|
type 'echo bar 1>> output.txt'
|
66
70
|
enter
|
71
|
+
clear_all_output
|
72
|
+
|
67
73
|
type 'cat output.txt'
|
68
74
|
enter
|
69
75
|
expect { output }.to have_printed(/foo.*\n.*bar/)
|
@@ -100,15 +106,18 @@ describe 'I/O Redirection', type: :feature do
|
|
100
106
|
before do
|
101
107
|
type './fail caz 2> error.txt'
|
102
108
|
enter
|
109
|
+
clear_all_output
|
110
|
+
|
103
111
|
type 'cat error.txt'
|
104
112
|
enter
|
105
|
-
expect { output }.to
|
106
|
-
clear_all_output
|
113
|
+
expect { output }.to have_printed_line('fail caz')
|
107
114
|
end
|
108
115
|
|
109
116
|
it 'appends with: 2>>' do
|
110
117
|
type './fail box 2>> error.txt'
|
111
118
|
enter
|
119
|
+
clear_all_output
|
120
|
+
|
112
121
|
type 'cat error.txt'
|
113
122
|
enter
|
114
123
|
expect { output }.to have_printed(/fail caz.*\n.*fail box/)
|
data/spec/spec_helper.rb
CHANGED
@@ -36,22 +36,27 @@ RSpec.configure do |config|
|
|
36
36
|
config.before(:all, type: :feature) do
|
37
37
|
ENV['HOME'] = tmp_dir.to_s
|
38
38
|
|
39
|
+
mkdir tmp_dir
|
40
|
+
Dir.chdir tmp_dir
|
41
|
+
|
39
42
|
set_yap_command_line_arguments \
|
40
43
|
'--no-history', '--no-addons', '--no-rcfiles', '--skip-first-time'
|
41
44
|
|
42
45
|
turn_on_debug_log(debug: 'editor')
|
43
|
-
|
44
46
|
initialize_shell
|
45
47
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
48
|
+
if self.class.metadata[:repl] == false
|
49
|
+
# no-op if the test specificaly says it doesn't use a repl
|
50
|
+
# This is likely when we're expecting yap to print information
|
51
|
+
# and exit immediately
|
52
|
+
else
|
53
|
+
type "cd #{tmp_dir}"
|
54
|
+
enter
|
55
|
+
|
56
|
+
type "pwd"
|
57
|
+
enter
|
58
|
+
expect { output }.to have_printed(File.expand_path(tmp_dir))
|
59
|
+
end
|
55
60
|
clear_all_output
|
56
61
|
end
|
57
62
|
|
@@ -64,17 +69,22 @@ RSpec.configure do |config|
|
|
64
69
|
if self.class.metadata[:forks]
|
65
70
|
# no-op because the example will cause yap to fork inside the child
|
66
71
|
# childprocess and will break the IO pipes we know about in the test
|
72
|
+
elsif self.class.metadata[:repl] == false
|
73
|
+
# no-op if the test specificaly says it doesn't use a repl
|
74
|
+
# This is likely when we're expecting yap to print information
|
75
|
+
# and exit immediately
|
67
76
|
else
|
68
77
|
enter if typed_content_awaiting_enter?
|
69
78
|
|
70
79
|
# Use yap to tell us when it's done doing whatever is was doing.
|
71
80
|
# This ensures we don'try to clean up before yap is done!
|
81
|
+
clear_all_output(console: true)
|
72
82
|
type 'echo done with this test'
|
73
83
|
enter
|
74
84
|
expect { output }.to have_printed('done with this test')
|
75
85
|
end
|
76
|
-
clear_all_output
|
77
86
|
ensure
|
87
|
+
clear_all_output(console: false)
|
78
88
|
Dir.chdir(tmp_dir) do
|
79
89
|
# remove all files including hidden but not current directory and
|
80
90
|
# parent directory
|
@@ -28,3 +28,41 @@ RSpec::Matchers.define :have_printed do |expected|
|
|
28
28
|
true
|
29
29
|
end
|
30
30
|
end
|
31
|
+
|
32
|
+
|
33
|
+
RSpec::Matchers.define :have_printed_lines do |expected|
|
34
|
+
output_seen_so_far = ""
|
35
|
+
current_line = nil
|
36
|
+
|
37
|
+
match do |block|
|
38
|
+
begin
|
39
|
+
expected.lines.each do |line|
|
40
|
+
current_line = line
|
41
|
+
regex = /#{Regexp.escape(line)}/m
|
42
|
+
very_soon do
|
43
|
+
current_output = block.call
|
44
|
+
output_seen_so_far = current_output
|
45
|
+
regex.match(current_output)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
true
|
49
|
+
rescue Timeout::Error
|
50
|
+
false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
failure_message do |actual|
|
55
|
+
if expected.is_a?(Regexp)
|
56
|
+
"expected that #{current_line.inspect} would match #{output_seen_so_far.inspect}"
|
57
|
+
else
|
58
|
+
"expected that #{current_line.inspect} would appear in #{output_seen_so_far.inspect}"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def supports_block_expectations?
|
63
|
+
true
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
RSpec::Matchers.alias_matcher :have_printed_line, :have_printed_lines
|
68
|
+
RSpec::Matchers.alias_matcher :have_line, :have_printed_lines
|
@@ -69,8 +69,7 @@ module Yap
|
|
69
69
|
# make stdin available, writable
|
70
70
|
process.duplex = true
|
71
71
|
|
72
|
-
|
73
|
-
process.cwd = File.dirname(__FILE__)
|
72
|
+
process.cwd = Dir.pwd
|
74
73
|
process.start
|
75
74
|
|
76
75
|
# make sure clean-up child processes, hang if any fail
|
@@ -110,7 +109,13 @@ module Yap
|
|
110
109
|
end
|
111
110
|
|
112
111
|
def mkdir(path)
|
113
|
-
|
112
|
+
mkdir_p path
|
113
|
+
end
|
114
|
+
|
115
|
+
def mkdir_p(path)
|
116
|
+
unless File.expand_path(path.to_s).include?(tmp_dir.to_s)
|
117
|
+
path = tmp_dir.join(path)
|
118
|
+
end
|
114
119
|
FileUtils.mkdir_p Pathname.new(path).expand_path
|
115
120
|
end
|
116
121
|
|
@@ -123,7 +128,15 @@ module Yap
|
|
123
128
|
FileUtils.rm_rf Pathname.new(path).expand_path
|
124
129
|
end
|
125
130
|
|
131
|
+
def write_file(filename, contents)
|
132
|
+
filename = tmp_dir.join(filename) unless filename.to_s.include?(tmp_dir.to_s)
|
133
|
+
file = File.new(filename, 'w+')
|
134
|
+
file.write contents
|
135
|
+
file.close
|
136
|
+
end
|
137
|
+
|
126
138
|
def write_executable_script(filename, contents)
|
139
|
+
filename = tmp_dir.join(filename) unless filename.to_s.include?(tmp_dir.to_s)
|
127
140
|
file = File.new(filename, 'w+')
|
128
141
|
file.write contents
|
129
142
|
file.chmod 0755
|
@@ -141,11 +154,10 @@ module Yap
|
|
141
154
|
def turn_on_debug_log(file: '/tmp/yap-debug.log', debug: '*')
|
142
155
|
ENV['TREEFELL_OUT'] = file
|
143
156
|
ENV['DEBUG'] = debug
|
144
|
-
reinitialize_shell
|
145
157
|
end
|
146
158
|
|
147
159
|
def set_yap_command_line_arguments(*args)
|
148
|
-
@yap_command_line_arguments = args
|
160
|
+
@yap_command_line_arguments = args.flatten
|
149
161
|
end
|
150
162
|
|
151
163
|
def yap_command_line_arguments
|
@@ -163,6 +175,7 @@ module Yap
|
|
163
175
|
|
164
176
|
def reinitialize_shell
|
165
177
|
initialize_shell
|
178
|
+
clear_all_output(console: false)
|
166
179
|
end
|
167
180
|
|
168
181
|
def shell
|
@@ -188,7 +201,12 @@ module Yap
|
|
188
201
|
shell.io.stdin.print "\r"
|
189
202
|
end
|
190
203
|
|
191
|
-
def clear_all_output
|
204
|
+
def clear_all_output(console: true)
|
205
|
+
if console
|
206
|
+
type 'echo done'
|
207
|
+
enter
|
208
|
+
expect { output }.to have_printed_line('done')
|
209
|
+
end
|
192
210
|
output_file.clear
|
193
211
|
error_output_file.clear
|
194
212
|
end
|
data/yap-shell.gemspec
CHANGED
@@ -64,21 +64,16 @@ Gem::Specification.new do |spec|
|
|
64
64
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
65
65
|
spec.require_paths = ["lib"]
|
66
66
|
|
67
|
-
spec.add_dependency "pry-byebug", "~> 3.3
|
68
|
-
spec.add_dependency "yap-shell-parser", "~> 0.7.
|
67
|
+
spec.add_dependency "pry-byebug", "~> 3.3"
|
68
|
+
spec.add_dependency "yap-shell-parser", "~> 0.7.1"
|
69
69
|
spec.add_dependency "term-ansicolor", "~> 1.3"
|
70
70
|
spec.add_dependency "ruby-termios", "~> 0.9.6"
|
71
71
|
spec.add_dependency "ruby-terminfo", "~> 0.1.1"
|
72
|
-
spec.add_dependency "yap-rawline", "~> 0.
|
73
|
-
spec.add_dependency "
|
72
|
+
spec.add_dependency "yap-rawline", "~> 0.6.2"
|
73
|
+
spec.add_dependency "chronic", "~> 0.10.2"
|
74
74
|
|
75
75
|
spec.add_development_dependency "bundler", "~> 1.6"
|
76
|
-
spec.add_development_dependency "rake", "~>
|
77
|
-
spec.add_development_dependency "rspec", "~> 3.
|
76
|
+
spec.add_development_dependency "rake", "~> 11"
|
77
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
78
78
|
spec.add_development_dependency "childprocess", "~> 0.5.9"
|
79
|
-
|
80
|
-
#--BEGIN_ADDON_GEM_DEPENDENCIES--#
|
81
|
-
spec.add_dependency "chronic", "~> 0.10.2"
|
82
|
-
# spec.add_dependency "term-ansicolor", "~> 1.3.2"
|
83
|
-
#--END_ADDON_GEM_DEPENDENCIES--#
|
84
79
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yap-shell
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zach Dennis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry-byebug
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.3
|
19
|
+
version: '3.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.3
|
26
|
+
version: '3.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: yap-shell-parser
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.7.
|
33
|
+
version: 0.7.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.7.
|
40
|
+
version: 0.7.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: term-ansicolor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,28 +86,28 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 0.6.2
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
96
|
+
version: 0.6.2
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: chronic
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.2
|
103
|
+
version: 0.10.2
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.2
|
110
|
+
version: 0.10.2
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: bundler
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,28 +128,28 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '11'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '11'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: rspec
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 3.
|
145
|
+
version: '3.0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 3.
|
152
|
+
version: '3.0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: childprocess
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,20 +164,6 @@ dependencies:
|
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: 0.5.9
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: chronic
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - "~>"
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: 0.10.2
|
174
|
-
type: :runtime
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - "~>"
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: 0.10.2
|
181
167
|
description: The Lagniappe "Yap" shell description.
|
182
168
|
email:
|
183
169
|
- zach.dennis@gmail.com
|
@@ -194,30 +180,47 @@ files:
|
|
194
180
|
- DESIGN.md
|
195
181
|
- Gemfile
|
196
182
|
- Gemfile.travis
|
183
|
+
- Gemfile.travis.lock
|
197
184
|
- LICENSE.txt
|
198
185
|
- README.md
|
199
186
|
- Rakefile
|
200
187
|
- WISHLIST.md
|
201
|
-
- addons/history/README.md
|
202
|
-
- addons/history/history.rb
|
203
|
-
- addons/history_search/history_search.rb
|
204
|
-
- addons/keyboard_macros/keyboard_macros.rb
|
205
|
-
- addons/keyboard_macros/lib/keyboard_macros/cycle.rb
|
206
|
-
- addons/prompt/Gemfile
|
207
|
-
- addons/prompt/right_prompt.rb
|
208
|
-
- addons/prompt_updates/prompt_updates.rb
|
209
|
-
- addons/tab_completion/Gemfile
|
210
|
-
- addons/tab_completion/lib/tab_completion/basic_completion.rb
|
211
|
-
- addons/tab_completion/lib/tab_completion/completer.rb
|
212
|
-
- addons/tab_completion/lib/tab_completion/custom_completion.rb
|
213
|
-
- addons/tab_completion/lib/tab_completion/dsl_methods.rb
|
214
|
-
- addons/tab_completion/tab_completion.rb
|
215
188
|
- bin/yap
|
216
189
|
- bin/yap-dev
|
217
|
-
- lib/tasks/addons.rake
|
218
190
|
- lib/tasks/gem.rake
|
219
191
|
- lib/yap.rb
|
192
|
+
- lib/yap/addon.rb
|
193
|
+
- lib/yap/addon/base.rb
|
194
|
+
- lib/yap/addon/export_as.rb
|
195
|
+
- lib/yap/addon/loader.rb
|
196
|
+
- lib/yap/addon/path.rb
|
197
|
+
- lib/yap/addon/rc_file.rb
|
198
|
+
- lib/yap/addon/reference.rb
|
199
|
+
- lib/yap/cli.rb
|
200
|
+
- lib/yap/cli/commands.rb
|
201
|
+
- lib/yap/cli/commands/addon.rb
|
202
|
+
- lib/yap/cli/commands/addon/disable.rb
|
203
|
+
- lib/yap/cli/commands/addon/enable.rb
|
204
|
+
- lib/yap/cli/commands/addon/list.rb
|
205
|
+
- lib/yap/cli/commands/addon/search.rb
|
206
|
+
- lib/yap/cli/commands/generate.rb
|
207
|
+
- lib/yap/cli/commands/generate/addon.rb
|
208
|
+
- lib/yap/cli/commands/generate/addonrb.template
|
209
|
+
- lib/yap/cli/commands/generate/gemspec.template
|
210
|
+
- lib/yap/cli/commands/generate/license.template
|
211
|
+
- lib/yap/cli/commands/generate/rakefile.template
|
212
|
+
- lib/yap/cli/commands/generate/readme.template
|
213
|
+
- lib/yap/cli/options.rb
|
214
|
+
- lib/yap/cli/options/addon.rb
|
215
|
+
- lib/yap/cli/options/addon/disable.rb
|
216
|
+
- lib/yap/cli/options/addon/enable.rb
|
217
|
+
- lib/yap/cli/options/addon/list.rb
|
218
|
+
- lib/yap/cli/options/addon/search.rb
|
219
|
+
- lib/yap/cli/options/generate.rb
|
220
|
+
- lib/yap/cli/options/generate/addon.rb
|
220
221
|
- lib/yap/configuration.rb
|
222
|
+
- lib/yap/gem_helper.rb
|
223
|
+
- lib/yap/gem_tasks.rb
|
221
224
|
- lib/yap/shell.rb
|
222
225
|
- lib/yap/shell/aliases.rb
|
223
226
|
- lib/yap/shell/builtins.rb
|
@@ -240,7 +243,6 @@ files:
|
|
240
243
|
- lib/yap/shell/repl.rb
|
241
244
|
- lib/yap/shell/version.rb
|
242
245
|
- lib/yap/world.rb
|
243
|
-
- lib/yap/world/addons.rb
|
244
246
|
- rcfiles/yaprc
|
245
247
|
- scripts/4
|
246
248
|
- scripts/bg-vim
|
@@ -251,6 +253,8 @@ files:
|
|
251
253
|
- scripts/simulate-long-running
|
252
254
|
- scripts/write-to-stderr.rb
|
253
255
|
- scripts/write-to-stdout.rb
|
256
|
+
- spec/features/addons/generating_an_addon_spec.rb
|
257
|
+
- spec/features/addons/using_an_addon_spec.rb
|
254
258
|
- spec/features/aliases_spec.rb
|
255
259
|
- spec/features/environment_variables_spec.rb
|
256
260
|
- spec/features/filesystem_commands_spec.rb
|
@@ -310,6 +314,8 @@ signing_key:
|
|
310
314
|
specification_version: 4
|
311
315
|
summary: The Lagniappe "Yap" shell.
|
312
316
|
test_files:
|
317
|
+
- spec/features/addons/generating_an_addon_spec.rb
|
318
|
+
- spec/features/addons/using_an_addon_spec.rb
|
313
319
|
- spec/features/aliases_spec.rb
|
314
320
|
- spec/features/environment_variables_spec.rb
|
315
321
|
- spec/features/filesystem_commands_spec.rb
|