marameters 3.9.0 → 3.11.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: 7606dc2ae5b229a62afef737d7e5ced158c9c0cb49cd2ea1dc5dcb90d82e2c72
4
- data.tar.gz: 055dc360d709822f1cc49157faedde426a6ba6e4f393aa7e0f6adbb0ec10784d
3
+ metadata.gz: 6055b9783bad6279da1aa6fcd04e0d5ca05d57fd39ddf0184ce9b5c3249f4c88
4
+ data.tar.gz: 50d4c40b521b4e45643baead5a29bc1366b3e125843533c59e29a5cb084c4432
5
5
  SHA512:
6
- metadata.gz: 4da9a50704be5f6f8380d7e5f47c7296392b0786d64f72600a0931b7717d16318e722350c79efd233d5357be4a68682f067e73bba3197799a6252c7e2416623d
7
- data.tar.gz: d17300ba62b53036f7eb999dc50f41e847de43caf52fbb3c2561f8c803fbbc50af69c590181c1eb88d84c38d7c5fe291ef4950a7bd4dd370bc907e24974fa9c3
6
+ metadata.gz: 3fac30249c2101bb2d282f374382fac240b5bde4220dcf01fccb9bb2a60af6791adf4e64eb48100271a79cb0c0608a7c695150f66f6d3c6eb6ae039480d6d977
7
+ data.tar.gz: a3d8050db029436095c69353680f2a76b30215d12833b3deba1c16d4f38187297af4e09461bc32fa3440b57972bab2daf56d8855b065f43463545730197d6cb0
checksums.yaml.gz.sig CHANGED
Binary file
@@ -7,11 +7,12 @@ module Marameters
7
7
  @defaulter = defaulter
8
8
  end
9
9
 
10
- def call kind, name, default: nil
10
+ def call kind, name = nil, default: nil
11
11
  case kind
12
12
  when :req then name
13
13
  when :opt then "#{name} = #{defaulter.call default}"
14
14
  when :rest then "*#{name}"
15
+ when :nokey then "**nil"
15
16
  when :keyreq then "#{name}:"
16
17
  when :key then "#{name}: #{defaulter.call default}"
17
18
  when :keyrest then "**#{name}"
@@ -1,8 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "forwardable"
4
+
3
5
  module Marameters
4
6
  # Provides information on a method's parameters.
5
7
  class Probe
8
+ extend Forwardable
9
+
6
10
  CATEGORIES = {
7
11
  positionals: %i[req opt],
8
12
  keywords: %i[keyreq key],
@@ -18,6 +22,8 @@ module Marameters
18
22
  collection
19
23
  end
20
24
 
25
+ delegate %i[deconstruct empty? include? to_a] => :parameters
26
+
21
27
  attr_reader :keywords, :positionals, :splats
22
28
 
23
29
  def initialize parameters, categories: CATEGORIES
@@ -29,8 +35,6 @@ module Marameters
29
35
 
30
36
  def block? = (parameters in [*, [:block, *]])
31
37
 
32
- def empty? = parameters.empty?
33
-
34
38
  def keyword_slice collection, keys:
35
39
  warn "`#{self.class}##{__method__}` is deprecated, use `#keywords_for` instead.",
36
40
  category: :deprecated
@@ -69,8 +73,6 @@ module Marameters
69
73
 
70
74
  def splats? = splats.any?
71
75
 
72
- def to_a = parameters
73
-
74
76
  def to_h = parameters.each.with_object({}) { |(key, name), attributes| attributes[key] = name }
75
77
 
76
78
  private
data/lib/marameters.rb CHANGED
@@ -10,6 +10,8 @@ end
10
10
 
11
11
  # Main namespace.
12
12
  module Marameters
13
+ KINDS = %i[req opt rest nokey keyreq key keyrest block].freeze
14
+
13
15
  def self.loader registry = Zeitwerk::Registry
14
16
  @loader ||= registry.loaders.find { |loader| loader.tag == File.basename(__FILE__, ".rb") }
15
17
  end
data/marameters.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "marameters"
5
- spec.version = "3.9.0"
5
+ spec.version = "3.11.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/marameters"
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.cert_chain = [Gem.default_cert_path]
24
24
 
25
25
  spec.required_ruby_version = ">= 3.3", "<= 3.4"
26
- spec.add_dependency "refinements", "~> 12.9"
26
+ spec.add_dependency "refinements", "~> 12.10"
27
27
  spec.add_dependency "zeitwerk", "~> 2.7"
28
28
 
29
29
  spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marameters
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.9.0
4
+ version: 3.11.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-10-13 00:00:00.000000000 Z
38
+ date: 2024-10-27 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: refinements
@@ -43,14 +43,14 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '12.9'
46
+ version: '12.10'
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: '12.9'
53
+ version: '12.10'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: zeitwerk
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
115
  requirements: []
116
- rubygems_version: 3.5.21
116
+ rubygems_version: 3.5.22
117
117
  signing_key:
118
118
  specification_version: 4
119
119
  summary: A dynamic method parameter inspector.
metadata.gz.sig CHANGED
Binary file