milestoner 18.6.0 → 18.7.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: acc8c51f0fa0cacdf7e8bc0e871a697520ce09c2b7af09c1dba01c1632b06671
4
- data.tar.gz: 164ef1e821b63b7b382cbcb4dda7a9450c7d0493dfb92436b2161fcc983599f3
3
+ metadata.gz: 901e8a713ea79f21041e145d69abc34d2c17b7faba71fd66f71710f4bae1e1d7
4
+ data.tar.gz: 4906056cdb0ed711a675f99bf0be6206ace26552b304351c42027d07348eaa34
5
5
  SHA512:
6
- metadata.gz: a999795a124cc155086e5826bd64880f9838d415e941b455cab6141bd66a05713e47009afbc11749809ff7692aced45bb13878f4a6fc0620ec520536f5741d0d
7
- data.tar.gz: f2e01fb0744c54b2d1b6c87f7bd7932c71bde127a5509a101e05b37c87cc340371af596fd3bcf5edf72dfbcd25a99505a54925e323ed88a489af4672c7ebe3e2
6
+ metadata.gz: 8cedae5d5a1097ca144f3f327337620d2368759aa9bbbcb4ec804132733c6fa2a1e0733c5d6a572289740084154159b2f8aeb526e4ae94854ebcf0a927f154e0
7
+ data.tar.gz: 1a7e11af7e982976df1428468bb91db6fafceb6ac65e24dfbc504706730e0d02522e24939708c29d3e87bb2f6f022b9c940c203bcbd77a980aa56b50460d15e4
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.7.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/milestoner"
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency "infusible", "~> 3.8"
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"
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.7.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-04 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: asciidoctor
@@ -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
@@ -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