milestoner 18.11.0 → 18.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/milestoner/commits/categorizer.rb +1 -1
  4. data/lib/milestoner/commits/enricher.rb +3 -1
  5. data/lib/milestoner/commits/enrichers/author.rb +1 -1
  6. data/lib/milestoner/commits/enrichers/body.rb +1 -1
  7. data/lib/milestoner/commits/enrichers/colleague.rb +1 -1
  8. data/lib/milestoner/commits/enrichers/container.rb +2 -0
  9. data/lib/milestoner/commits/enrichers/format.rb +1 -1
  10. data/lib/milestoner/commits/enrichers/issue.rb +1 -1
  11. data/lib/milestoner/commits/enrichers/milestone.rb +1 -1
  12. data/lib/milestoner/commits/enrichers/note.rb +1 -1
  13. data/lib/milestoner/commits/enrichers/review.rb +1 -1
  14. data/lib/milestoner/commits/enrichers/time.rb +20 -0
  15. data/lib/milestoner/commits/tagger.rb +1 -1
  16. data/lib/milestoner/commits/versioner.rb +1 -1
  17. data/lib/milestoner/configuration/transformers/gems/description.rb +1 -1
  18. data/lib/milestoner/configuration/transformers/gems/label.rb +1 -1
  19. data/lib/milestoner/configuration/transformers/gems/name.rb +1 -1
  20. data/lib/milestoner/configuration/transformers/gems/uri.rb +1 -1
  21. data/lib/milestoner/configuration/transformers/generator/label.rb +1 -1
  22. data/lib/milestoner/configuration/transformers/generator/uri.rb +1 -1
  23. data/lib/milestoner/configuration/transformers/generator/version.rb +1 -1
  24. data/lib/milestoner/configuration/transformers/project/author.rb +1 -1
  25. data/lib/milestoner/container.rb +2 -0
  26. data/lib/milestoner/models/commit.rb +7 -0
  27. data/lib/milestoner/views/scopes/tag_signature.rb +1 -1
  28. data/milestoner.gemspec +2 -1
  29. data.tar.gz.sig +0 -0
  30. metadata +17 -2
  31. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0156e01c5f787dbeb92e36c4f3b8d99fc6ac38d2e9a9d085e8a36bd1dd5bcad1
4
- data.tar.gz: 5e138700d0bcdac1c81c1020ff07242d0f5b7024f21d2ff5ea8f847bc79555ab
3
+ metadata.gz: e9ed4141a024a3afb6dd224f6d8f6e52db2c189bfc7ff121d39d29bf0423abb9
4
+ data.tar.gz: 966e8a280416c847a955b4ed3f674c42ea1ccebe7b8a1c8e8a48012df5743c26
5
5
  SHA512:
6
- metadata.gz: 4b349ed6026044502415ff19bc85b24345af9a9bf0c8759dd4fc7fe26ad2d62c38b8ff5d5bd4db583e081e7bf8c68aa0ee9f76a74eb9a2115c7a8684a82c3fb1
7
- data.tar.gz: 55b056802507cf620447509111ee821c2583deb1a8ae5d4ed61ad16d67616c3d48c80c82e5900dfdd56315f61a186baacbd8dff282c8251241b596732686746c
6
+ metadata.gz: '04963da39631d44ed1617b4e341c846a270359002cd2ab1b4728e2fce374fc0f96ea335bba338d0f005a07cb07ad2f5fd69864a901652d8418d0ab42c78d990d'
7
+ data.tar.gz: 9c8a92faff3f870ccf7ba95bb2d5bf889273952465ed4ce6931c9386c578e50f042651bbc853acfc20d6fdc1dddf553e67ffa66d356eb0199434cd68d5a9c11a
checksums.yaml.gz.sig CHANGED
Binary file
@@ -12,9 +12,9 @@ module Milestoner
12
12
  using Refinements::Array
13
13
 
14
14
  def initialize(collector: Collector.new, **)
15
- @collector = collector
16
15
  super(**)
17
16
 
17
+ @collector = collector
18
18
  @labels = settings.commit_categories.pluck :label
