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