milestoner 19.2.0 → 19.4.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: 7d957f55958fe682de293955b8ae7d1762722654ab97323da41473e21a76c3b1
4
- data.tar.gz: ed92635b6e20f6dbfb0ef8c43f11368bff7114aac753c8057753414e95e2e055
3
+ metadata.gz: 17f7f38307608c552e8e55aca7ca0d504ce19a27e2e3a1d3006c4dc86f7cc769
4
+ data.tar.gz: db7f14d857a9ab5b9a65e86020af35d2f21180b3f87db1a4cfc57552922e5def
5
5
  SHA512:
6
- metadata.gz: 7f78eb0132c2c5ea28e8d456bbd438cc0536785d085234cbc55fb431f712df51387bfa72102b127929cee70aba359b6bc507a97241498382f02be1a930334cd9
7
- data.tar.gz: da79e4b9aa49da378d9e037799a85c63c66d5b9c743e1e0854157d9e525416eee21b4f24f65310b493984157ec2c61464c71e00d95c55c18575604ec8354c337
6
+ metadata.gz: 3fddbbb740df9153ab03a83f31e90f4d8de66799a74545e90efbe838ad722d86430f5b29a54e33973c5b4d35cb12c117ece88fe2e5cb6573095515c67734f70d
7
+ data.tar.gz: 8a64713d5490876b393d9118248c21e3546ae9a159e3f211f108eef8bd26b68a53051aff41a6d3ef77402abd9da85818f6f4e3c78372999871f1f5abf9e70175
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -359,7 +359,7 @@ image:https://alchemists.io/images/projects/milestoner/screenshots/no_cache.png[
359
359
 
360
360
  === Build
361
361
 
362
- image:https://alchemists.io/images/projects/milestoner/screenshots/usage-build.png[Usage,width=787,height=675,role=focal_point]
362
+ image:https://alchemists.io/images/projects/milestoner/screenshots/usage-build.png[Usage,width=786,height=708,role=focal_point]
363
363
 
364
364
  The build command allows you to quickly build release notes to check the current status of your project or deploy a new milestone. By default, the build command uses either the default or custom configuration as documented in the _Configuration_ section above. This means, when using the defaults, you can immediately build the release notes for your project in a temporary directory:
365
365
 
@@ -22,7 +22,7 @@ module Milestoner
22
22
  register :cache do
23
23
  # :nocov:
24
24
  Lode.new self["xdg.cache"].passive do |config|
25
- config.mode = :max
25
+ config.mode = :thread
26
26
  config.table = Lode::Tables::Value
27
27
  config.register :users, model: Models::User, primary_key: :name
28
28
  end
@@ -40,6 +40,11 @@
40
40
  integrity="sha384-HGfztofotfshcF7+8n44JQL2oJmowVChPTg48S+jvZoztPfvwD79OC/LTtG6dMp+"
41
41
  crossorigin="anonymous">
42
42
  </script>
43
+
44
+ <script src="https://unpkg.com/htmx-select@0.0.0"
45
+ integrity="sha384-sHXxspXI+1G3Mb+k1zPcNdkBRL2Q+nKLcOtkbUPE0USxJFJtjf5pQpuykwTDAcPc"
46
+ crossorigin="anonymous">
47
+ </script>
43
48
  </head>
44
49
 
45
50
  <body class="milestoner">
@@ -1,14 +1,13 @@
1
1
  <details id="<%= commit.sha %>" class="row" x-bind:open="open">
2
2
  <summary class="summary <%= commit.kind %>">
3
- <div class="title">
4
- <img src="https://alchemists.io/images/projects/milestoner/icons/<%= commit.icon %>.png"
5
- alt="<%= commit.kind %>"
6
- class="icon"
7
- width="24"
8
- height="24"
9
- loading="lazy">
10
- <span class="subject"><%= commit.subject %></span>
11
- </div>
3
+ <img src="https://alchemists.io/images/projects/milestoner/icons/<%= commit.icon %>.png"
4
+ alt="<%= commit.kind %>"
5
+ class="icon"
6
+ width="24"
7
+ height="24"
8
+ loading="lazy">
9
+
10
+ <span class="subject"><%= commit.subject %></span>
12
11
 
13
12
  <a href="<%= commit.author.profile_url %>" class="author">
14
13
  <%= render :avatar, user: commit.author %>
@@ -1,6 +1,6 @@
1
1
  <section class="milestones">
2
2
  <h1 class="title">
