coach_zed 0.5.6 → 0.6.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89d7e5c63ebae19ab549546064ed308a2c532790f1d73f1fe552d9cb2e72b6aa
4
- data.tar.gz: 77f69adb4ffe3a286bf8b293d4ba88522d193db5d82b3d98f77d9017ba79e212
3
+ metadata.gz: a9a76219553e75c5d8bce93271958c701b085dcbf044e3850a5555b395943634
4
+ data.tar.gz: 040c18ed98b57fde0318ed9df3e3a516d8ec12a9a3115b1f76a52edecd2ff68c
5
5
  SHA512:
6
- metadata.gz: 5abcc3b5683b0518e0c5696b66f435470040c3113ae4feb5b87a316db61ccf391729a8175b8256de477f2f15536911ac7c19010525fb8120eabde025849a47e3
7
- data.tar.gz: c7b654bf8944632353cd9e83eea5495902d251e429aac9f816c0d1ca999b4859702595fb3230ec69ba216f657a8b9884334e220251c63b1f3049dc14acd09dbb
6
+ metadata.gz: 0bd9170710c99a2e2079ffdd8bdd42c233de1c9382323e804ac756c61f52b795587a32d830fa2b2549bc142e9ae38d79f5d3efb6b463554c5362a7ba33577019
7
+ data.tar.gz: '095e0419908b95213f0a16365688dfddcb81c198a9f77f2e916033db213f613f78041b0a90912caba7797ef11ba07273eb942017a6b6ce6be7a353208931979b'
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [](https://github.com/rossta/coach_zed/compare/v0.5.6...v) (2026-06-17)
2
+
3
+ ### Features
4
+
5
+ * add workout precedence metadata ([aade5c6](https://github.com/rossta/coach_zed/commit/aade5c682a1d2c4529ed1bb99bf91c5c64e5167f))
1
6
  ## [](https://github.com/rossta/coach_zed/compare/v0.5.5...v) (2026-06-17)
2
7
 
3
8
  ### Bug Fixes
@@ -6,7 +6,7 @@ require "pathname"
6
6
  class CoachZed
7
7
  module Catalog
8
8
  class Entry
9
- attr_reader :path, :relative_path, :title, :domain, :session_duration, :frequency, :program, :format, :equipment, :summary, :work_items, :notes, :source_urls
9
+ attr_reader :path, :relative_path, :title, :domain, :session_duration, :precedence, :frequency, :program, :format, :equipment, :summary, :work_items, :notes, :source_urls
10
10
 
11
11
  def initialize(
12
12
  path:,
@@ -18,6 +18,7 @@ class CoachZed
18
18
  source_urls:,
19
19
  domain: nil,
20
20
  session_duration: nil,
21
+ precedence: nil,
21
22
  frequency: nil,
22
23
  program: nil,
23
24
  format: nil,
@@ -28,6 +29,7 @@ class CoachZed
28
29
  @title = title
29
30
  @domain = domain
30
31
  @session_duration = session_duration
32
+ @precedence = precedence
31
33
  @frequency = frequency
32
34
  @program = program
33
35
  @format = format
@@ -44,6 +46,7 @@ class CoachZed
44
46
  title,
45
47
  domain,
46
48
  session_duration,
49
+ precedence,
47
50
  frequency,
48
51
  program,
49
52
  format,
@@ -62,6 +65,7 @@ class CoachZed
62
65
  "title" => title,
63
66
  "domain" => domain,
64
67
  "session_duration" => session_duration,
68
+ "precedence" => precedence,
65
69
  "frequency" => frequency,
66
70
  "program" => program,
67
71
  "format" => format,
@@ -131,6 +135,7 @@ class CoachZed
131
135
  title: title,
132
136
  domain: metadata["domain"],
133
137
  session_duration: metadata["session_duration"],
138
+ precedence: metadata["precedence"],
134
139
  frequency: metadata["frequency"],
135
140
  program: metadata["program"],
136
141
  format: metadata["format"],
@@ -29,6 +29,12 @@ class CoachZed
29
29
  - Produce exactly #{generation_days} entries for the requested time period.
30
30
  - Set `program_length_days` to exactly #{generation_days}.
31
31
  - Keep `program_length_days` equal to the number of entries in `days`.
32
+ - Treat catalog entries marked `primary` as the main training sessions.
33
+ - Aim for 5-6 primary workouts per 7-day week.
34
+ - Use at most one primary workout per day.
35
+ - A primary day may include one complementary workout.
36
+ - On non-primary days, pair complementary workouts with other complementary work only.
37
+ - Keep rest days to 1 or fewer per 7-day week.
32
38
  - Include rest days when appropriate.
33
39
  - Use only workouts that exist in the catalog.
34
40
  - Match the athlete's goals and the requested time period.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class CoachZed
4
- VERSION = "0.5.6"
4
+ VERSION = "0.6.0"
5
5
  end
data/sig/coach_zed.rbs CHANGED
@@ -92,14 +92,15 @@ class CoachZed
92
92
 
93
93
  module Catalog
94
94
  class Entry
95
- attr_reader path: Pathname
96
- attr_reader relative_path: String
97
- attr_reader title: String
98
- attr_reader domain: String?
99
- attr_reader session_duration: String?
100
- attr_reader frequency: String?
101
- attr_reader program: String?
102
- attr_reader format: String?
95
+ attr_reader path: Pathname
96
+ attr_reader relative_path: String
97
+ attr_reader title: String
98
+ attr_reader domain: String?
99
+ attr_reader session_duration: String?
100
+ attr_reader precedence: String?
101
+ attr_reader frequency: String?
102
+ attr_reader program: String?
103
+ attr_reader format: String?
103
104
  attr_reader equipment: String?
104
105
  attr_reader summary: String
105
106
  attr_reader work_items: Array[String]
@@ -108,13 +109,14 @@ class CoachZed
108
109
 
109
110
  def initialize: (
110
111
  path: Pathname,
111
- relative_path: String,
112
- title: String,
113
- ?domain: String?,
114
- ?session_duration: String?,
115
- ?frequency: String?,
116
- ?program: String?,
117
- ?format: String?,
112
+ relative_path: String,
113
+ title: String,
114
+ ?domain: String?,
115
+ ?session_duration: String?,
116
+ ?precedence: String?,
117
+ ?frequency: String?,
118
+ ?program: String?,
119
+ ?format: String?,
118
120
  ?equipment: String?,
119
121
  summary: String,
120
122
  work_items: Array[String],
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coach_zed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Kaffenberger