milestoner 17.6.0 → 17.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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +5 -3
  3. data/lib/milestoner/builders/ascii_doc.rb +2 -0
  4. data/lib/milestoner/builders/markdown.rb +2 -0
  5. data/lib/milestoner/builders/stream.rb +2 -0
  6. data/lib/milestoner/builders/web.rb +2 -0
  7. data/lib/milestoner/cli/actions/build/label.rb +0 -2
  8. data/lib/milestoner/cli/actions/build/root.rb +0 -1
  9. data/lib/milestoner/cli/actions/build/version.rb +0 -2
  10. data/lib/milestoner/cli/actions/cache/create.rb +1 -1
  11. data/lib/milestoner/cli/actions/cache/delete.rb +1 -1
  12. data/lib/milestoner/cli/actions/cache/find.rb +1 -1
  13. data/lib/milestoner/cli/actions/cache/list.rb +1 -1
  14. data/lib/milestoner/cli/actions/publish.rb +0 -2
  15. data/lib/milestoner/cli/commands/build.rb +0 -3
  16. data/lib/milestoner/cli/commands/cache.rb +0 -3
  17. data/lib/milestoner/commits/categorizer.rb +2 -2
  18. data/lib/milestoner/commits/enrichers/author.rb +1 -1
  19. data/lib/milestoner/commits/enrichers/colleague.rb +1 -1
  20. data/lib/milestoner/commits/versioner.rb +2 -1
  21. data/lib/milestoner/configuration/transformers/build/root.rb +3 -3
  22. data/lib/milestoner/configuration/transformers/build/template_paths.rb +1 -1
  23. data/lib/milestoner/configuration/transformers/citations/description.rb +4 -4
  24. data/lib/milestoner/configuration/transformers/citations/label.rb +4 -4
  25. data/lib/milestoner/configuration/transformers/gems/description.rb +3 -4
  26. data/lib/milestoner/configuration/transformers/gems/label.rb +4 -5
  27. data/lib/milestoner/configuration/transformers/gems/name.rb +3 -4
  28. data/lib/milestoner/configuration/transformers/gems/uri.rb +4 -5
  29. data/lib/milestoner/configuration/transformers/generator/label.rb +3 -3
  30. data/lib/milestoner/configuration/transformers/generator/uri.rb +3 -3
  31. data/lib/milestoner/configuration/transformers/generator/version.rb +3 -3
  32. data/lib/milestoner/configuration/transformers/project/author.rb +3 -3
  33. data/lib/milestoner/configuration/transformers/project/generator.rb +2 -2
  34. data/lib/milestoner/configuration/transformers/project/label.rb +3 -3
  35. data/lib/milestoner/configuration/transformers/project/name.rb +3 -3
  36. data/lib/milestoner/configuration/transformers/project/version.rb +3 -3
  37. data/lib/milestoner/configuration/transformers/uri/avatar.rb +5 -6
  38. data/lib/milestoner/configuration/transformers/uri/commit.rb +8 -9
  39. data/lib/milestoner/configuration/transformers/uri/profile.rb +5 -6
  40. data/lib/milestoner/configuration/transformers/uri/review.rb +8 -9
  41. data/lib/milestoner/configuration/transformers/uri/tracker.rb +8 -9
  42. data/lib/milestoner/tags/creator.rb +5 -2
  43. data/lib/milestoner/views/context.rb +4 -1
  44. data/lib/milestoner/views/milestones/show.rb +0 -1
  45. data/lib/milestoner/views/parts/commit.rb +0 -1
  46. data/milestoner.gemspec +4 -3
  47. data.tar.gz.sig +0 -0
  48. metadata +20 -6
  49. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73e28707596b9a5a610632108ac373ae2984e1633a60d35cb9872feb8a74de3e
4
- data.tar.gz: 2d33c22077971f71e777940357c03c2b718c459d5afee825eda5e63bd8b487c6
3
+ metadata.gz: e1ba81535b2b7f13eee65139650927c6b6fd89d1f4ce7a91bd8bd8b5f193b938
4
+ data.tar.gz: bf82ebc6322e1509786691305dd7426716db0aa1edb118f244379ed147de9419
5
5
  SHA512:
