milestoner 18.6.0 → 18.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: acc8c51f0fa0cacdf7e8bc0e871a697520ce09c2b7af09c1dba01c1632b06671
4
- data.tar.gz: 164ef1e821b63b7b382cbcb4dda7a9450c7d0493dfb92436b2161fcc983599f3
3
+ metadata.gz: 11f4a4fabcb973b15544876b5874c38547b88c2d090014ada6f1fa91501722e5
4
+ data.tar.gz: 04e2b342302e51906d31195fc29acc2952c0e917ee0b48d56941be2969c8484f
5
5
  SHA512:
6
- metadata.gz: a999795a124cc155086e5826bd64880f9838d415e941b455cab6141bd66a05713e47009afbc11749809ff7692aced45bb13878f4a6fc0620ec520536f5741d0d
7
- data.tar.gz: f2e01fb0744c54b2d1b6c87f7bd7932c71bde127a5509a101e05b37c87cc340371af596fd3bcf5edf72dfbcd25a99505a54925e323ed88a489af4672c7ebe3e2
6
+ metadata.gz: 1a5bbf229bc95b2f29d044bb769a6dc1e3045d47de6dcf369c627e510825768d09329ecd83c5bdd4cfb15db20b7a883e9242c074740de35c8fa0d06818f4072b
7
+ data.tar.gz: a54068948b5adba97fde9b314a0309c4eb479954c9a211736246a7b9eebf367793df49aa5c30ae320db036c77f6d7121079738d35cb8720d3eb0ad61b4b75134
checksums.yaml.gz.sig CHANGED
Binary file
@@ -20,6 +20,7 @@ module Milestoner
20
20
  case [min, max]
21
21
  in MIN, MAX then git.tag_last.bind { |tag| git.commits "#{tag}..#{max}" }
22
22
  in String, String then git.commits "#{min}..#{max}"
23
+ in nil, String then git.commits max
23
24
  else Failure "Invalid minimum and/or maximum range: #{min}..#{max}."
24
25
  end
25
26
  end
@@ -35,8 +35,10 @@ module Milestoner
35
35
 
36
36
  def collect = git.tagged? ? git.tags("--sort=taggerdate") : placeholder_with_commits
37
37
 
38
+ # :reek:FeatureEnvy
38
39
  def tail references
39
40
  references.append "HEAD" if settings.build_tail == "head"
41
+ references.prepend nil if references.one?
40
42
  references
41
43
  end
42
44
 
@@ -12,7 +12,7 @@ module Milestoner
12
12
  using Refinements::Hash
13
13
 
14
14
  Root = lambda do |attributes, key = :build_root|
15
- attributes.transform_with! key => -> value { Pathname(value).expand_path }
15
+ attributes.transform_value!(key) { |value| Pathname(value).expand_path }
16
16
  Dry::Monads::Success attributes
17
17
  end
18
18
  end
@@ -14,6 +14,12 @@ module Milestoner
14
14
 
15
15
  using Refine
16
16
 
17
+ def self.authors_for tags
18
+ tags.flat_map { |tag| tag.commits.map(&:author) }
19
+ .then { |users| users.any? ? users : tags.map(&:author) }
20
+ .uniq
21
+ end
22
+
17
23
  def initialize(client: RSS::Maker, view: Views::Milestones::Show.new, **)
18
24
  super(**)
19
25
  @client = client
@@ -56,10 +62,7 @@ module Milestoner
56
62
  def build_channel_elements node, tags
57
63
  build_links node
58
64
  build_generator node
59
-
60
- build_authors node,
61
- tags.flat_map { |tag| tag.commits.map(&:author) }
62
- .uniq
65
+ build_authors node, self.class.authors_for(tags)
63
66
 
64
67
  node.categories.build label: settings.project_label, term: settings.project_name
65
68
  end
@@ -6,7 +6,7 @@ require "hanami/view"
6
6
 
7
7
  module Milestoner
8
8
  module Views
9
- # Provides a custom context.
9
+ # The view context.
10
10
  class Context < Hanami::View::Context
11
11
  extend Forwardable
12
12
 
@@ -5,7 +5,7 @@ require "hanami/view"
5
5
  module Milestoner
6
6
  module Views
7
7
  module Milestones
8
- # Renders release notes.
8
+ # The show view.
9
9
  class Show < Hanami::View
10
10
  include Import[:settings]
11
11
 
@@ -6,7 +6,7 @@ require "refinements/array"
6
6
  module Milestoner
7
7
  module Views
8
8
  module Parts
9
- # Provides commit presentation logic.
9
+ # The commit presentation logic.
10
10
  # :reek:RepeatedConditional
11
11
  class Commit < Hanami::View::Part
12
12
  include Import[:settings, :sanitizer]
@@ -6,7 +6,7 @@ require "refinements/string"
6
6
  module Milestoner
7
7
  module Views
8
8
  module Parts
9
- # Provides tag presentation logic.
9
+ # The tag presentation logic.
10
10
  class Tag < Hanami::View::Part
11
11
  include Import[:settings]
12
12
 
@@ -5,7 +5,7 @@ require "hanami/view"
5
5
  module Milestoner
6
6
  module Views
7
7
  module Parts
8
- # Provides user presentation logic.
8
+ # The user presentation logic.
9
9
  class User < Hanami::View::Part
10
10
  include Import[:settings]
11
11
 
@@ -6,7 +6,7 @@ require "hanami/view"
6
6
  module Milestoner
7
7
  module Views
8
8
  module Scopes
9
- # Provides content specific behavior for partials.
9
+ # The content specific behavior for partials.
10
10
  class Content < Hanami::View::Scope
