Class: Calendario::Renderers::MonthRenderer Private
- Inherits:
-
Object
- Object
- Calendario::Renderers::MonthRenderer
- Defined in:
- lib/calendario/renderers/month_renderer.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Renders a month line by line
Constant Summary collapse
- EMPTY_DAY_SPACES =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
The space of an empty day
' '.freeze
- WEEKDAY_INITIALS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Initials of each week day
'Su Mo Tu We Th Fr Sa'.freeze
- MONTH_WIDTH =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Width of a rendered month
20
Instance Attribute Summary collapse
-
#filter ⇒ Proc
private
A proc to be executed on each date to define what is displayed on each day.
Instance Method Summary collapse
-
#initialize ⇒ MonthRenderer
constructor
private
Initializes a month renderer.
-
#render(month) ⇒ RenderedMonth
private
Renders a month.
Constructor Details
#initialize ⇒ MonthRenderer
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Initializes a month renderer
34 35 36 |
# File 'lib/calendario/renderers/month_renderer.rb', line 34 def initialize @filter = proc { |date| date.day.to_s.rjust(2) } end |
Instance Attribute Details
#filter ⇒ Proc
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
A proc to be executed on each date to define what is displayed on each day
28 29 30 |
# File 'lib/calendario/renderers/month_renderer.rb', line 28 def filter @filter end |
Instance Method Details
#render(month) ⇒ RenderedMonth
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Renders a month
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/calendario/renderers/month_renderer.rb', line 44 def render(month) weeks = build_weeks(month).map { |week| week.join(' ') } lines = [ center_name(month), WEEKDAY_INITIALS, *weeks ] RenderedMonth.new(lines) end |