3
- <a href="<%= project_uri_home %>" class="label"><%= project_label %></a> Versions
3
+ <a href="<%= project_uri_home %>" class="label"><%= project_label %></a>
4
4
  </h1>
5
5
 
6
6
  <p>All versions adhere to the <a href="https://alchemists.io/articles/strict_semantic_versioning">Strict Semantic Versioning</a> as enforced with <a href="https://alchemists.io/projects/versionaire">Versionaire</a> and automated by <a href="<%= generator_uri %>"><%= generator_label %></a>. Briefly, this means:</p>
@@ -11,21 +11,30 @@
11
11
  <li><strong>Patch</strong> (x.y.Z): Incremented for small, backwards compatible, bug fixes.</li>
12
12
  </ul>
13
13
 
14
- <ul class="list">
15
- <% tags.each do |tag| %>
16
- <li class="item">
17
- <a href="/<%= tag.version %>/"
18
- class="version"
19
- hx-get="/<%= tag.version %>/"
20
- hx-select=".milestone"
21
- hx-target=".milestones"
22
- hx-swap="outerHTML"
23
- hx-push-url="true">
24
- <%= tag.version %>
25
- </a>
14
+ <div class="selection fragment">
15
+ <label for="version" class="label">Version:</label>
26
16
 
27
- <span class="date"><%= tag.committed_date %></span>
28
- </li>
29
- <% end %>
30
- </ul>
17
+ <select id="version"
18
+ name="version"
19
+ class="versions"
20
+ hx-get=""
21
+ hx-trigger="change"
22
+ hx-select=".milestone"
23
+ hx-target=".milestones"
24
+ hx-swap="outerHTML"
25
+ hx-push-url="true"
26
+ hx-indicator=".spinner"
27
+ hx-ext="select">
28
+
29
+ <option value="" class="option">Select...</option>
30
+
31
+ <% tags.each do |tag| %>
32
+ <option value="<%= tag.version %>/" class="option">
33
+ <%= tag.version %> (<%= tag.committed_date %>)
34
+ </option>
35
+ <% end %>
36
+ </select>
37
+
38
+ <div class="spinner htmx-indicator"></div>
39
+ </div>
31
40
  </section>
@@ -13,5 +13,5 @@
13
13
  *<%= tag.total_commits %>. <%= tag.total_files %>. <%= tag.total_deletions %>. <%= tag.total_insertions %>.* +
14
14
  *<%= tag.total_duration %>.*
15
15
 
16
- link:<%= past.version %>/[Previous (<%= past.version %>)] | link:<%= future.version %>/[Next (<%= future.version %>)]
16
+ link:../<%= past.version %>/[Previous (<%= past.version %>)] | link:../<%= future.version %>/[Next (<%= future.version %>)]
17
17
  <% end %>
@@ -1,16 +1,21 @@
1
1
  <article class="milestone">
2
2
  <header class="header">
3
3
  <% if tag.index? %>
4
- <a href="../"
5
- class="root"
6
- hx-get="../"
7
- hx-select=".milestones"
8
- hx-trigger="click, keyup[key=='v'] from:body"
9
- hx-target=".milestone"
10
- hx-swap="outerHTML"
11
- hx-push-url="true">
12
- Versions
13
- </a>
4
+ <div class="fragment">
5
+ <a href="../"
6
+ class="root"
7
+ hx-get="../"
8
+ hx-select=".milestones"
9
+ hx-trigger="click, keyup[key=='v'] from:body"
10
+ hx-target=".milestone"
11
+ hx-swap="outerHTML"
12
+ hx-push-url="true"
13
+ hx-indicator=".index">
14
+ Versions
15
+ </a>
16
+
17
+ <div class="index spinner htmx-indicator"></div>
18
+ </div>
14
19
  <% end %>
15
20
 
16
21
  <h1 class="title">
@@ -71,19 +76,22 @@
71
76
  </p>
72
77
 
73
78
  <ul class="actions">
74
- <li>
75
- <a href="/<%= past.version %>/"
79
+ <li class="fragment">
80
+ <a href="../<%= past.version %>/"
76
81
  class="action"
77
82
  data-direction="previous"
78
- hx-get="/<%= past.version %>/"
83
+ hx-get="../<%= past.version %>/"
79
84
  hx-select=".milestone"
80
85
  hx-trigger="click, keyup[key=='ArrowLeft'] from:body"
81
86
  hx-target=".milestone"
82
87
  hx-swap="outerHTML"
