Sha256: 0601acb4365bfe1ceab19ce03b06aa333e44ccd9153cfa86a8e42a4779d1478e

Contents?: true

Size: 1.59 KB

Versions: 2

Compression:

Stored size: 1.59 KB

Contents

require 'formatador'

module Cistern::Formatter::Formatador
  def self.call(model)
    Thread.current[:formatador] ||= Formatador.new
    data = "#{Thread.current[:formatador].indentation}<#{model.class.name}"
    Thread.current[:formatador].indent do
      unless model.class.attributes.empty?
        data << "\n#{Thread.current[:formatador].indentation}"
        data << model.class.attributes.map {|attribute| "#{attribute}=#{model.send(attribute).inspect}"}.join(",\n#{Thread.current[:formatador].indentation}")
      end
    end
    data << "\n#{Thread.current[:formatador].indentation}>"
    data
  end

  def inspect
    Thread.current[:formatador] ||= Formatador.new
    data = "#{Thread.current[:formatador].indentation}<#{self.class.name}\n"
    Thread.current[:formatador].indent do
      unless self.class.attributes.empty?
        data << "#{Thread.current[:formatador].indentation}"
        data << self.class.attributes.map {|attribute| "#{attribute}=#{send(attribute).inspect}"}.join(",\n#{Thread.current[:formatador].indentation}")
        data << "\n"
      end
      data << "#{Thread.current[:formatador].indentation}["
      unless self.empty?
        data << "\n"
        Thread.current[:formatador].indent do
          data << self.map {|member| member.inspect}.join(",\n")
          data << "\n"
        end
        data << Thread.current[:formatador].indentation
      end
      data << "]\n"
    end
    data << "#{Thread.current[:formatador].indentation}>"
    data
  end

  def table(attributes = nil)
    Formatador.display_table(self.map {|instance| instance.attributes}, attributes)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cistern-0.1.4 lib/cistern/formatters/formatador.rb
cistern-0.1.2 lib/cistern/formatters/formatador.rb