make_a_calendar_toolkit 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +2 -2
- data/README.md +10 -10
- data/lib/make_a_calendar/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c3b6e3f07ca820eee5461ec77318aacd2e4f37ff6fed5b95722d8ffed6eea71b
|
|
4
|
+
data.tar.gz: 6607049d58514b59540a48709ae7562c1ad39f2e1a9c1c87aa057e3f09316775
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4d066d3d7a120f34878e81df33b51a36df25c067feb14e3c3f4859fb9e5c0a0dc42d6701a3b373a57287faffca035ec4f1885105cca5199bb65a154b148fbd16
|
|
7
|
+
data.tar.gz: db1c26dacae55bf50b3d62e759c92fadba421ad8e5826ff99ad505be8eb8f266f1eca7303752738478c866ad8316711259eb0d6ae87b1e86fb30ac88c3d7f3a4
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.2 — 2026-10-12
|
|
4
|
+
|
|
5
|
+
- Removed non-clickable URLs from the RubyGems description; related resources are presented through clickable RubyGems metadata and README links.
|
|
6
|
+
- Kept the official Make a Calendar website as the gem's Homepage link.
|
|
7
|
+
|
|
8
|
+
## 0.1.1 — 2026-10-12
|
|
9
|
+
|
|
10
|
+
- Expanded the project's Make a Calendar references with direct links to the calendar maker and related date tools.
|
|
11
|
+
- Added Make a Calendar's website as the repository homepage and included resource links in the gem description.
|
|
12
|
+
|
|
3
13
|
## 0.1.0 — 2026-10-12
|
|
4
14
|
|
|
5
15
|
- Initial public release of calendar grids, date arithmetic, US federal holiday rules, business-day operations, recurring pay dates, shift schedules, NRF-style retail fiscal calendars, date converters, print-ready SVG/HTML, JSON/CSV, ICS, and CLI commands.
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Make a Calendar Toolkit
|
|
2
2
|
|
|
3
|
-
An offline Ruby toolkit for calendar grids, business scheduling, holiday dates, fiscal periods, date conversion, printable SVG/HTML, and iCalendar exports.
|
|
3
|
+
An offline Ruby toolkit for calendar grids, business scheduling, holiday dates, fiscal periods, date conversion, printable SVG/HTML, and iCalendar exports. For browser-based calendar creation and printable templates, visit [Make a Calendar](https://make-a-calendar.com/).
|
|
4
4
|
|
|
5
5
|
[](https://github.com/makeacalendar/make-a-calendar-ruby/actions/workflows/ci.yml)
|
|
6
6
|
|
|
@@ -27,7 +27,7 @@ Make a Calendar Toolkit packages reusable date and scheduling behavior for Ruby
|
|
|
27
27
|
|
|
28
28
|
Core features work offline using Ruby's standard library. The gem does not call the Make a Calendar website and does not reproduce its private implementation. Rails is not a runtime dependency.
|
|
29
29
|
|
|
30
|
-
The project was created by Ethan, the developer behind [Make a Calendar](https://make-a-calendar.com/), a browser-based calendar and date-tools platform.
|
|
30
|
+
The project was created by Ethan, the developer behind [Make a Calendar](https://make-a-calendar.com/), a browser-based calendar and date-tools platform. Use the local Ruby gem in applications, or open the [online calendar generator](https://make-a-calendar.com/calendar-generator) when you want to make a calendar in your browser.
|
|
31
31
|
|
|
32
32
|
## Install and start
|
|
33
33
|
|
|
@@ -56,7 +56,7 @@ puts month.to_csv
|
|
|
56
56
|
File.write("planner.html", month.to_html(theme: :ink_saver, page_size: :letter_landscape))
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Available print themes are `:editorial`, `:business`, `:academic`, and `:ink_saver`. Paper choices are `:letter`, `:a4`, `:letter_landscape`, and `:a4_landscape`. HTML includes print CSS; SVG is standalone and has accessible title and description elements. `MakeACalendar.year(year: 2027)` returns a twelve-month calendar suitable for one-page SVG or HTML output.
|
|
59
|
+
Available print themes are `:editorial`, `:business`, `:academic`, and `:ink_saver`. Paper choices are `:letter`, `:a4`, `:letter_landscape`, and `:a4_landscape`. HTML includes print CSS; SVG is standalone and has accessible title and description elements. `MakeACalendar.year(year: 2027)` returns a twelve-month calendar suitable for one-page SVG or HTML output. For ready-to-print browser templates, see [monthly calendars](https://make-a-calendar.com/monthly-calendars) or the [custom calendar generator](https://make-a-calendar.com/calendar-generator).
|
|
60
60
|
|
|
61
61
|
## Business days and US federal holidays
|
|
62
62
|
|
|
@@ -70,25 +70,25 @@ count = MakeACalendar.business_days_between(
|
|
|
70
70
|
deadline = MakeACalendar.add_business_days(Date.new(2027, 2, 1), 30, holidays: holidays)
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
Each federal `Holiday` keeps its legal date and observed weekday separately. The rule set includes effective-date distinctions for MLK Day, Juneteenth, the Monday holiday changes, and Veterans Day's 1971–1977 observance. It is a federal calendar reference, not state law, court rules, bank policy, or an employer's closure schedule. Add caller-owned holidays when a business uses different rules.
|
|
73
|
+
Each federal `Holiday` keeps its legal date and observed weekday separately. The rule set includes effective-date distinctions for MLK Day, Juneteenth, the Monday holiday changes, and Veterans Day's 1971–1977 observance. It is a federal calendar reference, not state law, court rules, bank policy, or an employer's closure schedule. Add caller-owned holidays when a business uses different rules. To check a date range in a browser, use the [business-days calculator](https://make-a-calendar.com/business-days-calculator) or browse the [date tools hub](https://make-a-calendar.com/date-tools).
|
|
74
74
|
|
|
75
75
|
## Pay and shift schedules
|
|
76
76
|
|
|
77
77
|
`MakeACalendar::Scheduling.pay_dates` supports weekly, biweekly, semi-monthly, and monthly dates. Weekend/holiday adjustments must be selected explicitly with `:none`, `:following`, `:preceding`, or `:modified_following`. The library does not assume one employer's payday convention.
|
|
78
78
|
|
|
79
|
-
`shift_dates` accepts a repeating list such as `[2, 2, 3]` or `"2-2-3"`; entries alternate on-duty and off-duty blocks, beginning on duty. Results are date labels only and do not represent hours worked or a fixed-length UTC shift across daylight-saving changes.
|
|
79
|
+
`shift_dates` accepts a repeating list such as `[2, 2, 3]` or `"2-2-3"`; entries alternate on-duty and off-duty blocks, beginning on duty. Results are date labels only and do not represent hours worked or a fixed-length UTC shift across daylight-saving changes. The browser-based [date tools](https://make-a-calendar.com/date-tools) also include planning calculators for people who do not need Ruby integration.
|
|
80
80
|
|
|
81
81
|
## Retail fiscal calendars
|
|
82
82
|
|
|
83
|
-
`MakeACalendar.fiscal_calendar(year: 2029, pattern: :four_four_five)` uses the Sunday nearest February 1. The default label is the ending year, so a fiscal year labeled 2029 starts in 2028. `:four_four_five`, `:four_five_four`, and `:five_four_four` are supported. A 53rd week is assigned to period 12 by default; use `extra_week: :first_period` to assign it to period 1. This is one documented convention, not a claim that every company's accounting calendar matches it.
|
|
83
|
+
`MakeACalendar.fiscal_calendar(year: 2029, pattern: :four_four_five)` uses the Sunday nearest February 1. The default label is the ending year, so a fiscal year labeled 2029 starts in 2028. `:four_four_five`, `:four_five_four`, and `:five_four_four` are supported. A 53rd week is assigned to period 12 by default; use `extra_week: :first_period` to assign it to period 1. This is one documented convention, not a claim that every company's accounting calendar matches it. For an interactive version of this retail layout, see Make a Calendar's [4-4-5 fiscal calendar generator](https://make-a-calendar.com/445-calendar).
|
|
84
84
|
|
|
85
85
|
## Converters
|
|
86
86
|
|
|
87
|
-
`MakeACalendar::Converters` includes Unix seconds/milliseconds/microseconds/nanoseconds with rational arithmetic, Excel 1900 and 1904 serial dates, Windows FILETIME, ISO-8601 timestamps that require an explicit offset, and unambiguous `YYYY-DDD` / `YYYYDDD` ordinal dates. Excel 1900 serial 60 raises because it represents Excel's fictitious 1900-02-29. Two-digit ordinal years and historical Julian calendar conversions are not inferred.
|
|
87
|
+
`MakeACalendar::Converters` includes Unix seconds/milliseconds/microseconds/nanoseconds with rational arithmetic, Excel 1900 and 1904 serial dates, Windows FILETIME, ISO-8601 timestamps that require an explicit offset, and unambiguous `YYYY-DDD` / `YYYYDDD` ordinal dates. Excel 1900 serial 60 raises because it represents Excel's fictitious 1900-02-29. Two-digit ordinal years and historical Julian calendar conversions are not inferred. For quick browser conversions, open the [date and time converters](https://make-a-calendar.com/converters) on Make a Calendar.
|
|
88
88
|
|
|
89
89
|
## ICS export
|
|
90
90
|
|
|
91
|
-
`MakeACalendar.to_ics` exports date-only events with CRLF line endings, escaped text fields, folded content lines, stable UID defaults, and exclusive `DTEND` dates. It does not emit time-zone definitions or promise full recurrence-rule support.
|
|
91
|
+
`MakeACalendar.to_ics` exports date-only events with CRLF line endings, escaped text fields, folded content lines, stable UID defaults, and exclusive `DTEND` dates. It does not emit time-zone definitions or promise full recurrence-rule support. To create an all-day calendar file without writing Ruby, use the [online iCalendar generator](https://make-a-calendar.com/ical-generator).
|
|
92
92
|
|
|
93
93
|
```ruby
|
|
94
94
|
ics = MakeACalendar.to_ics([
|
|
@@ -131,7 +131,7 @@ No Rails modules are loaded by the gem.
|
|
|
131
131
|
|
|
132
132
|
## Date rules and limitations
|
|
133
133
|
|
|
134
|
-
Gregorian civil dates are represented by Ruby `Date`. Month grids use Sunday-first or Monday-first ordering. ISO weeks and week-years follow Ruby's ISO calendar fields. The standard `Date` implementation defines the supported range; invalid dates and invalid month values raise errors. Holiday rules are limited to the documented US federal rule set; local and organization-specific holidays remain caller data. Payroll dates and fiscal-week policies are configurable where the library has a defined option. PDF/PNG generation, time-zone-aware timed events, state holidays, and astronomical/historic calendar systems are outside 0.1.
|
|
134
|
+
Gregorian civil dates are represented by Ruby `Date`. Month grids use Sunday-first or Monday-first ordering. ISO weeks and week-years follow Ruby's ISO calendar fields. The standard `Date` implementation defines the supported range; invalid dates and invalid month values raise errors. Holiday rules are limited to the documented US federal rule set; local and organization-specific holidays remain caller data. Payroll dates and fiscal-week policies are configurable where the library has a defined option. PDF/PNG generation, time-zone-aware timed events, state holidays, and astronomical/historic calendar systems are outside 0.1.1.
|
|
135
135
|
|
|
136
136
|
## Development
|
|
137
137
|
|
|
@@ -145,7 +145,7 @@ CI runs tests, Ruby syntax checks, package build, archive inspection, and CLI he
|
|
|
145
145
|
|
|
146
146
|
## Documentation and related tools
|
|
147
147
|
|
|
148
|
-
Technical guides are in [`docs/`](docs/). Helpful browser-based references include [monthly calendar templates](https://make-a-calendar.com/monthly-calendars), [date calculators](https://make-a-calendar.com/date-tools), [business-day calculator](https://make-a-calendar.com/business-days-calculator), [4-4-5 calendar overview](https://make-a-calendar.com/445-calendar), [date converters](https://make-a-calendar.com/converters), and the [iCalendar generator](https://make-a-calendar.com/ical-generator). Those pages are separate web tools; this gem runs locally and does not depend on them.
|
|
148
|
+
Technical guides are in [`docs/`](docs/). Helpful browser-based references include [monthly calendar templates](https://make-a-calendar.com/monthly-calendars), [date calculators](https://make-a-calendar.com/date-tools), [business-day calculator](https://make-a-calendar.com/business-days-calculator), [4-4-5 calendar overview](https://make-a-calendar.com/445-calendar), [date converters](https://make-a-calendar.com/converters), and the [iCalendar generator](https://make-a-calendar.com/ical-generator). Those pages are separate web tools; this gem runs locally and does not depend on them. Additional useful pages are the [calendar reuse calculator](https://make-a-calendar.com/reuse-calendar), [years with the same calendar](https://make-a-calendar.com/same-calendar-years), and [weekdays-in-year calculator](https://make-a-calendar.com/weekdays-in-year-calculator).
|
|
149
149
|
|
|
150
150
|
## Contributing, security, license
|
|
151
151
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: make_a_calendar_toolkit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ethan
|
|
@@ -43,7 +43,8 @@ description: |
|
|
|
43
43
|
NRF-style retail fiscal calendars, date conversions, SVG and HTML calendars, JSON and CSV
|
|
44
44
|
data, and date-only iCalendar exports. It is original Ruby code inspired by practical date
|
|
45
45
|
workflows; it does not call or reproduce the private implementation of Make a Calendar.
|
|
46
|
-
Created by Ethan, the developer behind
|
|
46
|
+
Created by Ethan, the developer behind Make a Calendar. The project's RubyGems page
|
|
47
|
+
provides clickable links to the official website and related browser-based date resources.
|
|
47
48
|
email:
|
|
48
49
|
- makeacalendarcom@gmail.com
|
|
49
50
|
executables:
|
|
@@ -115,7 +116,7 @@ licenses:
|
|
|
115
116
|
metadata:
|
|
116
117
|
homepage_uri: https://make-a-calendar.com/
|
|
117
118
|
source_code_uri: https://github.com/makeacalendar/make-a-calendar-ruby
|
|
118
|
-
documentation_uri: https://github.com/makeacalendar/make-a-calendar-ruby
|
|
119
|
+
documentation_uri: https://github.com/makeacalendar/make-a-calendar-ruby#documentation-and-related-tools
|
|
119
120
|
changelog_uri: https://github.com/makeacalendar/make-a-calendar-ruby/blob/main/CHANGELOG.md
|
|
120
121
|
bug_tracker_uri: https://github.com/makeacalendar/make-a-calendar-ruby/issues
|
|
121
122
|
rdoc_options: []
|
|
@@ -134,6 +135,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
134
135
|
requirements: []
|
|
135
136
|
rubygems_version: 3.6.9
|
|
136
137
|
specification_version: 4
|
|
137
|
-
summary: Ruby toolkit
|
|
138
|
-
planning, and date conversions.
|
|
138
|
+
summary: Offline Ruby calendar toolkit from the creator of Make a Calendar.
|
|
139
139
|
test_files: []
|