83
- hx-push-url="true">
88
+ hx-push-url="true"
89
+ hx-indicator=".previous">
84
90
  Previous
85
91
  (<%= past.version %>)
86
92
  </a>
93
+
94
+ <div class="previous spinner htmx-indicator"></div>
87
95
  </li>
88
96
 
89
97
  <li>
@@ -100,16 +108,19 @@
100
108
  </div>
101
109
  </li>
102
110
 
103
- <li>
104
- <a href="/<%= future.version %>/"
111
+ <li class="fragment">
112
+ <div class="next spinner htmx-indicator"></div>
113
+
114
+ <a href="../<%= future.version %>/"
105
115
  class="action"
106
116
  data-direction="next"
107
- hx-get="/<%= future.version %>/"
117
+ hx-get="../<%= future.version %>/"
108
118
  hx-select=".milestone"
109
119
  hx-trigger="click, keyup[key=='ArrowRight'] from:body"
110
120
  hx-target=".milestone"
111
121
  hx-swap="outerHTML"
112
- hx-push-url="true">
122
+ hx-push-url="true"
123
+ hx-indicator=".next">
113
124
  Next
114
125
  (<%= future.version %>)
115
126
  </a>
@@ -12,5 +12,5 @@
12
12
  **<%= tag.total_commits %>. <%= tag.total_files %>. <%= tag.total_deletions %>. <%= tag.total_insertions %>.**
13
13
  **<%= tag.total_duration %>.**
14
14
 
15
- [Previous (<%= past.version %>)](<%= past.version %>/) | [Next (<%= future.version %>)](<%= future.version %>/)
15
+ [Previous (<%= past.version %>)](../<%= past.version %>/) | [Next (<%= future.version %>)](../<%= future.version %>/)
16
16
  <% end %>
@@ -1,3 +1,8 @@
1
+ @keyframes spin {
2
+ 0% { transform: rotate(0deg); }
3
+ 100% { transform: rotate(360deg); }
4
+ }
5
+
1
6
  /* Rouge (https://rouge.jneen.net) */
2
7
  .rouge.highlight {
3
8
  --color-berry: hsl(240, 18%, 40%);
@@ -479,6 +484,21 @@
479
484
  }
480
485
  }
481
486
 
487
+ .spinner {
488
+ animation: spin 1.5s linear infinite;
489
+ border-radius: 50%;
490
+ border: 0.3rem solid var(--color-grey);
491
+ border-top: 0.3rem solid var(--color-green);
492
+ height: 1rem;
493
+ width: 1rem;
494
+ }
495
+
496
+ .fragment {
497
+ align-items: center;
498
+ display: flex;
499
+ gap: 0.5rem;
500
+ }
501
+
482
502
  .toggle {
483
503
  background-color: var(--color-white);
484
504
  border: 0.15rem solid var(--color-smoke);
@@ -500,24 +520,20 @@
500
520
  flex-direction: column;
501
521
  margin: 0 12vw;
502
522
 
503
- .list {
504
- background-color: var(--color-grey);
505
- border: 0.1rem solid var(--color-black);
506
- border-radius: 0.5rem;
507
- display: flex;
508
- gap: 0.5rem;
509
- flex-direction: column;
510
- margin: 1rem 0;
511
- padding: 1rem;
523
+ .label {
524
+ font-weight: 600;
525
+ }
512
526
 
513
- .item {
514
- flex-wrap: wrap;
515
- justify-content: space-between;
516
- }
527
+ .selection {
528
+ margin: 1rem 0 0.5rem 0;
517
529
  }
518
530
 
519
- .date {
520
- color: var(--color-slate);
531
+ .versions {
532
+ background-color: var(--color-ice);
533
+ border-radius: 0.5rem;
534
+ border: 0.15rem solid var(--color-black);
535
+ font-size: 1rem;
536
+ padding: 0.2rem 0.5rem;
521
537
  }
522
538
  }
523
539
 
@@ -551,21 +567,6 @@
551
567
  color: var(--color-white);
552
568
  }
553
569
 
554
- .columns {
555
- background-color: var(--color-black);
556
- border-top-left-radius: 0.5rem;
557
- border-top-right-radius: 0.5rem;
558
- color: var(--color-white);
559
- display: grid;
560
- grid-template: 1fr / 4.7fr 1fr 1fr 1fr 1fr 1fr;
561
- padding: 0.3rem 0;
562
-
563
- .label {
564
- font-weight: 600;
565
- text-align: center;
566
- }
567
- }
568
-
569
570
  .header {
570
571
  align-items: center;
571
572
  display: grid;
@@ -621,7 +622,6 @@
621
622
  }
622
623
 
623
624
  .owner {
624
- align-items: center;
625
625
  display: flex;
626
626
  gap: 0.5rem;
627
627
  justify-content: center;
@@ -634,6 +634,27 @@
634
634
  }
635
635
  }