19
19
  @pattern = labels.empty? ? // : Regexp.union(labels)
20
20
  end
@@ -12,21 +12,23 @@ module Milestoner
12
12
  :author,
13
13
  :body,
14
14
  :collaborators,
15
+ :created_at,
15
16
  :format,
16
17
  :issue,
17
18
  :milestone,
18
19
  :notes,
19
20
  :review,
20
21
  :signers,
22
+ :updated_at,
21
23
  :uri
22
24
  ]
23
25
 
24
26
  include Dry::Monads[:result]
25
27
 
26
28
  def initialize(categorizer: Commits::Categorizer.new, model: Models::Commit, **)
29
+ super(**)
27
30
  @categorizer = categorizer
28
31
  @model = model
29
- super(**)
30
32
  end
31
33
 
32
34
  def call min: Collector::MIN, max: Collector::MAX
@@ -8,8 +8,8 @@ module Milestoner
8
8
  include Milestoner::Import[:cache]
9
9
 
10
10
  def initialize(model: Models::User, **)
11
- @model = model
12
11
  super(**)
12
+ @model = model
13
13
  end
14
14
 
15
15
  def call commit
@@ -8,9 +8,9 @@ module Milestoner
8
8
  include Milestoner::Import[:settings]
9
9
 
10
10
  def initialize(key: "Format", renderer: Renderers::Universal.new, **)
11
+ super(**)
11
12
  @key = key
12
13
  @renderer = renderer
13
- super(**)
14
14
  end
15
15
 
16
16
  def call commit
@@ -10,9 +10,9 @@ module Milestoner
10
10
  include Milestoner::Import[:cache]
11
11
 
12
12
  def initialize(key:, parser: Gitt::Parsers::Person.new, **)
13
+ super(**)
13
14
  @key = key
14
15
  @parser = parser
15
- super(**)
16
16
  end
17
17
 
18
18
  def call(commit) = commit.find_trailers(key).bind { |trailers| users_for(trailers).compact }
@@ -12,12 +12,14 @@ module Milestoner
12
12
  register(:author) { Author.new }
13
13
  register(:body) { Body.new }
14
14
  register(:collaborators) { Colleague.new key: "Co-authored-by" }
15
+ register(:created_at) { Time.new key: :authored_at }
15
16
  register(:format) { Format.new }
16
17
  register(:issue) { Issue.new }
17
18
  register(:milestone) { Milestone.new }
18
19
  register(:notes) { Note.new }
19
20
  register(:review) { Review.new }
20
21
  register(:signers) { Colleague.new key: "Signed-off-by" }
22
+ register(:updated_at) { Time.new key: :committed_at }
21
23
  register(:uri) { URI.new }
22
24
  end
23
25
  end
@@ -8,8 +8,8 @@ module Milestoner
8
8
  include Milestoner::Import[:settings]
9
9
 
10
10
  def initialize(key: "Format", **)
11
- @key = key
12
11
  super(**)
12
+ @key = key
13
13
  end
14
14
 
15
15
  def call(commit) = commit.trailer_value_for(key).value_or(settings.commit_format)
@@ -8,9 +8,9 @@ module Milestoner
8
8
  include Milestoner::Import[:settings]
9
9
 
10
10
  def initialize(key: "Issue", model: Models::Link, **)
11
+ super(**)
11
12
  @key = key
12
13
  @model = model
13
- super(**)
14
14
  end
15
15
 
16
16
  def call commit
@@ -8,9 +8,9 @@ module Milestoner
8
8
  include Milestoner::Import[:settings]
9
9
 
10
10
  def initialize(key: "Milestone", default: "unknown", **)
11
+ super(**)
11
12
  @key = key
12
13
  @default = default
13
- super(**)
14
14
  end
15
15
 
16
16
  def call(commit) = commit.trailer_value_for(key).value_or(default)
@@ -8,9 +8,9 @@ module Milestoner
8
8
  include Milestoner::Import[:settings]
9
9
 
10
10
  def initialize(key: "Format", renderer: Renderers::Universal.new, **)
11
+ super(**)
11
12
  @key = key
12
13
  @renderer = renderer
13
- super(**)
14
14
  end
