mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
Intermediate merge step
This commit is contained in:
parent
4a059fd3a6
commit
4e89649ac7
2 changed files with 66 additions and 12 deletions
|
@ -1,8 +1,30 @@
|
||||||
class Pry
|
class Pry
|
||||||
class Command::Ls < Pry::ClassCommand
|
module Helpers
|
||||||
|
module Formatting
|
||||||
|
def self.tablify(things, screen_width)
|
||||||
|
maximum_width = things.map{|t| Pry::Helpers::Text.strip_color(t).length}.max + Pry.config.ls.separator.length
|
||||||
|
maximum_width = screen_width if maximum_width > screen_width
|
||||||
|
columns = screen_width / maximum_width
|
||||||
|
|
||||||
|
things.each_slice(columns).map do |slice|
|
||||||
|
slice.map do |s|
|
||||||
|
padding_width = maximum_width - Pry::Helpers::Text.strip_color(s).length
|
||||||
|
padding = Pry.config.ls.separator.ljust(padding_width, Pry.config.ls.separator)
|
||||||
|
s + padding
|
||||||
|
end.join("")
|
||||||
|
end.join("\n")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
class Command::Ls < Pry::ClassCommand
|
||||||
match 'ls'
|
match 'ls'
|
||||||
group 'Context'
|
group 'Context'
|
||||||
description 'Show the list of vars and methods in the current scope.'
|
description 'Show the list of vars and methods in the current scope.'
|
||||||
|
|
||||||
|
Pry::Commands.create_command "ls" do
|
||||||
|
group "Context"
|
||||||
|
description "Show the list of vars and methods in the current scope."
|
||||||
command_options :shellwords => false, :interpolate => false
|
command_options :shellwords => false, :interpolate => false
|
||||||
|
|
||||||
def options(opt)
|
def options(opt)
|
||||||
|
@ -303,17 +325,7 @@ class Pry
|
||||||
end
|
end
|
||||||
|
|
||||||
screen_width = (TerminalInfo.screen_size || [25, 80])[1]
|
screen_width = (TerminalInfo.screen_size || [25, 80])[1]
|
||||||
maximum_width = things.map{|t| Pry::Helpers::Text.strip_color(t).length}.max + Pry.config.ls.separator.length
|
Pry::Helpers::Formatting.tablify(things, screen_width)
|
||||||
maximum_width = screen_width if maximum_width > screen_width
|
|
||||||
columns = screen_width / maximum_width
|
|
||||||
|
|
||||||
things.each_slice(columns).map do |slice|
|
|
||||||
slice.map do |s|
|
|
||||||
padding_width = maximum_width - Pry::Helpers::Text.strip_color(s).length
|
|
||||||
padding = Pry.config.ls.separator.ljust(padding_width, Pry.config.ls.separator)
|
|
||||||
s + padding
|
|
||||||
end.join("")
|
|
||||||
end.join("\n")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Color output based on config.ls.*_color
|
# Color output based on config.ls.*_color
|
||||||
|
|
|
@ -28,6 +28,48 @@ describe "ls" do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'formatting - should order downward and wrap to columns' do
|
||||||
|
FAKE_COLUMNS = 62
|
||||||
|
def try_round_trip(text)
|
||||||
|
text.strip!
|
||||||
|
things = text.split(/\s+/)
|
||||||
|
actual = Pry::Helpers::Formatting.tablify(things, FAKE_COLUMNS)
|
||||||
|
if actual != text
|
||||||
|
actual.strip.should == text
|
||||||
|
puts text, 'vs.', actual
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should handle the basic case' do
|
||||||
|
try_round_trip(<<-EOT)
|
||||||
|
aadd ddasffssdad sdsaadaasd ssfasaafssd
|
||||||
|
adassdfffaasds f sdsfasddasfds ssssdaa
|
||||||
|
assfsafsfsds fsasa ssdsssafsdasdf
|
||||||
|
EOT
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should handle... another basic case' do
|
||||||
|
try_round_trip(<<-EOT)
|
||||||
|
aaad dasaasffaasf fdasfdfss safdfdddsasd
|
||||||
|
aaadfasassdfff ddadadassasdf fddsasadfssdss sasf
|
||||||
|
aaddaafaf dddasaaaaaa fdsasad sddsa
|
||||||
|
aas dfsddffdddsdfd ff sddsfsaa
|
||||||
|
adasadfaaffds dsfafdsfdfssda ffadsfafsaafa ss
|
||||||
|
asddaadaaadfdd dssdss ffssfsfafaadss ssas
|
||||||
|
asdsdaa faadf fsddfff ssdfssff
|
||||||
|
asfadsssaaad fasfaafdssd s
|
||||||
|
EOT
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should handle empty input' do
|
||||||
|
try_round_trip('')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should handle one-token input' do
|
||||||
|
try_round_trip('asdf')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "help" do
|
describe "help" do
|
||||||
it 'should show help with -h' do
|
it 'should show help with -h' do
|
||||||
pry_eval("ls -h").should =~ /Usage: ls/
|
pry_eval("ls -h").should =~ /Usage: ls/
|
||||||
|
|
Loading…
Reference in a new issue