<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/test/models/concerns/rrule_humanizer_test.rb, branch erdgeist-revive-events</title>
<subtitle>[no description]</subtitle>
<id>https://erdgeist.org/gitweb/cccms/atom?h=erdgeist-revive-events</id>
<link rel='self' href='https://erdgeist.org/gitweb/cccms/atom?h=erdgeist-revive-events'/>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/'/>
<updated>2026-06-30T22:24:10Z</updated>
<entry>
<title>Add RRULE humanizer and wire events into nodes#show</title>
<updated>2026-06-30T22:24:10Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-30T22:24:10Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=95955abaa339098755a214cfcadf87c90211fe64'/>
<id>urn:sha1:95955abaa339098755a214cfcadf87c90211fe64</id>
<content type='text'>
- app/models/concerns/rrule_humanizer.rb: new concern included into
  Event, renders recurring schedule as natural-language German or
  English from RRULE string; handles WEEKLY/MONTHLY, biweekly
  (INTERVAL=2), ordinal weekday positions (1TU, -1TH, -2WE),
  BYMONTH single-month exclusions (December pause convention);
  gracefully returns nil for COUNT/UNTIL/unrecognized shapes
- test/models/concerns/rrule_humanizer_test.rb: 15 tests covering
  all distinct RRULE shapes found in production data
- app/helpers/nodes_helper.rb: add event_schedule_text helper
  combining humanize_rrule with start_time formatting
- app/views/nodes/show.html.erb: add events row, conditionally
  rendered when node has associated events
- config/locales/de.yml, en.yml: add event_schedule_time,
  event_schedule_unrecognized, event_schedule_none keys
</content>
</entry>
</feed>