6
- metadata.gz: a576d44498a17dfa4e970f08d7a5d3daa2d4e74d63947eadf7d2ba217e22a5b3b6128156d8358116741582c04689ea1039c379f28b794df43b11dd44fade2691
7
- data.tar.gz: 50e1485b233665729c633bec2be2a3301772b136abe9dba8098a6e3734354048938f4ea835d8db99ff4c82af5d733b78621a7e768191a08420bd35d7e69e79ef
6
+ metadata.gz: da5ab0c1fb070b621f23d3cd2109fbc88197bc7ef605245fb92d8fd598a352d8f35ebdc7774b5649a0c9e305a08bfb625c0bf32a4d606a6f7ed25b9c666a4691
7
+ data.tar.gz: 93aa467526e6ac43d881834499220c0f0a73d1a0a463b85abc6ad2ff2e63aa5210f5bfa06916f7cfbded178af3383fc45f0d65e5438bfc5729f86ef267db6bd9
checksums.yaml.gz.sig CHANGED
@@ -1,3 +1,5 @@
1
- X�Ă������g�.������u9��[A8��57�g5t=)W׸�ޭ��sO����0��p(��'mR�e �<m4Xw?�yy�fR���nG�������~�xS�ꌴD�=*^��p�-��#��hn|PW�:
2
- ������~4}㭅��,sw��D&(||� ��F��"��t���M���˺P��U��]S��T6)+�n��Ȍ��oo�z �戽
3
- )6��ly܂Ϩ �/sQY�%&{nx��D���F���Hn��^����5��4F��{*���)P@��w��k���R��vJWZd8;�܉�Oq�\��~~2.��r��y 2
1
+ id @,.m������NLG��'�B��ҭ*�&���`���sn�6�x��t��LCX���Sp
2
+ E'0q 9z�AUu��Zj)"��j���"�p�l?-Sx��ZG��F
3
+ �I�7ё��gH6��O͉�KiAƵ+ �"��_ F��c5"_v %z.$�eY/mY2%`�ɑUq}Yr=)�ͻ�����
4
+ ' Bًϙ]C���B��/�H�js�L^A�w8~�����O�d�BWuk�
5
+ ��n��mm( �7��6h�iC]���ap�G܀�;�\)ӱ����� :
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "refinements/pathname"
4
+
3
5
  module Milestoner
4
6
  module Builders
5
7
  # Builds Markdown page output.
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "refinements/pathname"
4
+
3
5
  module Milestoner
4
6
  module Builders
5
7
  # Builds Markdown page output.
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "refinements/pathname"
4
+
3
5
  module Milestoner
4
6
  module Builders
5
7
  # Builds I/O stream output.
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "refinements/pathname"
4
+
3
5
  module Milestoner
4
6
  module Builders
5
7
  # Builds web page output (i.e. HTML and CSS).
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "pathname"
4
3
  require "sod"
5
- require "spek"
6
4
 
7
5
  module Milestoner
8
6
  module CLI
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "pathname"
4
3
  require "sod"
5
4
 
6
5
  module Milestoner
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "pathname"
4
3
  require "sod"
5
- require "spek"
6
4
  require "versionaire"
7
5
 
8
6
  module Milestoner
@@ -24,7 +24,7 @@ module Milestoner
24
24
 
25
25
  def process values
26
26
  external_id, handle, name = values.split ","
27
- client.commit(:users) { upsert({external_id:, handle:, name:}) }
27
+ client.write(:users) { upsert({external_id:, handle:, name:}) }
28
28
  end
29
29
 
30
30
  def log_info(message) = logger.info { message }
@@ -15,7 +15,7 @@ module Milestoner
15
15
  on %w[-d --delete], argument: "NAME"
16
16
 
17
17
  def call name
18
- client.commit(:users) { delete name }
18
+ client.write(:users) { delete name }
19
19
  .either(method(:success), method(:failure))
20
20
  end
21
21
 
@@ -15,7 +15,7 @@ module Milestoner
15
15
  on %w[-f --find], argument: "NAME"
16
16
 
17
17
  def call name
18
- client.commit(:users) { find name }
18
+ client.read(:users) { find name }
19
19
  .either(method(:success), method(:failure))
20
20
  end
21
21
 
@@ -16,7 +16,7 @@ module Milestoner
16
16
 
17
17
  def call(*)
18
18
  logger.info { "Listing users..." }
19
- client.commit(:users, &:all).bind { |users| print users }
19
+ client.read(:users, &:all).bind { |users| print users }
20
20
  end
21
21
 
22
22
  private
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/struct"
4
3
  require "sod"
5
4
  require "versionaire"
6
5
 
@@ -11,7 +10,6 @@ module Milestoner
11
10
  class Publish < Sod::Action
12
11
  include Import[:configuration]
13
12
 
14
- using Refinements::Struct
15
13
  using Versionaire::Cast
16
14
 
17
15
  description "Publish milestone."
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/pathname"
4
3
  require "sod"
5
4
 
6
5
  module Milestoner
@@ -11,8 +10,6 @@ module Milestoner
11
10
  include Import[:input, :logger, :kernel]
12
11
  include Builders::Import[:ascii_doc, :markdown, :stream, :web]
13
12
 
14
- using Refinements::Pathname
15
-
16
13
  handle "build"
17
14
 
18
15
  description "Build milestone."
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/pathname"
4
3
  require "sod"
5
4
 
6
5
  module Milestoner
@@ -10,8 +9,6 @@ module Milestoner
10
9
  class Cache < Sod::Command
11
10
  include Import[:input, :logger]
12
11
 
13
- using Refinements::Pathname
14
-
15
12
  handle "cache"
16
13
 
17
14
  description "Manage cache."
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "core"
3
4
  require "refinements/array"
4
- require "versionaire"
5
5
 
6
6
  module Milestoner
7
7
  module Commits
@@ -33,7 +33,7 @@ module Milestoner
33
33
  attr_reader :collector, :expression
34
34
 
35
35
  def group_by_category categories, groups
36
- collector.call.value_or([]).each.with_object groups do |commit, collection|
36
+ collector.call.value_or(Core::EMPTY_ARRAY).each.with_object groups do |commit, collection|
37
37
  category = commit.subject[subject_pattern(categories)]
38
38
  key = collection.key?(category) ? category : "Unknown"
39
39
  collection[key] << commit
@@ -13,7 +13,7 @@ module Milestoner
13
13
  end
14
14
 
15
15
  def call commit
16
- cache.commit(:users) { |table| table.find commit.author_name }
16
+ cache.read(:users) { |table| table.find commit.author_name }
17
17
  .value_or(model.new)
18
18
  end
19
19
 
@@ -24,7 +24,7 @@ module Milestoner
24
24
  def users_for(trailers) = trailers.map { |trailer| user_for parser.call(trailer.value) }
25
25
 
26
26
  def user_for person
27
- cache.commit(:users) { find person.name }
27
+ cache.read(:users) { find person.name }
28
28
  .value_or(nil)
29
29
  end
30
30
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "core"
3
4
  require "dry/monads"
4
5
  require "versionaire"
5
6
 
@@ -30,7 +31,7 @@ module Milestoner
30
31
  attr_reader :defaults, :collector
31
32
 
32
33
  def trailer_milestones
33
- collector.call.value_or([]).each.with_object [] do |commit, values|
34
+ collector.call.value_or(Core::EMPTY_ARRAY).each.with_object [] do |commit, values|
34
35
  commit.trailer_value_for(trailer_key).bind { |milestone| values.append milestone.to_sym }
35
36
  end
36
37
  end
@@ -11,9 +11,9 @@ module Milestoner
11
11
  module Build
12
12
  using Refinements::Hash
13
13
 
14
- Root = lambda do |content, key = :build_root|
15
- content.transform_with! key => -> value { Pathname(value).expand_path }
16
- Dry::Monads::Success content
14
+ Root = lambda do |attributes, key = :build_root|
15
+ attributes.transform_with! key => -> value { Pathname(value).expand_path }
16
+ Dry::Monads::Success attributes
17
17
  end
18
18
  end
19
19
  end
@@ -20,7 +20,7 @@ module Milestoner
20
20
  @xdg_config = xdg_config
21
21
  end
22
22
 
23
- def call(content) = Success content.merge!(key => xdg_config.all.append(default))
23
+ def call(attributes) = Success attributes.merge!(key => xdg_config.all.append(default))
24
24
 
25
25
  private
26
26
 
@@ -23,10 +23,10 @@ module Milestoner
23
23
  @citation = citation
24
24
  end
25
25
 
26
- def call content
27
- content.fetch_value(key) { citation.open(path).abstract }
28
- .then { |value| value unless String(value).empty? }
29
- .then { |value| Success content.merge!(key => value) }
26
+ def call attributes
27
+ attributes.fetch_value(key) { citation.open(path).abstract }
28
+ .then { |value| value unless String(value).empty? }
29
+ .then { |value| Success attributes.merge!(key => value) }
30
30
  end
31
31
 
32
32
  private
@@ -23,10 +23,10 @@ module Milestoner
23
23
  @citation = citation
24
24
  end
25
25
 
26
- def call content
27
- content.fetch_value(key) { citation.open(path).title }
28
- .then { |value| value unless String(value).empty? }
29
- .then { |value| Success content.merge!(key => value) }
26
+ def call attributes
27
+ attributes.fetch_value(key) { citation.open(path).title }
28
+ .then { |value| value unless String(value).empty? }
29
+ .then { |value| Success attributes.merge!(key => value) }
30
30
  end
31
31
 
32
32
  private
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dry/monads"
4
4
  require "pathname"
5
- require "spek"
6
5
 
7
6
  module Milestoner
8
7
  module Configuration
@@ -19,9 +18,9 @@ module Milestoner
19
18
  super(**)
20
19
  end
21
20
 
22
- def call content
23
- content.fetch(key) { spec_loader.call(path).summary }
24
- .then { |value| Success content.merge!(key => value) }
21
+ def call attributes
22
+ attributes.fetch(key) { spec_loader.call(path).summary }
23
+ .then { |value| Success attributes.merge!(key => value) }
25
24
  end
26
25
 
27
26
  private
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dry/monads"
4
4
  require "pathname"
5
- require "spek"
6
5
 
7
6
  module Milestoner
8
7
  module Configuration
@@ -19,10 +18,10 @@ module Milestoner
19
18
  super(**)
20
19
  end
21
20
 
22
- def call content
23
- content.fetch(key) { spec_loader.call(path).label }
24
- .then { |value| value unless value == "Undefined" }
25
- .then { |value| Success content.merge!(key => value) }
21
+ def call attributes
22
+ attributes.fetch(key) { spec_loader.call(path).label }
23
+ .then { |value| value unless value == "Undefined" }
24
+ .then { |value| Success attributes.merge!(key => value) }
26
25
  end
27
26
 
28
27
  private
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dry/monads"
4
4
  require "pathname"
5
- require "spek"
6
5
 
7
6
  module Milestoner
8
7
  module Configuration
@@ -19,9 +18,9 @@ module Milestoner
19
18
  super(**)
20
19
  end
21
20
 
22
- def call content
23
- content.fetch(key) { spec_loader.call(path).name }
24
- .then { |value| Success content.merge!(key => value) }
21
+ def call attributes
22
+ attributes.fetch(key) { spec_loader.call(path).name }
23
+ .then { |value| Success attributes.merge!(key => value) }
25
24
  end
26
25
 
27
26
  private
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dry/monads"
4
4
  require "pathname"
5
- require "spek"
6
5
 
7
6
  module Milestoner
8
7
  module Configuration
@@ -19,10 +18,10 @@ module Milestoner
19
18
  super(**)
20
19
  end
21
20
 
22
- def call content
23
- content.fetch(key) { spec_loader.call(path).homepage_url }
24
- .then { |value| value unless String(value).empty? }
25
- .then { |value| Success content.merge!(key => value) }
21
+ def call attributes
22
+ attributes.fetch(key) { spec_loader.call(path).homepage_url }
23
+ .then { |value| value unless String(value).empty? }
24
+ .then { |value| Success attributes.merge!(key => value) }
26
25
  end
27
26
 
28
27
  private
@@ -16,9 +16,9 @@ module Milestoner
16
16
  super(**)
17
17
  end
18
18
 
19
- def call content
20
- content.fetch(key) { specification.label }
21
- .then { |value| Success content.merge!(key => value) }
19
+ def call attributes
20
+ attributes.fetch(key) { specification.label }
21
+ .then { |value| Success attributes.merge!(key => value) }
22
22
  end
23
23
 
24
24
  private
@@ -16,9 +16,9 @@ module Milestoner
16
16
  super(**)
17
17
  end
18
18
 
19
- def call content
20
- content.fetch(key) { specification.homepage_url }
21
- .then { |value| Success content.merge!(key => value) }
19
+ def call attributes
20
+ attributes.fetch(key) { specification.homepage_url }
21
+ .then { |value| Success attributes.merge!(key => value) }
22
22
  end
23
23
 
24
24
  private
@@ -16,9 +16,9 @@ module Milestoner
16
16
  super(**)
17
17
  end
18
18
 
19
- def call content
20
- content.fetch(key) { specification.version }
21
- .then { |value| Success content.merge!(key => value) }
19
+ def call attributes
20
+ attributes.fetch(key) { specification.version }
21
+ .then { |value| Success attributes.merge!(key => value) }
22
22
  end
23
23
 
24
24
  private
@@ -19,9 +19,9 @@ module Milestoner
19
19
  super(**)
20
20
  end
21
21
 
22
- def call content
23
- content.fetch_value(key) { git.get("user.name", nil).value_or(nil) }
24
- .then { |value| Success content.merge!(key => value) }
22
+ def call attributes
23
+ attributes.fetch_value(key) { git.get("user.name", nil).value_or(nil) }
24
+ .then { |value| Success attributes.merge!(key => value) }
25
25
  end
26
26
 
27
27
  private
@@ -16,13 +16,13 @@ module Milestoner
16
16
  super(**)
17
17
  end
18
18
 
19
- def call content
19
+ def call attributes
20
20
  warn "`#{self.class}##{__method__}` is deprecated, use " \
21
21
  "`Milestoner::Configuration::Transformers::Generator::Label` or " \
22
22
  "`Milestoner::Configuration::Transformers::Generator::URI` instead.",
23
23
  category: :deprecated
24
24
 
25
- Success({key => specification.labeled_version}.merge!(content))
25
+ Success({key => specification.labeled_version}.merge!(attributes))
26
26
  end
27
27
 
28
28
  private
@@ -13,9 +13,9 @@ module Milestoner
13
13
  using Refinements::String
14
14
  using Refinements::Hash
15
15
 
16
- Label = lambda do |content, key = :project_label, default: Pathname.pwd.basename.to_s|
17
- content.fetch_value(key) { default.titleize }
18
- .then { |value| Dry::Monads::Success content.merge!(key => value) }
16
+ Label = lambda do |attributes, key = :project_label, default: Pathname.pwd.basename.to_s|
17
+ attributes.fetch_value(key) { default.titleize }
18
+ .then { |value| Dry::Monads::Success attributes.merge!(key => value) }
19
19
  end
20
20
  end
21
21
  end
@@ -11,9 +11,9 @@ module Milestoner
11
11
  module Project
12
12
  using Refinements::Hash
13
13
 
14
- Name = lambda do |content, key = :project_name, default: Pathname.pwd.basename.to_s|
15
- content.fetch_value(key) { default }
16
- .then { |value| Dry::Monads::Success content.merge!(key => value) }
14
+ Name = lambda do |attributes, key = :project_name, default: Pathname.pwd.basename.to_s|
15
+ attributes.fetch_value(key) { default }
16
+ .then { |value| Dry::Monads::Success attributes.merge!(key => value) }
17
17
  end
18
18
  end
19
19
  end
@@ -18,9 +18,9 @@ module Milestoner
18
18
  @versioner = versioner
19
19
  end
20
20
 
21
- def call content
22
- content.fetch_value(key) { versioner.call }
23
- .then { |value| Success content.merge!(key => value) }
21
+ def call attributes
22
+ attributes.fetch_value(key) { versioner.call }
23
+ .then { |value| Success attributes.merge!(key => value) }
24
24
  end
25
25
 
26
26
  private
@@ -1,19 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dry/monads"
4
- require "pathname"
5
4
 
6
5
  module Milestoner
7
6
  module Configuration
8
7
  module Transformers
9
8
  module URI
10
- Avatar = lambda do |content, key = :avatar_uri|
11
- domain, uri = content.values_at :avatar_domain, key
9
+ Avatar = lambda do |attributes, key = :avatar_uri|
10
+ uri, domain = attributes.values_at key, :avatar_domain
12
11
 
13
- return Dry::Monads::Success content unless uri
12
+ return Dry::Monads::Success attributes unless uri
14
13
 
15
- content[key] = format uri, domain:, id: "%<id>s"
16
- Dry::Monads::Success content
14
+ attributes[key] = format uri, domain:, id: "%<id>s"
15
+ Dry::Monads::Success attributes
17
16
  end
18
17
  end
19
18
  end
@@ -1,22 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dry/monads"
4
- require "pathname"
5
4
 
6
5
  module Milestoner
7
6
  module Configuration
8
7
  module Transformers
9
8
  module URI
10
- Commit = lambda do |content, key = :commit_uri|
11
- owner, name, domain, uri = content.values_at :project_owner,
12
- :project_name,
13
- :commit_domain,
14
- key
9
+ Commit = lambda do |attributes, key = :commit_uri|
10
+ uri, owner, name, domain = attributes.values_at key,
11
+ :project_owner,
12
+ :project_name,
13
+ :commit_domain
15
14
 
16
- return Dry::Monads::Success content unless uri
15
+ return Dry::Monads::Success attributes unless uri
17
16
 
18
- content[key] = format uri, domain:, owner:, name:, id: "%<id>s"
19
- Dry::Monads::Success content
17
+ attributes[key] = format uri, domain:, owner:, name:, id: "%<id>s"
18
+ Dry::Monads::Success attributes
20
19
  end
21
20
  end
22
21
  end
@@ -1,19 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dry/monads"
4
- require "pathname"
5
4
 
6
5
  module Milestoner
7
6
  module Configuration
8
7
  module Transformers
9
8
  module URI
10
- Profile = lambda do |content, key = :profile_uri|
11
- domain, uri = content.values_at :profile_domain, key
9
+ Profile = lambda do |attributes, key = :profile_uri|
10
+ uri, domain = attributes.values_at key, :profile_domain
12
11
 
13
- return Dry::Monads::Success content unless uri
12
+ return Dry::Monads::Success attributes unless uri
14
13
 
15
- content[key] = format uri, domain:, id: "%<id>s"
16
- Dry::Monads::Success content
14
+ attributes[key] = format uri, domain:, id: "%<id>s"
15
+ Dry::Monads::Success attributes
17
16
  end
18
17
  end
19
18
  end
@@ -1,22 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dry/monads"
4
- require "pathname"
5
4
 
6
5
  module Milestoner
7
6
  module Configuration
8
7
  module Transformers
9
8
  module URI
10
- Review = lambda do |content, key = :review_uri|
11
- owner, name, domain, uri = content.values_at :project_owner,
12
- :project_name,
13
- :review_domain,
14
- key
9
+ Review = lambda do |attributes, key = :review_uri|
10
+ uri, owner, name, domain = attributes.values_at key,
11
+ :project_owner,
12
+ :project_name,
13
+ :review_domain
15
14
 
16
- return Dry::Monads::Success content unless uri
15
+ return Dry::Monads::Success attributes unless uri
17
16
 
18
- content[key] = format uri, domain:, owner:, name:, id: "%<id>s"
19
- Dry::Monads::Success content
17
+ attributes[key] = format uri, domain:, owner:, name:, id: "%<id>s"
18
+ Dry::Monads::Success attributes
20
19
  end
21
20
  end
22
21
  end
@@ -1,22 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dry/monads"
4
- require "pathname"
5
4
 
6
5
  module Milestoner
7
6
  module Configuration
8
7
  module Transformers
9
8
  module URI
10
- Tracker = lambda do |content, key = :tracker_uri|
11
- owner, name, domain, uri = content.values_at :project_owner,
12
- :project_name,
13
- :tracker_domain,
14
- key
9
+ Tracker = lambda do |attributes, key = :tracker_uri|
10
+ uri, owner, name, domain = attributes.values_at key,
11
+ :project_owner,
12
+ :project_name,
13
+ :tracker_domain
15
14
 
16
- return Dry::Monads::Success content unless uri
15
+ return Dry::Monads::Success attributes unless uri
17
16
 
18
- content[key] = format uri, domain:, owner:, name:, id: "%<id>s"
19
- Dry::Monads::Success content
17
+ attributes[key] = format uri, domain:, owner:, name:, id: "%<id>s"
18
+ Dry::Monads::Success attributes
20
19
  end
21
20
  end
22
21
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "gitt"
3
+ require "core"
4
4
  require "refinements/string_io"
5
5
  require "versionaire"
6
6
 
@@ -27,7 +27,10 @@ module Milestoner
27
27
  version = compute_version override
28
28
 
29
29
  return false if local? version
30
- fail Error, "Unable to tag without commits." if collector.call.value_or([]).empty?
30
+
31
+ collection = collector.call.value_or Core::EMPTY_ARRAY
32
+
33
+ fail Error, "Unable to tag without commits." if collection.empty?
31
34
 
32
35
  create version
33
36
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "core"
3
4
  require "forwardable"
4
5
  require "hanami/view"
5
6
 
@@ -24,7 +25,9 @@ module Milestoner
24
25
  project_version
25
26
  ] => :input
