pry 0.9.9.4 → 0.9.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +5 -0
- data/lib/pry/helpers/documentation_helpers.rb +1 -1
- data/lib/pry/indent.rb +21 -9
- data/lib/pry/plugins.rb +4 -0
- data/lib/pry/version.rb +1 -1
- data/pry.gemspec +3 -3
- data/test/test_default_commands/test_documentation.rb +62 -0
- metadata +48 -15
data/CHANGELOG
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
09/05/2012 version 0.9.9.5 minor bugfix
|
2
|
+
* fixed ZeroDivisionError in correct_indentation, bug #558
|
3
|
+
* fix double highlighting in rdoc, bug #562
|
4
|
+
* autocreate configuration for plugins, bug #548
|
5
|
+
|
1
6
|
26/4/2012 version 0.9.9.4 major bugfix
|
2
7
|
* fixed `NoMethodError: undefined method `winsize' for #<IO:<STDOUT>>`, bug #549
|
3
8
|
* fixes for jruby
|
@@ -11,7 +11,7 @@ class Pry
|
|
11
11
|
gsub(/<i>(?:\s*\n)?(.*?)\s*<\/i>/m) { Pry.color ? "\e[1m#{$1}\e[0m" : $1 }.
|
12
12
|
gsub(/\B\+(\w*?)\+\B/) { Pry.color ? "\e[32m#{$1}\e[0m": $1 }.
|
13
13
|
gsub(/((?:^[ \t]+.+(?:\n+|\Z))+)/) { Pry.color ? CodeRay.scan($1, code_type).term : $1 }.
|
14
|
-
gsub(/`(?:\s*\n)?(
|
14
|
+
gsub(/`(?:\s*\n)?([^\e]*?)\s*`/) { "`#{Pry.color ? CodeRay.scan($1, code_type).term : $1}`" }
|
15
15
|
end
|
16
16
|
|
17
17
|
def process_yardoc_tag(comment, tag)
|
data/lib/pry/indent.rb
CHANGED
@@ -292,15 +292,8 @@ class Pry
|
|
292
292
|
full_line = prompt + code
|
293
293
|
whitespace = ' ' * overhang
|
294
294
|
|
295
|
-
|
296
|
-
|
297
|
-
elsif Readline.respond_to?(:get_screen_size)
|
298
|
-
_, cols = Readline.get_screen_size
|
299
|
-
elsif ENV['COLUMNS'] && ENV['COLUMNS'] != ''
|
300
|
-
cols = ENV['COLUMNS'].to_i
|
301
|
-
end
|
302
|
-
|
303
|
-
lines = cols ? (full_line.length / cols + 1) : 1
|
295
|
+
_, cols = screen_size
|
296
|
+
lines = cols && cols != 0 ? (full_line.length / cols + 1) : 1
|
304
297
|
|
305
298
|
if defined?(Win32::Console)
|
306
299
|
move_up = "\e[#{lines}F"
|
@@ -312,5 +305,24 @@ class Pry
|
|
312
305
|
|
313
306
|
"#{move_up}#{prompt}#{colorize_code(code)}#{whitespace}#{move_down}"
|
314
307
|
end
|
308
|
+
|
309
|
+
# Return a pair of [rows, columns] which gives the size of the window.
|
310
|
+
#
|
311
|
+
# If the window size cannot be determined, return nil.
|
312
|
+
def screen_size
|
313
|
+
[
|
314
|
+
# io/console adds a winsize method to IO streams.
|
315
|
+
$stdout.tty? && $stdout.respond_to?(:winsize) && $stdout.winsize,
|
316
|
+
|
317
|
+
# Some readlines also provides get_screen_size.
|
318
|
+
Readline.respond_to?(:get_screen_size) && Readline.get_screen_size,
|
319
|
+
|
320
|
+
# Otherwise try to use the environment (this may be out of date due
|
321
|
+
# to window resizing, but it better than nothing).
|
322
|
+
[ENV["ROWS"], ENV["COLUMNS"]]
|
323
|
+
].detect do |(rows, cols)|
|
324
|
+
cols.to_i > 0
|
325
|
+
end
|
326
|
+
end
|
315
327
|
end
|
316
328
|
end
|
data/lib/pry/plugins.rb
CHANGED
@@ -42,12 +42,16 @@ class Pry
|
|
42
42
|
# disabled)
|
43
43
|
# Does not reload plugin if it's already active.
|
44
44
|
def activate!
|
45
|
+
# Create the configuration object for the plugin.
|
46
|
+
Pry.config.send("#{gem_name.gsub('-', '_')}=", OpenStruct.new)
|
47
|
+
|
45
48
|
begin
|
46
49
|
require gem_name if !active?
|
47
50
|
rescue LoadError => e
|
48
51
|
warn "Warning: The plugin '#{gem_name}' was not found! (gem found but could not be loaded)"
|
49
52
|
warn e
|
50
53
|
end
|
54
|
+
|
51
55
|
self.active = true
|
52
56
|
self.enabled = true
|
53
57
|
end
|
data/lib/pry/version.rb
CHANGED
data/pry.gemspec
CHANGED
@@ -2,18 +2,18 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "pry"
|
5
|
-
s.version = "0.9.9.
|
5
|
+
s.version = "0.9.9.5"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["John Mair (banisterfiend)"]
|
9
|
-
s.date = "2012-
|
9
|
+
s.date = "2012-05-09"
|
10
10
|
s.description = "An IRB alternative and runtime developer console"
|
11
11
|
s.email = "jrmair@gmail.com"
|
12
12
|
s.executables = ["pry"]
|
13
13
|
s.files = [".document", ".gemtest", ".gitignore", ".travis.yml", ".yardopts", "CHANGELOG", "CONTRIBUTORS", "Gemfile", "LICENSE", "README.markdown", "Rakefile", "TODO", "bin/pry", "examples/example_basic.rb", "examples/example_command_override.rb", "examples/example_commands.rb", "examples/example_hooks.rb", "examples/example_image_edit.rb", "examples/example_input.rb", "examples/example_input2.rb", "examples/example_output.rb", "examples/example_print.rb", "examples/example_prompt.rb", "examples/helper.rb", "lib/pry.rb", "lib/pry/cli.rb", "lib/pry/code.rb", "lib/pry/command.rb", "lib/pry/command_set.rb", "lib/pry/commands.rb", "lib/pry/completion.rb", "lib/pry/config.rb", "lib/pry/core_extensions.rb", "lib/pry/custom_completions.rb", "lib/pry/default_commands/cd.rb", "lib/pry/default_commands/commands.rb", "lib/pry/default_commands/context.rb", "lib/pry/default_commands/easter_eggs.rb", "lib/pry/default_commands/editing.rb", "lib/pry/default_commands/find_method.rb", "lib/pry/default_commands/gems.rb", "lib/pry/default_commands/help.rb", "lib/pry/default_commands/hist.rb", "lib/pry/default_commands/input_and_output.rb", "lib/pry/default_commands/introspection.rb", "lib/pry/default_commands/ls.rb", "lib/pry/default_commands/misc.rb", "lib/pry/default_commands/navigating_pry.rb", "lib/pry/extended_commands/experimental.rb", "lib/pry/helpers.rb", "lib/pry/helpers/base_helpers.rb", "lib/pry/helpers/command_helpers.rb", "lib/pry/helpers/documentation_helpers.rb", "lib/pry/helpers/options_helpers.rb", "lib/pry/helpers/text.rb", "lib/pry/history.rb", "lib/pry/history_array.rb", "lib/pry/hooks.rb", "lib/pry/indent.rb", "lib/pry/method.rb", "lib/pry/plugins.rb", "lib/pry/pry_class.rb", "lib/pry/pry_instance.rb", "lib/pry/rbx_method.rb", "lib/pry/rbx_path.rb", "lib/pry/version.rb", "lib/pry/wrapped_module.rb", "man/pry.1", "man/pry.1.html", "man/pry.1.ronn", "pry.gemspec", "test/helper.rb", "test/test_cli.rb", "test/test_code.rb", "test/test_command.rb", "test/test_command_helpers.rb", "test/test_command_integration.rb", "test/test_command_set.rb", "test/test_completion.rb", "test/test_default_commands/test_cd.rb", "test/test_default_commands/test_context.rb", "test/test_default_commands/test_documentation.rb", "test/test_default_commands/test_find_method.rb", "test/test_default_commands/test_gems.rb", "test/test_default_commands/test_help.rb", "test/test_default_commands/test_input.rb", "test/test_default_commands/test_introspection.rb", "test/test_default_commands/test_ls.rb", "test/test_default_commands/test_shell.rb", "test/test_default_commands/test_show_source.rb", "test/test_exception_whitelist.rb", "test/test_history_array.rb", "test/test_hooks.rb", "test/test_indent.rb", "test/test_input_stack.rb", "test/test_method.rb", "test/test_pry.rb", "test/test_pry_defaults.rb", "test/test_pry_history.rb", "test/test_pry_output.rb", "test/test_sticky_locals.rb", "test/test_syntax_checking.rb", "test/test_wrapped_module.rb", "test/testrc", "test/testrcbad", "wiki/Customizing-pry.md", "wiki/Home.md"]
|
14
14
|
s.homepage = "http://pry.github.com"
|
15
15
|
s.require_paths = ["lib"]
|
16
|
-
s.rubygems_version = "1.8.
|
16
|
+
s.rubygems_version = "1.8.23"
|
17
17
|
s.summary = "An IRB alternative and runtime developer console"
|
18
18
|
s.test_files = ["test/helper.rb", "test/test_cli.rb", "test/test_code.rb", "test/test_command.rb", "test/test_command_helpers.rb", "test/test_command_integration.rb", "test/test_command_set.rb", "test/test_completion.rb", "test/test_default_commands/test_cd.rb", "test/test_default_commands/test_context.rb", "test/test_default_commands/test_documentation.rb", "test/test_default_commands/test_find_method.rb", "test/test_default_commands/test_gems.rb", "test/test_default_commands/test_help.rb", "test/test_default_commands/test_input.rb", "test/test_default_commands/test_introspection.rb", "test/test_default_commands/test_ls.rb", "test/test_default_commands/test_shell.rb", "test/test_default_commands/test_show_source.rb", "test/test_exception_whitelist.rb", "test/test_history_array.rb", "test/test_hooks.rb", "test/test_indent.rb", "test/test_input_stack.rb", "test/test_method.rb", "test/test_pry.rb", "test/test_pry_defaults.rb", "test/test_pry_history.rb", "test/test_pry_output.rb", "test/test_sticky_locals.rb", "test/test_syntax_checking.rb", "test/test_wrapped_module.rb", "test/testrc", "test/testrcbad"]
|
19
19
|
|
@@ -65,6 +65,68 @@ if !mri18_and_no_real_source_location?
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
+
describe "rdoc highlighting" do
|
69
|
+
it "should syntax highlight code in rdoc" do
|
70
|
+
c = Class.new{
|
71
|
+
# This can initialize your class:
|
72
|
+
#
|
73
|
+
# a = c.new :foo
|
74
|
+
#
|
75
|
+
# @param foo
|
76
|
+
def initialize(foo); end
|
77
|
+
}
|
78
|
+
|
79
|
+
begin
|
80
|
+
mock_pry(binding, "show-doc c#initialize").should =~ /c.new :foo/
|
81
|
+
Pry.config.color = true
|
82
|
+
# I don't want the test to rely on which colour codes are there, just to
|
83
|
+
# assert that "something" is being colourized.
|
84
|
+
mock_pry(binding, "show-doc c#initialize").should.not =~ /c.new :foo/
|
85
|
+
ensure
|
86
|
+
Pry.config.color = false
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should syntax highlight `code` in rdoc" do
|
91
|
+
c = Class.new{
|
92
|
+
# After initializing your class with `c.new(:foo)`, go have fun!
|
93
|
+
#
|
94
|
+
# @param foo
|
95
|
+
def initialize(foo); end
|
96
|
+
}
|
97
|
+
|
98
|
+
begin
|
99
|
+
mock_pry(binding, "show-doc c#initialize").should =~ /c.new\(:foo\)/
|
100
|
+
Pry.config.color = true
|
101
|
+
# I don't want the test to rely on which colour codes are there, just to
|
102
|
+
# assert that "something" is being colourized.
|
103
|
+
mock_pry(binding, "show-doc c#initialize").should.not =~ /c.new\(:foo\)/
|
104
|
+
ensure
|
105
|
+
Pry.config.color = false
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should not syntax highlight `` inside code" do
|
111
|
+
c = Class.new{
|
112
|
+
# Convert aligned output (from many shell commands) into nested arrays:
|
113
|
+
#
|
114
|
+
# a = decolumnize `ls -l $HOME`
|
115
|
+
#
|
116
|
+
# @param output
|
117
|
+
def decolumnize(output); end
|
118
|
+
}
|
119
|
+
|
120
|
+
begin
|
121
|
+
Pry.config.color = true
|
122
|
+
mock_pry(binding, "show-doc c#decolumnize").should =~ /ls -l \$HOME/
|
123
|
+
mock_pry(binding, "show-doc c#decolumnize").should.not =~ /`ls -l \$HOME`/
|
124
|
+
ensure
|
125
|
+
Pry.config.color = false
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
68
130
|
describe "on modules" do
|
69
131
|
before do
|
70
132
|
# god this is boring1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.9.
|
4
|
+
version: 0.9.9.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-05-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: coderay
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 1.0.5
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.0.5
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: slop
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -35,10 +40,18 @@ dependencies:
|
|
35
40
|
version: '3'
|
36
41
|
type: :runtime
|
37
42
|
prerelease: false
|
38
|
-
version_requirements:
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 2.4.4
|
49
|
+
- - <
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '3'
|
39
52
|
- !ruby/object:Gem::Dependency
|
40
53
|
name: method_source
|
41
|
-
requirement:
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
42
55
|
none: false
|
43
56
|
requirements:
|
44
57
|
- - ~>
|
@@ -46,10 +59,15 @@ dependencies:
|
|
46
59
|
version: 0.7.1
|
47
60
|
type: :runtime
|
48
61
|
prerelease: false
|
49
|
-
version_requirements:
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ~>
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.7.1
|
50
68
|
- !ruby/object:Gem::Dependency
|
51
69
|
name: bacon
|
52
|
-
requirement:
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
53
71
|
none: false
|
54
72
|
requirements:
|
55
73
|
- - ~>
|
@@ -57,10 +75,15 @@ dependencies:
|
|
57
75
|
version: '1.1'
|
58
76
|
type: :development
|
59
77
|
prerelease: false
|
60
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.1'
|
61
84
|
- !ruby/object:Gem::Dependency
|
62
85
|
name: open4
|
63
|
-
requirement:
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
64
87
|
none: false
|
65
88
|
requirements:
|
66
89
|
- - ~>
|
@@ -68,10 +91,15 @@ dependencies:
|
|
68
91
|
version: '1.3'
|
69
92
|
type: :development
|
70
93
|
prerelease: false
|
71
|
-
version_requirements:
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ~>
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '1.3'
|
72
100
|
- !ruby/object:Gem::Dependency
|
73
101
|
name: rake
|
74
|
-
requirement:
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
75
103
|
none: false
|
76
104
|
requirements:
|
77
105
|
- - ~>
|
@@ -79,7 +107,12 @@ dependencies:
|
|
79
107
|
version: '0.9'
|
80
108
|
type: :development
|
81
109
|
prerelease: false
|
82
|
-
version_requirements:
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
112
|
+
requirements:
|
113
|
+
- - ~>
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0.9'
|
83
116
|
description: An IRB alternative and runtime developer console
|
84
117
|
email: jrmair@gmail.com
|
85
118
|
executables:
|
@@ -214,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
247
|
version: '0'
|
215
248
|
requirements: []
|
216
249
|
rubyforge_project:
|
217
|
-
rubygems_version: 1.8.
|
250
|
+
rubygems_version: 1.8.23
|
218
251
|
signing_key:
|
219
252
|
specification_version: 3
|
220
253
|
summary: An IRB alternative and runtime developer console
|