636
636
 
637
+ .columns {
638
+ background-color: var(--color-black);
639
+ border-top-left-radius: 0.5rem;
640
+ border-top-right-radius: 0.5rem;
641
+ color: var(--color-white);
642
+ display: none;
643
+ padding: 0.3rem 0;
644
+
645
+ @media (width >= 700px) {
646
+ display: grid;
647
+ grid-template: 1fr / 4.7fr repeat(5, 1fr);
648
+ }
649
+
650
+ .label {
651
+ font-weight: 600;
652
+ overflow: hidden;
653
+ texdt-overflow: ellipsis;
654
+ text-align: center;
655
+ }
656
+ }
657
+
637
658
  .row {
638
659
  .label {
639
660
  font-weight: 600;
@@ -650,18 +671,22 @@
650
671
  border-radius: 0.5rem;
651
672
  display: grid;
652
673
  gap: 0 1rem;
653
- grid-template: 1fr / auto 5fr 1fr 1fr 1fr 1fr 1fr;
674
+ grid-template: 1fr 1fr / auto auto auto repeat(5, 1fr);
675
+ grid-template-areas:
676
+ "toggle icon subject subject subject subject subject subject"
677
+ "toggle icon author files lines issue review review";
654
678
  padding: 0.15rem 0;
655
679
  margin: 0.25rem 0 0 0;
656
680
 
657
681
  &::-webkit-details-marker {
658
- display:none;
682
+ display: none;
659
683
  }
660
684
 
661
685
  &::before {
662
686
  color: var(--color-carbon);
663
- content: "\25B6";
687
+ content: "\25B6\FE0E";
664
688
  cursor: pointer;
689
+ grid-area: toggle;
665
690
  width: 0.5rem;
666
691
  }
667
692
 
@@ -690,10 +715,25 @@
690
715
  border-radius: 0.5rem;
691
716
  }
692
717
 
693
- .title {
694
- align-items: center;
695
- display: flex;
696
- gap: 0 0.5rem;
718
+ @media (width >= 700px) {
719
+ grid-template: 1fr / auto auto 5fr repeat(5, 1fr);
720
+ grid-template-areas: "toggle icon subject author files lines issue review";
721
+ }
722
+
723
+ .icon {
724
+ grid-area: icon;
725
+ }
726
+
727
+ .subject {
728
+ grid-area: subject;
729
+ }
730
+
731
+ .author {
732
+ grid-area: author;
733
+ }
734
+
735
+ .files {
736
+ grid-area: files;
697
737
  }
698
738
 
699
739
  .author,
@@ -709,6 +749,13 @@
709
749
  }
710
750
 
711
751
  .lines {
752
+ grid-area: lines;
753
+ white-space: nowrap;
754
+
755
+ @media (width >= 700px) {
756
+ white-space: normal;
757
+ }
758
+
712
759
  .deletions {
713
760
  color: var(--color-green);
714
761
  }
@@ -717,6 +764,14 @@
717
764
  color: var(--color-red);
718
765
  }
719
766
  }
767
+
768
+ .issue {
769
+ grid-area: issue;
770
+ }
771
+
772
+ .review {
773
+ grid-area: review;
774
+ }
720
775
  }
721
776
 
722
777
  .details {
@@ -736,7 +791,6 @@
736
791
  }
737
792
 
