sod 0.3.1 → 0.5.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: 56e28820efb49893d114b4df2ecf7187ffe73bbad678efbf3d0e80f9e74e0f15
4
- data.tar.gz: 5d6121de2e20e80e50e25f9fc5855072309ba41fefc363b4affcff4032b2f8d8
3
+ metadata.gz: 5a3e42c8d712dbf65bf499c85dd3170e4c2b604c078ba4f42eddd1c0960569f9
4
+ data.tar.gz: 9fb2a0e7b5bea25217ce50f1d548c28f7acaedc8acbf2d02c42e2237c93949ee
5
5
  SHA512:
6
- metadata.gz: 3e8d77be971547e7faea527b51c554b62c241275b1edef3b767b3b79f1b5ee0fb2893704afa1533c1623a31cf0539564e1c8b105d18ce5e645ccb9b2331bb070
7
- data.tar.gz: 1f604d712d0a3425be95cd32e3ee9ade21f218e61e286168447552c09f9dcf58d2c6d3d3e03c1abd75766ba84377c70ab2cac765811055e834f63a815b209551
6
+ metadata.gz: 55bbacf1994108ba5db540e769795d4c98e16d7f18c8129eb4bc97175663bbc7263dd48dd81f4cf7accd0ab9de83d8136afeb6798ce755e1be4c3c35763d18c8
7
+ data.tar.gz: cc608e5e6e736fc6345ee5db4bbdaa30bbbc8be947c2b59be57a23e4c4e1f1c809bb984954af4e9eb1f7794f966c1c6797df2f6965bd42c5a201195941b1f2be
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/sod/action.rb CHANGED
@@ -58,7 +58,7 @@ module Sod
58
58
 
59
59
  def inspect
60
60
  attributes = record.to_h.map { |key, value| "#{key}=#{value.inspect}" }
