Sha256: 31a8f64fc9b31928240583762877fe2f69b4302ee2d6b3f512c0e13731ae40d8

Contents?: true

Size: 1.42 KB

Versions: 56

Compression:

Stored size: 1.42 KB

Contents

class TestLab
  module Utility

    # Misc Error Class
    class MiscError < UtilityError; end

    # Misc Module
    #
    # @author Zachary Patten <zachary AT jovelabs DOT com>
    module Misc

      def format_object(object, color)
        klass = object.class.to_s.split('::').last

        ["#{klass}:".upcase.send(color).bold, "#{object.id}".white.bold].join(' ')
      end

      def format_object_action(object, action, color)
        klass = object.class.to_s.split('::').last

        ["#{klass}".downcase.send(color).bold, "#{object.id}".white.bold, "#{action}".downcase.send(color).bold, ].join(' ')
      end

      def format_message(message)
        "[".blue + "TL".blue.bold + "]".blue + " " + message
      end

      def please_wait(options={}, &block)
        ui      = options[:ui]
        message = options[:message]
        mark    = (options[:mark] || "# Completed in %0.4f seconds!".black.bold)

        !block_given? and raise MiscError, "You must supply a block!"
        ui.nil? and raise MiscError, "You must supply a ZTK::UI object!"
        message.nil? and raise MiscError, "You must supply a message!"

        message = format_message(message)
        length = message.uncolor.length
        max = (length >= 60 ? (length+1) : (60 - length))
        mark = ((' ' * max) + mark)

        ZTK::Benchmark.bench(:ui => ui, :message => message, :mark => mark) do
          yield
        end
      end

    end

  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
testlab-0.9.1 lib/testlab/utility/misc.rb
testlab-0.9.0 lib/testlab/utility/misc.rb
testlab-0.8.6 lib/testlab/utility/misc.rb
testlab-0.8.5 lib/testlab/utility/misc.rb
testlab-0.8.4 lib/testlab/utility/misc.rb
testlab-0.8.3 lib/testlab/utility/misc.rb
testlab-0.8.2 lib/testlab/utility/misc.rb
testlab-0.8.1 lib/testlab/utility/misc.rb
testlab-0.8.0 lib/testlab/utility/misc.rb
testlab-0.7.6 lib/testlab/utility/misc.rb
testlab-0.7.5 lib/testlab/utility/misc.rb
testlab-0.7.4 lib/testlab/utility/misc.rb
testlab-0.7.3 lib/testlab/utility/misc.rb
testlab-0.7.2 lib/testlab/utility/misc.rb
testlab-0.7.1 lib/testlab/utility/misc.rb
testlab-0.7.0 lib/testlab/utility/misc.rb
testlab-0.6.17 lib/testlab/utility/misc.rb
testlab-0.6.16 lib/testlab/utility/misc.rb
testlab-0.6.15 lib/testlab/utility/misc.rb
testlab-0.6.14 lib/testlab/utility/misc.rb