738
793
  .tag {
739
- align-self: stretch;
740
794
  border-radius: 0.3rem;
741
795
  grid-area: tag;
742
796
  margin: 1rem 0;
@@ -13,7 +13,6 @@ module Milestoner
13
13
  config.part_namespace = Parts
14
14
  config.paths = Container[:settings].build_template_paths
15
15
  config.scope_namespace = Scopes
16
- config.scope_builder = Milestoner::Views::ScopeBuilder
17
16
  config.template = "milestones/index"
18
17
 
19
18
  expose :tags
@@ -13,7 +13,6 @@ module Milestoner
13
13
  config.part_namespace = Parts
14
14
  config.paths = Container[:settings].build_template_paths
15
15
  config.scope_namespace = Scopes
16
- config.scope_builder = Milestoner::Views::ScopeBuilder
17
16
  config.template = "milestones/show"
18
17
 
19
18
  expose :past, :tag, :future
data/milestoner.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "milestoner"
5
- spec.version = "19.2.0"
5
+ spec.version = "19.4.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/milestoner"
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_dependency "cogger", "~> 1.0"
29
29
  spec.add_dependency "containable", "~> 1.1"
30
30
  spec.add_dependency "core", "~> 2.0"
31
- spec.add_dependency "dry-monads", "~> 1.6"
31
+ spec.add_dependency "dry-monads", "~> 1.8"
32
32
  spec.add_dependency "dry-schema", "~> 1.13"
33
33
  spec.add_dependency "etcher", "~> 3.0"
34
34
  spec.add_dependency "gitt", "~> 4.1"
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: milestoner
3
3
  version: !ruby/object:Gem::Version
4
- version: 19.2.0
4
+ version: 19.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -9,9 +9,9 @@ bindir: exe
9
9
  cert_chain:
10
10
  - |
11
11
  -----BEGIN CERTIFICATE-----
12
- MIIEeDCCAuCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZicm9v
12
+ MIIENjCCAp6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZicm9v
13
13
  a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
14
- aW8wHhcNMjMwMzIyMTYxNDQxWhcNMjUwMzIxMTYxNDQxWjBBMQ8wDQYDVQQDDAZi
14
+ aW8wHhcNMjUwMzIyMTQ1NDE3WhcNMjYwMzIyMTQ1NDE3WjBBMQ8wDQYDVQQDDAZi
15
15
  cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
16
16
  GRYCaW8wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCro8tj5/E1Hg88
17
17
  f4qfiwPVd2zJQHvdYt4GHVvuHRRgx4HGhJuNp+4BId08RBn7V6V1MW6MY3kezRBs
@@ -21,20 +21,19 @@ cert_chain:
21
21
  QzzPxZBiRB1sgtbt1gUbVI262ZDq1gR+HxPFmp+Cgt7ZLIJZAtesQvtcMzseXpfn
22
22
  hpmm0Sw22KGhRAy/mqHBRhDl5HqS1SJp2Ko3lcnpXeFResp0HNlt8NSu13vhC08j
23
23
  GUHU9MyIXbFOsnp3K3ADrAVjPWop8EZkmUR3MV/CUm00w2cZHCSGiXl1KMpiVKvk
24
- Ywr1gd2ZME4QLSo+EXUtLxDUa/W3xnBS8dBOuMMz02FPWYr3PN8CAwEAAaN7MHkw
24
+ Ywr1gd2ZME4QLSo+EXUtLxDUa/W3xnBS8dBOuMMz02FPWYr3PN8CAwEAAaM5MDcw
25
25
  CQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFAFgmv0tYMZnItuPycSM
26
- F5wykJEVMB8GA1UdEQQYMBaBFGJyb29rZUBhbGNoZW1pc3RzLmlvMB8GA1UdEgQY
27
- MBaBFGJyb29rZUBhbGNoZW1pc3RzLmlvMA0GCSqGSIb3DQEBCwUAA4IBgQAX+EGY
28
- 9RLYGxF1VLZz+G1ACQc4uyrCB6kXwI06kzUa5dF9tPXqTX9ffnz3/W8ck2IQhKzu
29
- MKO2FVijzbDWTsZeZGglS4E+4Jxpau1lU9HhOIcKolv6LeC6UdALTFudY+GLb8Xw
30
- REXgaJkjzzhkUSILmEnRwEbY08dVSl7ZAaxVI679vfI2yapLlIwpbBgmQTiTvPr3
31
- qyyLUno9flYEOv9fmGHunSrM+gE0/0niGTXa5GgXBXYGS2he4LQGgSBfGp/cTwMU
32
- rDKJRcusZ12lNBeDfgqACz/BBJF8FLodgk6rGMRZz7+ZmjjHEmpG5bQpR6Q2BuWL
33
- XMtYk/QzaWuhiR7pWjiF8jbdd7RO6or0ohq7iFkokz/5xrtQ/vPzU2RQ3Qc6YaKw
34
- 3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
35
- gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
26
+ F5wykJEVMA0GCSqGSIb3DQEBCwUAA4IBgQBlzRfyAYx/fCFjizS0Npxw4+4T3aYL
27
+ hbXoDqQRWjxuhFZcXUymhz3r8/Ltyri9lSof8grzB+8/+mrMVms7Gwt5qolk6zdn
28
+ FkySGy/jmpN12ldOHFbBEnyVBZNBvOBVb8zkkw8PhiHdBdXOUm4Jy39yJvBLfjcC
29
+ iM1aeWPmgPy1GbvZU+leRGZLt6dRIR9oCDXcWLRjha8xLMoz6Yn9fJBYexBA3iEz
30
+ h5S7pn4AX/JhVRiSyl8pAy4jEKydpyQrliH3gHkpNmUS/XDczP+9xX1bAB4BvqL2
31
+ NCxMcQ+hiJNqCKpPgHxaOOHZfIxV33logIuPEQ8NryHAwZ9ZWnwtYDE8kQGGKskI
32
+ Kkm6QT474hZl7MpwiJjWgW313CR7jUEekQahX1QxCxHPI7LSrKpno0plH3uWIOQp
33
+ KUlkb9uyACBgyRO52ZHiDVI8YvtU5O/j9pSes9/3XgvBeC1onx4qWp+uRX7eVsYS
34
+ GiijocTc3enZVrXERetaXj8/9XWs3fB3HWY=
36
35
  -----END CERTIFICATE-----
37
- date: 2025-02-06 00:00:00.000000000 Z
36
+ date: 1980-01-02 00:00:00.000000000 Z
38
37
  dependencies:
39
38
  - !ruby/object:Gem::Dependency
40
39
  name: asciidoctor
@@ -112,14 +111,14 @@ dependencies:
112
111
  requirements:
113
112
  - - "~>"
114
113
  - !ruby/object:Gem::Version
115
- version: '1.6'
114
+ version: '1.8'
116
115
  type: :runtime
117
116
  prerelease: false
118
117
  version_requirements: !ruby/object:Gem::Requirement
119
118
  requirements:
120
119
  - - "~>"
121
120
  - !ruby/object:Gem::Version
122
- version: '1.6'
121
+ version: '1.8'
123
122
  - !ruby/object:Gem::Dependency
124
123
  name: dry-schema
125
124
  requirement: !ruby/object:Gem::Requirement
@@ -364,8 +363,8 @@ executables:
364
363
  - milestoner
365
364
  extensions: []
366
365
  extra_rdoc_files:
367
- - README.adoc
368
366
  - LICENSE.adoc
367
+ - README.adoc
369
368
  files:
370
369
  - LICENSE.adoc
371
370
  - README.adoc
@@ -524,7 +523,6 @@ files:
524
523
  - lib/milestoner/views/parts/commit.rb
525
524
  - lib/milestoner/views/parts/tag.rb
526
525
  - lib/milestoner/views/parts/user.rb
527
- - lib/milestoner/views/scope_builder.rb
528
526
  - lib/milestoner/views/scopes/content.rb
529
527
  - lib/milestoner/views/scopes/logo.rb
530
528
  - lib/milestoner/views/scopes/tag_signature.rb
@@ -555,7 +553,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
555
553
  - !ruby/object:Gem::Version
556
554
  version: '0'
557
555
  requirements: []
558
- rubygems_version: 3.6.3
556
+ rubygems_version: 3.6.7
559
557
  specification_version: 4
560
558
  summary: A command line interface for automated Git repository milestones.
561
559
  test_files: []
metadata.gz.sig CHANGED
Binary file
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "hanami/view"
4
-
5
- module Milestoner
6
- module Views
7
- # A scope builder which is meant to replace and fix the default scope builder.
8
- module ScopeBuilder
9
- def self.call name = nil, locals:, rendering:
10
- scope_for(name, rendering).new name:, locals:, rendering:
11
- end
12
-
13
- def self.scope_for name, rendering
14
- case name
15
- in nil then rendering.config.scope_class
16
- in Class then name
17
- else fetch_or_store name, rendering
18
- end
19
- end
20
-
21
- def self.fetch_or_store name, rendering
22
- config = rendering.config
23
-
24
- Hanami::View.cache.fetch_or_store name, config do
25
- constant = constant_for name, rendering
26
- constant && constant < Hanami::View::Scope ? constant : config.scope_class
27
- end
28
- end
29
-
30
- def self.constant_for name, rendering
31
- name = rendering.inflector.camelize name.to_s
32
- namespace = rendering.config.scope_namespace || Object
33
-
34
- namespace.const_get name if namespace.const_defined? name, false
35
- end
36
-
37
- private_class_method :scope_for, :fetch_or_store, :constant_for
38
- end
39
- end
40
- end