11
11
  def content = String locals.fetch(:content, Core::EMPTY_STRING)
12
12
 
@@ -6,7 +6,7 @@ require "hanami/view"
6
6
  module Milestoner
7
7
  module Views
8
8
  module Scopes
9
- # Provides logo specific behavior for partials.
9
+ # The logo specific behavior for partials.
10
10
  class Logo < Hanami::View::Scope
11
11
  def call = project_uri_logo ? render("milestones/logo") : Core::EMPTY_STRING
12
12
  end
@@ -5,7 +5,7 @@ require "hanami/view"
5
5
  module Milestoner
6
6
  module Views
7
7
  module Scopes
8
- # Provides tag signature specific behavior for partials.
8
+ # The tag signature specific behavior for partials.
9
9
  class TagSignature < Hanami::View::Scope
10
10
  def initialize(part: Parts::Tag.new(value: Models::Tag.new), **)
11
11
  @part = part
@@ -5,7 +5,7 @@ require "hanami/view"
5
5
  module Milestoner
6
6
  module Views
7
7
  module Scopes
8
- # Provides users specific behavior for partials.
8
+ # The users specific behavior for partials.
9
9
  class Users < Hanami::View::Scope
10
10
  def call = users.any? ? render("milestones/users", users:) : render("milestones/none")
11
11
  end
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 = "18.6.0"
5
+ spec.version = "18.8.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/milestoner"
@@ -33,18 +33,18 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency "etcher", "~> 2.1"
34
34
  spec.add_dependency "gitt", "~> 3.9"
35
35
  spec.add_dependency "hanami-view", "~> 2.1"
36
- spec.add_dependency "infusible", "~> 3.8"
36
+ spec.add_dependency "infusible", "~> 3.11"
37
37
  spec.add_dependency "lode", "~> 1.8"
38
38
  spec.add_dependency "redcarpet", "~> 3.6"
39
- spec.add_dependency "refinements", "~> 12.8"
39
+ spec.add_dependency "refinements", "~> 12.9"
40
40
  spec.add_dependency "rouge", "~> 4.4"
41
41
  spec.add_dependency "rss", "~> 0.3"
42
42
  spec.add_dependency "runcom", "~> 11.5"
43
43
  spec.add_dependency "sanitize", "~> 6.1"
44
- spec.add_dependency "sod", "~> 0.14"
44
+ spec.add_dependency "sod", "~> 0.17"
45
45
  spec.add_dependency "spek", "~> 3.0"
46
46
  spec.add_dependency "versionaire", "~> 13.0"
47
- spec.add_dependency "zeitwerk", "~> 2.6"
47
+ spec.add_dependency "zeitwerk", "~> 2.7"
48
48
 
49
49
  spec.bindir = "exe"
50
50
  spec.executables << "milestoner"
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: 18.6.0
4
+ version: 18.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
36
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
37
37
  -----END CERTIFICATE-----
38
- date: 2024-09-20 00:00:00.000000000 Z
38
+ date: 2024-10-18 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: asciidoctor
@@ -183,14 +183,14 @@ dependencies:
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: '3.8'
186
+ version: '3.11'
187
187
  type: :runtime
188
188
  prerelease: false
189
189
  version_requirements: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: '3.8'
193
+ version: '3.11'
194
194
  - !ruby/object:Gem::Dependency
195
195
  name: lode
196
196
  requirement: !ruby/object:Gem::Requirement
@@ -225,14 +225,14 @@ dependencies:
225
225
  requirements:
226
226
  - - "~>"
227
227
  - !ruby/object:Gem::Version
228
- version: '12.8'
228
+ version: '12.9'
229
229
  type: :runtime
230
230
  prerelease: false
231
231
  version_requirements: !ruby/object:Gem::Requirement
232
232
  requirements:
233
233
  - - "~>"
234
234
  - !ruby/object:Gem::Version
235
- version: '12.8'
235
+ version: '12.9'
236
236
  - !ruby/object:Gem::Dependency
237
237
  name: rouge
238
238
  requirement: !ruby/object:Gem::Requirement
@@ -295,14 +295,14 @@ dependencies:
295
295
  requirements:
296
296
  - - "~>"
297
297
  - !ruby/object:Gem::Version
298
- version: '0.14'
298
+ version: '0.17'
299
299
  type: :runtime
300
300
  prerelease: false
301
301
  version_requirements: !ruby/object:Gem::Requirement
302
302
  requirements:
303
303
  - - "~>"
304
304
  - !ruby/object:Gem::Version
305
- version: '0.14'
305
+ version: '0.17'
306
306
  - !ruby/object:Gem::Dependency
307
307
  name: spek
308
308
  requirement: !ruby/object:Gem::Requirement
@@ -337,14 +337,14 @@ dependencies:
337
337
  requirements:
338
338
  - - "~>"
339
339
  - !ruby/object:Gem::Version
340
- version: '2.6'
340
+ version: '2.7'
341
341
  type: :runtime
342
342
  prerelease: false
343
343
  version_requirements: !ruby/object:Gem::Requirement
344
344
  requirements:
345
345
  - - "~>"
346
346
  - !ruby/object:Gem::Version
347
- version: '2.6'
347
+ version: '2.7'
348
348
  description:
349
349
  email:
350
350
  - brooke@alchemists.io
@@ -525,7 +525,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
525
525
  - !ruby/object:Gem::Version
526
526
  version: '0'
527
527
  requirements: []
528
- rubygems_version: 3.5.19
528
+ rubygems_version: 3.5.21
529
529
  signing_key:
530
530
  specification_version: 4
531
531
  summary: A command line interface for automated Git repository milestones.
metadata.gz.sig CHANGED
Binary file