lib/ld/print/print.rb in ld-0.3.5 vs lib/ld/print/print.rb in ld-0.3.6
- old
+ new
@@ -1,25 +1,34 @@
require 'terminal-table'
class Ld::Print
- def initialize models
- @models = models
+ def self.p models, fields
+ self.print "#{models.first.class.to_s}" do |table|
+ table.set_headings (fields.class == Array ? fields : fields.split(',')).map{|f| f.rstrip.lstrip}
+ table.set_rows models.map { |model|
+ fields.map { |field|
+ value = model.send field
+ value = value.strftime("%Y/%m/%d %H:%M:%S") if [Date, Time, DateTime, ActiveSupport::TimeWithZone].include? value.class
+ value
+ }
+ }
+ end
end
- def self.p models,fields
+ def self.print hash
t = Terminal::Table.new
- t.title = models.first.class.to_s
- fields = (fields.class == Array ? fields : fields.split(',')).map{|f| f.rstrip.lstrip}
- t.headings = fields
- models.map { |model|
- fields.map { |field|
- value = model.send field
- value = value.strftime("%Y/%m/%d %H:%M:%S") if [Date, Time, DateTime, ActiveSupport::TimeWithZone].include? value.class
- value
- }
- }#.sort{|a,b| a[2] <=> b[2]}
- .each{|row| t.add_row row}
+ t.title = hash[:title]
+ t.headings = hash[:headings]
+ t.rows = hash[:rows]
puts t
end
-end
\ No newline at end of file
+ def self.ls dir
+ t = Terminal::Table.new
+ t.title = "目录列表:#{dir.path}"
+ t.headings = ["name","type","size","permission"]
+ t.rows = dir.children.map{|f| [f.name, f.type, f.size, f.mode] if f.name[0] != '.'}.compact.sort{|a,b| a[1] <=> b[1]}
+ puts t
+ end
+
+end