26
27
 
27
- def project_slug = [project_name, project_version].compact.join("_").tr ".", ""
28
+ def project_slug
29
+ [project_name, project_version].compact.join("_").tr ".", Core::EMPTY_STRING
30
+ end
28
31
 
29
32
  def project_title = [project_label, project_version].compact.join " "
30
33
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "hanami/view"
4
- require "pathname"
5
4
  require "refinements/string"
6
5
 
7
6
  module Milestoner
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "asciidoctor"
4
3
  require "hanami/view"
5
4
  require "refinements/array"
6
5
 
data/milestoner.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "milestoner"
5
- spec.version = "17.6.0"
5
+ spec.version = "17.7.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/milestoner"
9
- spec.summary = "A command line interface for managing Git repository milestones."
9
+ spec.summary = "A command line interface for automated Git repository milestones."
10
10
  spec.license = "Hippocratic-2.1"
11
11
 
12
12
  spec.metadata = {
@@ -27,13 +27,14 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency "cff", "~> 1.1"
28
28
  spec.add_dependency "cogger", "~> 0.16"
29
29
  spec.add_dependency "containable", "~> 0.0"
30
+ spec.add_dependency "core", "~> 1.3"
30
31
  spec.add_dependency "dry-monads", "~> 1.6"
31
32
  spec.add_dependency "dry-schema", "~> 1.13"
32
33
  spec.add_dependency "etcher", "~> 1.3"
33
34
  spec.add_dependency "gitt", "~> 3.2"
34
35
  spec.add_dependency "hanami-view", "~> 2.1"
35
36
  spec.add_dependency "infusible", "~> 3.5"
36
- spec.add_dependency "lode", "~> 1.0"
37
+ spec.add_dependency "lode", "~> 1.4"
37
38
  spec.add_dependency "redcarpet", "~> 3.6"
38
39
  spec.add_dependency "refinements", "~> 12.1"
39
40
  spec.add_dependency "runcom", "~> 11.0"
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: 17.6.0
4
+ version: 17.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-04-17 00:00:00.000000000 Z
38
+ date: 2024-05-16 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: asciidoctor
@@ -93,6 +93,20 @@ dependencies:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0.0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: core
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.3'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.3'
96
110
  - !ruby/object:Gem::Dependency
97
111
  name: dry-monads
98
112
  requirement: !ruby/object:Gem::Requirement
@@ -183,14 +197,14 @@ dependencies:
183
197
  requirements:
184
198
  - - "~>"
185
199
  - !ruby/object:Gem::Version
186
- version: '1.0'
200
+ version: '1.4'
187
201
  type: :runtime
188
202
  prerelease: false
189
203
  version_requirements: !ruby/object:Gem::Requirement
190
204
  requirements:
191
205
  - - "~>"
192
206
  - !ruby/object:Gem::Version
193
- version: '1.0'
207
+ version: '1.4'
194
208
  - !ruby/object:Gem::Dependency
195
209
  name: redcarpet
196
210
  requirement: !ruby/object:Gem::Requirement
@@ -434,8 +448,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
434
448
  - !ruby/object:Gem::Version
435
449
  version: '0'
436
450
  requirements: []
437
- rubygems_version: 3.5.9
451
+ rubygems_version: 3.5.10
438
452
  signing_key:
439
453
  specification_version: 4
440
- summary: A command line interface for managing Git repository milestones.
454
+ summary: A command line interface for automated Git repository milestones.
441
455
  test_files: []
metadata.gz.sig CHANGED
Binary file