61
- %(#<#{self.class} @context=#{context.inspect} #{attributes.join ", "}>)
61
+ %(#<#{self.class}:#{object_id} @context=#{context.inspect} #{attributes.join ", "}>)
62
62
  end
63
63
 
64
64
  def to_proc = method(:call).to_proc
@@ -83,7 +83,7 @@ module Sod
83
83
  klass = self.class
84
84
  fallback = klass.instance_variable_get(:@attributes)[attribute]
85
85
 
86
- klass.instance_variable_get("@#{attribute}") || fallback
86
+ klass.instance_variable_get(:"@#{attribute}") || fallback
87
87
  end
88
88
 
89
89
  def load_default
data/lib/sod/command.rb CHANGED
@@ -50,7 +50,8 @@ module Sod
50
50
  .map { |key, value| "#{key}=#{value.inspect}" }
51
51
  .join ", "
52
52
 
53
- "#<#{self.class} @logger=#{logger.inspect} @context=#{context.inspect} #{attributes}>"
53
+ "#<#{self.class}:#{object_id} @logger=#{logger.inspect} @context=#{context.inspect} " \
54
+ "#{attributes}>"
54
55
  end
55
56
 
56
57
  protected
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/arrays"
3
+ require "refinements/array"
4
4
 
5
5
  module Sod
6
6
  module Graph
7
7
  # A generic graph node (and DSL) from which to build multiple lineages with.
8
8
  Node = Struct.new :handle, :description, :ancillary, :actions, :operation, :children do
9
- using Refinements::Arrays
9
+ using Refinements::Array
10
10
 
11
11
  def initialize(**)
12
12
  super
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/arrays"
3
+ require "refinements/array"
4
4
 
5
5
  module Sod
6
6
  module Models
@@ -14,7 +14,7 @@ module Sod
14
14
  :description,
15
15
  :ancillary
16
16
  ) do
17
- using Refinements::Arrays
17
+ using Refinements::Array
18
18
 
19
19
  def initialize aliases: nil,
20
20
  argument: nil,
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Sod
4
4
  module Models
5
+ # Defines all attributes of a command.
5
6
  Command = Data.define :handle, :description, :ancillary, :actions, :operation do
6
7
  def initialize handle:, description:, actions:, operation:, ancillary: []
7
8
  super
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/pathnames"
3
+ require "refinements/pathname"
4
4
 
5
5
  module Sod
6
6
  module Prefabs
@@ -10,7 +10,7 @@ module Sod
10
10
  class Create < Action
11
11
  include Import[:kernel, :logger]
12
12
 
13
- using Refinements::Pathnames
13
+ using Refinements::Pathname
14
14
 
15
15
  description "Create default configuration."
16
16
 
@@ -36,8 +36,7 @@ module Sod
36
36
  def check_defaults
37
37
  return true if defaults_path.exist?
38
38
 
39
- logger.fatal { "Default configuration doesn't exist: #{defaults_path.to_s.inspect}." }
40
- kernel.abort
39
+ logger.abort "Default configuration doesn't exist: #{defaults_path.to_s.inspect}."
41
40
  false
42
41
  end
43
42
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/pathnames"
4
- require "refinements/strings"
3
+ require "refinements/pathname"
4
+ require "refinements/string"
5
5
 
6
6
  module Sod
7
7
  module Prefabs
@@ -11,8 +11,8 @@ module Sod
11
11
  class Delete < Action
12
12
  include Import[:kernel, :logger]
13
13
 
14
- using Refinements::Pathnames
15
- using Refinements::Strings
14
+ using Refinements::Pathname
15
+ using Refinements::String
16
16
 
17
17
  description "Delete project configuration."
18
18
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/pathnames"
3
+ require "refinements/pathname"
4
4
 
5
5
  module Sod
6
6
  module Prefabs
@@ -10,7 +10,7 @@ module Sod
10
10
  class Edit < Action
11
11
  include Import[:kernel, :logger]
12
12
 
13
- using Refinements::Pathnames
13
+ using Refinements::Pathname
14
14
 
15
15
  description "Edit project configuration."
16
16
 
@@ -36,8 +36,7 @@ module Sod
36
36
  def check
37
37
  return true if path.exist?
38
38
 
39
- logger.error { "Configuration doesn't exist: #{path.to_s.inspect}." }
40
- kernel.abort
39
+ logger.abort "Configuration doesn't exist: #{path.to_s.inspect}."
41
40
  false
42
41
  end
43
42
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "refinements/pathnames"
3
+ require "refinements/pathname"
4
4
 
5
5
  module Sod
6
6
  module Prefabs
@@ -10,7 +10,7 @@ module Sod
10
10
  class View < Action
11
11
  include Import[:kernel, :logger]
12
12
 
13
- using Refinements::Pathnames
13
+ using Refinements::Pathname
14
14
 
15
15
  description "View project configuration."
16
16
 
@@ -36,8 +36,7 @@ module Sod
36
36
  def check
37
37
  return true if path.exist?
38
38
 
39
- logger.error { "Configuration doesn't exist: #{path.to_s.inspect}." }
40
- kernel.abort
39
+ logger.abort "Configuration doesn't exist: #{path.to_s.inspect}."
41
40
  false
42
41
  end
43
42
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "forwardable"
4
- require "refinements/arrays"
4
+ require "refinements/array"
5
5
 
6
6
  module Sod
7
7
  module Presenters
@@ -11,7 +11,7 @@ module Sod
11
11
 
12
12
  extend Forwardable
13
13
 
14
- using Refinements::Arrays
14
+ using Refinements::Array
15
15
 
16
16
  delegate [*Models::Action.members, :handle] => :record
17
17
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "forwardable"
4
- require "refinements/arrays"
5
- require "refinements/strings"
4
+ require "refinements/array"
5
+ require "refinements/string"
6
6
 
7
7
  module Sod
8
8
  module Presenters
@@ -13,8 +13,8 @@ module Sod
13
13
 
14
14
  extend Forwardable
15
15
 
16
- using Refinements::Arrays
17
- using Refinements::Strings
16
+ using Refinements::Array
17
+ using Refinements::String
18
18
 
19
19
  delegate %i[handle description ancillary operation children] => :node
20
20
 
data/sod.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "sod"
5
- spec.version = "0.3.1"
5
+ spec.version = "0.5.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/sod"
@@ -22,12 +22,12 @@ Gem::Specification.new do |spec|
22
22
  spec.signing_key = Gem.default_key_path
23
23
  spec.cert_chain = [Gem.default_cert_path]
24
24
 
25
- spec.required_ruby_version = [">= 3.2", "<= 3.3"]
26
- spec.add_dependency "cogger", "~> 0.12"
25
+ spec.required_ruby_version = "~> 3.3"
26
+ spec.add_dependency "cogger", "~> 0.16"
27
27
  spec.add_dependency "dry-container", "~> 0.11"
28
- spec.add_dependency "infusible", "~> 2.2"
29
- spec.add_dependency "refinements", "~> 11.0"
30
- spec.add_dependency "tone", "~> 0.3"
28
+ spec.add_dependency "infusible", "~> 3.0"
29
+ spec.add_dependency "refinements", "~> 12.0"
30
+ spec.add_dependency "tone", "~> 1.0"
31
31
  spec.add_dependency "zeitwerk", "~> 2.6"
32
32
 
33
33
  spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
data.tar.gz.sig CHANGED
@@ -1,6 +1,2 @@
1
- Qo�������U��;��]��f�����®���q�߸\{rUx(� �'��q�Z��H�iLƔ�L�Ɣ�
2
- gl��g��Mc��7ri�|�Y,a Ph��ĩ��w��� ��������Ѯv}AT:8qG4YG'��$�g�&a��Iq����\*
3
- p�FǺ��6M�zWcٯ��P�Zw��3
4
- ���(�6����~侁��T���q��m?��-��U�_t����A�ޯ�<{�����1��+�!y۱����Z2
5
- |��A�d�����8��l�A޴���]P�t�����#�b t�
6
- ;�*C@U֝��
1
+ :% ��v�T�͉���U���� n�7�Oe��V͎�f��qN��5t8���;[#�u��mc�x��Y3n�XP��)����I_:B��q|U�I��%{W|�F=6kE�Z�(�dFރu,+�Z
2
+ u1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.5.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: 2023-11-16 00:00:00.000000000 Z
38
+ date: 2024-01-13 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: cogger
@@ -43,14 +43,14 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.12'
46
+ version: '0.16'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.12'
53
+ version: '0.16'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: dry-container
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -71,42 +71,42 @@ dependencies:
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '2.2'
74
+ version: '3.0'
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '2.2'
81
+ version: '3.0'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: refinements
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '11.0'
88
+ version: '12.0'
89
89
  type: :runtime
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '11.0'
95
+ version: '12.0'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: tone
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '0.3'
102
+ version: '1.0'
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0.3'
109
+ version: '1.0'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: zeitwerk
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -174,10 +174,7 @@ require_paths:
174
174
  - lib
175
175
  required_ruby_version: !ruby/object:Gem::Requirement
176
176
  requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: '3.2'
180
- - - "<="
177
+ - - "~>"
181
178
  - !ruby/object:Gem::Version
182
179
  version: '3.3'
183
180
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -186,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
183
  - !ruby/object:Gem::Version
187
184
  version: '0'
188
185
  requirements: []
189
- rubygems_version: 3.4.22
186
+ rubygems_version: 3.5.4
190
187
  signing_key:
191
188
  specification_version: 4
192
189
  summary: A domain specific language for creating composable command line interfaces.
metadata.gz.sig CHANGED
Binary file