15
15
 
16
16
  def call commit
@@ -8,8 +8,8 @@ module Milestoner
8
8
  include Milestoner::Import[:settings]
9
9
 
10
10
  def initialize(model: Models::Link, **)
11
- @model = model
12
11
  super(**)
12
+ @model = model
13
13
  end
14
14
 
15
15
  def call(*) = model[id: "All", uri: format(settings.review_uri, id: nil)]
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Milestoner
4
+ module Commits
5
+ module Enrichers
6
+ # Enriches raw time as a Time instance.
7
+ class Time
8
+ def initialize key:
9
+ @key = key
10
+ end
11
+
12
+ def call(commit) = ::Time.at commit.public_send(key).to_i
13
+
14
+ private
15
+
16
+ attr_reader :key
17
+ end
18
+ end
19
+ end
20
+ end
@@ -18,9 +18,9 @@ module Milestoner
18
18
  using Refinements::Struct
19
19
 
20
20
  def initialize(enricher: Commits::Enricher.new, model: Models::Tag, **)
21
+ super(**)
21
22
  @enricher = enricher
22
23
  @model = model
23
- super(**)
24
24
  end
25
25
 
26
26
  def call
@@ -16,9 +16,9 @@ module Milestoner
16
16
  DEFAULTS = {trailer_key: "Milestone", fallback: Versionaire::Version.new}.freeze
17
17
 
18
18
  def initialize(defaults: DEFAULTS, collector: Collector.new, **)
19
+ super(**)
19
20
  @defaults = defaults
20
21
  @collector = collector
21
- super(**)
22
22
  end
23
23
 
24
24
  def call
@@ -13,9 +13,9 @@ module Milestoner
13
13
  include Dry::Monads[:result]
14
14
 
15
15
  def initialize(key = :project_description, path: "#{Pathname.pwd.basename}.gemspec", **)
16
+ super(**)
16
17
  @key = key
17
18
  @path = path
18
- super(**)
19
19
  end
20
20
 
21
21
  def call attributes
@@ -13,9 +13,9 @@ module Milestoner
13
13
  include Dry::Monads[:result]
14
14
 
15
15
  def initialize(key = :project_label, path: "#{Pathname.pwd.basename}.gemspec", **)
16
+ super(**)
16
17
  @key = key
17
18
  @path = path
18
- super(**)
19
19
  end
20
20
 
21
21
  def call attributes
@@ -13,9 +13,9 @@ module Milestoner
13
13
  include Dry::Monads[:result]
14
14
 
15
15
  def initialize(key = :project_name, path: "#{Pathname.pwd.basename}.gemspec", **)
16
+ super(**)
16
17
  @key = key
17
18
  @path = path
18
- super(**)
19
19
  end
20
20
 
21
21
  def call attributes
@@ -13,9 +13,9 @@ module Milestoner
13
13
  include Dry::Monads[:result]
14
14
 
15
15
  def initialize(key = :project_uri, path: "#{Pathname.pwd.basename}.gemspec", **)
16
+ super(**)
16
17
  @key = key
17
18
  @path = path
18
- super(**)
19
19
  end
20
20
 
21
21
  def call attributes
@@ -12,8 +12,8 @@ module Milestoner
12
12
  include Dry::Monads[:result]
13
13
 
14
14
  def initialize(key = :generator_label, **)
15
- @key = key
16
15
  super(**)
16
+ @key = key
17
17
  end
18
18
 
19
19
  def call attributes
@@ -12,8 +12,8 @@ module Milestoner
12
12
  include Dry::Monads[:result]
13
13
 
14
14
  def initialize(key = :generator_uri, **)
15
- @key = key
16
15
  super(**)
16
+ @key = key
17
17
  end
18
18
 
19
19
  def call attributes
@@ -12,8 +12,8 @@ module Milestoner
12
12
  include Dry::Monads[:result]
13
13
 
14
14
  def initialize(key = :generator_version, **)
15
- @key = key
16
15
  super(**)
16
+ @key = key
17
17
  end
18
18
 
19
19
  def call attributes
@@ -12,8 +12,8 @@ module Milestoner
12
12
  include Dry::Monads[:result]
