Back on the List - Two questions

L

list. rb

[Note: parts of this message were removed to make it a legal post.]

It's been a while but it feels good to be back.

I have a quick question for the group:

Given the following:

content = [
["something special a", "ok cool a", "tahsnk a"],
["something specccccccccial a", "ok cooooool a", "tahsnk a"]
]
content.each {|i|
puts i.join("\t")
}
#something special a ok cool a tahsnk a
#something specccccccccial a ok cooooool a tahsnk a

I would like to print this out as such:
something special a ok cool a tahsnk a
something specccccccccial a ok cooooool a tahsnk a

I remember seeing a module or example like this somewhere.. Any ideas? I was
thinking it was pretty print at first but after looking, I guess not?
 
G

Gregory Brown

It's been a while but it feels good to be back.

I have a quick question for the group:

Given the following:

content = [
["something special a", "ok cool a", "tahsnk a"],
["something specccccccccial a", "ok cooooool a", "tahsnk a"]
]
content.each {|i|
puts i.join("\t")
}
#something special a ok cool a tahsnk a
#something specccccccccial a ok cooooool a tahsnk a

I would like to print this out as such:
something special a ok cool a tahsnk a
something specccccccccial a ok cooooool a tahsnk a

I remember seeing a module or example like this somewhere.. Any ideas? I was
thinking it was pretty print at first but after looking, I guess not?

Well, it's a bit like killing a mosquito with a bazooka, but you could
use Ruport for this:
require "rubygems" => true
require "ruport" => true
content = [
?> ["something special a", "ok coola", "tahsnk a"],
?> ["something speccccccccccccial a", "ok cooool a", "tahsnk a"]
=> [["something special a", "ok coola", "tahsnk a"], ["something
speccccccccccccial a", "ok cooool a", "tahsnk a"]]+---------------------------------------------------------+
| something special a | ok coola | tahsnk a |
| something speccccccccccccial a | ok cooool a | tahsnk a |
+---------------------------------------------------------+

But if you don't want the decorations, you'd need to tweak things.
Feel free to take a look at the (not exactly pretty) source and re-use
whatever code you'd like:

http://github.com/ruport/ruport/tree/master/lib/ruport/formatter/text.rb


-greg
 
L

list. rb

[Note: parts of this message were removed to make it a legal post.]

Nice.. that was exactly what I was looking for. Thanks!

It's been a while but it feels good to be back.

I have a quick question for the group:

Given the following:

content = [
["something special a", "ok cool a", "tahsnk a"],
["something specccccccccial a", "ok cooooool a", "tahsnk a"]
]
content.each {|i|
puts i.join("\t")
}
#something special a ok cool a tahsnk a
#something specccccccccial a ok cooooool a tahsnk a

I would like to print this out as such:
something special a ok cool a tahsnk a
something specccccccccial a ok cooooool a tahsnk a

I remember seeing a module or example like this somewhere.. Any ideas? I was
thinking it was pretty print at first but after looking, I guess not?

Well, it's a bit like killing a mosquito with a bazooka, but you could
use Ruport for this:
require "rubygems" => true
require "ruport" => true
content = [
?> ["something special a", "ok coola", "tahsnk a"],
?> ["something speccccccccccccial a", "ok cooool a", "tahsnk a"]
=> [["something special a", "ok coola", "tahsnk a"], ["something
speccccccccccccial a", "ok cooool a", "tahsnk a"]]+---------------------------------------------------------+
| something special a | ok coola | tahsnk a |
| something speccccccccccccial a | ok cooool a | tahsnk a |
+---------------------------------------------------------+

But if you don't want the decorations, you'd need to tweak things.
Feel free to take a look at the (not exactly pretty) source and re-use
whatever code you'd like:

http://github.com/ruport/ruport/tree/master/lib/ruport/formatter/text.rb


-greg
 
S

Shadowfirebird

content.each do |i|
i.each{|j| printf "%30s ", j}
puts
end

Or is that too simplistic?

Nice.. that was exactly what I was looking for. Thanks!

It's been a while but it feels good to be back.

I have a quick question for the group:

Given the following:

content = [
["something special a", "ok cool a", "tahsnk a"],
["something specccccccccial a", "ok cooooool a", "tahsnk a"]
]
content.each {|i|
puts i.join("\t")
}
#something special a ok cool a tahsnk a
#something specccccccccial a ok cooooool a tahsnk a

I would like to print this out as such:
something special a ok cool a tahsnk a
something specccccccccial a ok cooooool a tahsnk a

I remember seeing a module or example like this somewhere.. Any ideas? I was
thinking it was pretty print at first but after looking, I guess not?

Well, it's a bit like killing a mosquito with a bazooka, but you could
use Ruport for this:
require "rubygems" => true
require "ruport" => true
content = [
?> ["something special a", "ok coola", "tahsnk a"],
?> ["something speccccccccccccial a", "ok cooool a", "tahsnk a"]
=> [["something special a", "ok coola", "tahsnk a"], ["something
speccccccccccccial a", "ok cooool a", "tahsnk a"]]
puts Table:)data => content)
+---------------------------------------------------------+
| something special a | ok coola | tahsnk a |
| something speccccccccccccial a | ok cooool a | tahsnk a |
+---------------------------------------------------------+

But if you don't want the decorations, you'd need to tweak things.
Feel free to take a look at the (not exactly pretty) source and re-use
whatever code you'd like:

http://github.com/ruport/ruport/tree/master/lib/ruport/formatter/text.rb


-greg



--
Me, I imagine places that I have never seen / The colored lights in
fountains, blue and green / And I imagine places that I will never go
/ Behind these clouds that hang here dark and low
But it's there when I'm holding you / There when I'm sleeping too /
There when there's nothing left of me / Hanging out behind the
burned-out factories / Out of reach but leading me / Into the
beautiful sea
 
G

Gregory Brown

content.each do |i|
i.each{|j| printf "%30s ", j}
puts
end

If you combine this with a function that first figures out an
appropriate column width based on the size of the strings in that
column, this simple approach would be much more lightweight than what
we do in Ruport, for sure (but not quite as full featured).

But usually, dynamically determining column width is a must-have
unless you can make a lot of assumptions about the data you're
displaying. For example, showing telephone numbers with fixed width
hard coded columns would be fine, but email addresses, probably not so
clear cut.

-greg
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,202
Messages
2,571,057
Members
47,662
Latest member
sxarexu

Latest Threads

Top