Sha256: 944560a5afb438b7f7b093e24e4ca0367c600124c491805fe1d643988b2157fb

Contents?: true

Size: 1.44 KB

Versions: 2

Compression:

Stored size: 1.44 KB

Contents

module Integrity
  module Helpers
    module PrettyOutput
      def cycle(*values)
        @cycles ||= {}
        @cycles[values] ||= -1 # first value returned is 0
        next_value = @cycles[values] = (@cycles[values] + 1) % values.size
        values[next_value]
      end

      def bash_color_codes(string)
        string.gsub("\e[0m", '</span>').
          gsub("\e[31m", '<span class="color31">').
          gsub("\e[32m", '<span class="color32">').
          gsub("\e[33m", '<span class="color33">').
          gsub("\e[34m", '<span class="color34">').
          gsub("\e[35m", '<span class="color35">').
          gsub("\e[36m", '<span class="color36">').
          gsub("\e[37m", '<span class="color37">')
      end

      def pretty_date(date_time)
        today = Date.today
        if date_time.day == today.day && date_time.month == today.month && date_time.year == today.year
          "today"
        elsif date_time.day == today.day - 1 && date_time.month == today.month && date_time.year == today.year
          "yesterday"
        else
          strftime_with_ordinal(date_time, "on %b %d%o")
        end
      end

      def strftime_with_ordinal(date_time, format_string)
        ordinal = case date_time.day
          when 1, 21, 31 then "st"
          when 2, 22     then "nd"
          when 3, 23     then "rd"
          else                "th"
        end

        date_time.strftime(format_string.gsub("%o", ordinal))
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
foca-integrity-0.1.6 lib/integrity/helpers/pretty_output.rb
foca-integrity-0.1.7 lib/integrity/helpers/pretty_output.rb