13
13
 
14
14
  def initialize(key = :project_author, **)
15
- @key = key
16
15
  super(**)
16
+ @key = key
17
17
  end
18
18
 
19
19
  def call attributes
@@ -7,6 +7,7 @@ require "gitt"
7
7
  require "lode"
8
8
  require "runcom"
9
9
  require "spek"
10
+ require "tone"
10
11
 
11
12
  module Milestoner
12
13
  # Provides a global gem container for injection into other objects.
@@ -68,6 +69,7 @@ module Milestoner
68
69
  register(:spec_loader) { Spek::Loader.new }
69
70
  register(:git) { Gitt::Repository.new }
70
71
  register(:defaults_path) { Pathname(__dir__).join("configuration/defaults.yml") }
72
+ register(:color) { Tone.new }
71
73
  register(:logger) { Cogger.new id: :milestoner }
72
74
  register :io, STDOUT
73
75
  end
@@ -6,9 +6,13 @@ module Milestoner
6
6
  module Models
7
7
  COMMIT_COMMON_ATTRIBUTES = %i[
8
8
  authored_at
9
+ authored_relative_at
9
10
  body
10
11
  body_lines
12
+ committed_at
13
+ committed_relative_at
11
14
  deletions
15
+ encoding
12
16
  files_changed
13
17
  fingerprint
14
18
  fingerprint_key
@@ -22,11 +26,14 @@ module Milestoner
22
26
  COMMIT_ENRICHED_ATTRIBUTES = %i[
23
27
  author
24
28
  collaborators
29
+ created_at
25
30
  format
26
31
  issue
27
32
  milestone
33
+ position
28
34
  review
29
35
  signers
36
+ updated_at
30
37
  uri
31
38
  ].freeze
32
39
 
@@ -8,8 +8,8 @@ module Milestoner
8
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
- @part = part
12
11
  super(**)
12
+ @part = part
13
13
  end
14
14
 
15
15
  def tag = locals.fetch :tag, part
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.11.0"
5
+ spec.version = "18.12.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/milestoner"
@@ -43,6 +43,7 @@ Gem::Specification.new do |spec|
43
43
  spec.add_dependency "sanitize", "~> 6.1"
44
44
  spec.add_dependency "sod", "~> 0.20"
45
45
  spec.add_dependency "spek", "~> 3.0"
46
+ spec.add_dependency "tone", "~> 1.0"
46
47
  spec.add_dependency "versionaire", "~> 13.10"
47
48
  spec.add_dependency "zeitwerk", "~> 2.7"
48
49
 
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.11.0
4
+ version: 18.12.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-11-13 00:00:00.000000000 Z
38
+ date: 2024-12-15 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: asciidoctor
@@ -317,6 +317,20 @@ dependencies:
317
317
  - - "~>"
318
318
  - !ruby/object:Gem::Version
319
319
  version: '3.0'
320
+ - !ruby/object:Gem::Dependency
321
+ name: tone
322
+ requirement: !ruby/object:Gem::Requirement
323
+ requirements:
324
+ - - "~>"
325
+ - !ruby/object:Gem::Version
326
+ version: '1.0'
327
+ type: :runtime
328
+ prerelease: false
329
+ version_requirements: !ruby/object:Gem::Requirement
330
+ requirements:
331
+ - - "~>"
332
+ - !ruby/object:Gem::Version
333
+ version: '1.0'
320
334
  - !ruby/object:Gem::Dependency
321
335
  name: versionaire
322
336
  requirement: !ruby/object:Gem::Requirement
@@ -398,6 +412,7 @@ files:
398
412
  - lib/milestoner/commits/enrichers/milestone.rb
399
413
  - lib/milestoner/commits/enrichers/note.rb
400
414
  - lib/milestoner/commits/enrichers/review.rb
415
+ - lib/milestoner/commits/enrichers/time.rb
401
416
  - lib/milestoner/commits/enrichers/uri.rb
402
417
  - lib/milestoner/commits/tagger.rb
403
418
  - lib/milestoner/commits/versioner.rb
metadata.gz.sig CHANGED
Binary file