milestoner 18.6.0 → 18.7.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: 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