lib/calendario/rendered_year.rb
module Calendario
# A cal-like representation of a year:
#
# 2020
# January February March
# Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
# 1 2 3 4 1 1 2 3 4 5 6 7
# 5 6 7 8 9 10 11 2 3 4 5 6 7 8 8 9 10 11 12 13 14
# 12 13 14 15 16 17 18 9 10 11 12 13 14 15 15 16 17 18 19 20 21
# 19 20 21 22 23 24 25 16 17 18 19 20 21 22 22 23 24 25 26 27 28
# 26 27 28 29 30 31 23 24 25 26 27 28 29 29 30 31
#
#
# April May June
# Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
# 1 2 3 4 1 2 1 2 3 4 5 6
# 5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13
# 12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20
# 19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27
# 26 27 28 29 30 24 25 26 27 28 29 30 28 29 30
# 31
#
# July August September
# Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
# 1 2 3 4 1 1 2 3 4 5
# 5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12
# 12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19
# 19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26
# 26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30
# 30 31
#
# October November December
# Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
# 1 2 3 1 2 3 4 5 6 7 1 2 3 4 5
# 4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12
# 11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19
# 18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26
# 25 26 27 28 29 30 31 29 30 27 28 29 30 31
#
class RenderedYear
# A list of lines representing a year
#
# @api private
# @return [Array<String>]
#
attr_reader :lines
# Initializes a rendered year
#
# @api private
# @param [Array<String>] lines List of lines representing a year
#
def initialize(lines)
@lines = lines
end
# Returns the textual representation of a year
#
# @api private
# @return [String]
#
def to_s
lines.join("\n")
end
end
end