marameters 4.6.0 → 5.0.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: 20f23ea7f2a50bdac800fb1199d722cffc6d9b9a05c191275b8b2c949ef8a564
4
- data.tar.gz: 32cbdbf71c1cd48bca990777fe1b5abc168c0e0014ff4f9f0871f49820530cf2
3
+ metadata.gz: d8d571b5c845284b0082243a2907755ce2a1bb0c2c3a3900f456c7efc71d2750
4
+ data.tar.gz: be764634efd0326a4231960e746155cb24d0d44ca3fb391e613eb5dc3cfed23a
5
5
  SHA512:
6
- metadata.gz: 89e4cd276de711a74cd63fe6192d71c56a738bb1e516b17093d8b65c16d2f9806b1b5abeea91414bc08a4ad15f53ea978582845b2e70be8b261809c18d5f33ef
7
- data.tar.gz: dd39189bf8e4072cf787299e11dfe251109b1fcfeccbb0169a5c25934b80e3e25d1ec5cec3362910b564e43dcb9fb14b27acd2d8fb8a9ee32edfa6aefa4be49a
6
+ metadata.gz: a7689f05f8a8f09dd05be908e91a420fec959efb239191280e9282593ea9b1e1b32eafce5ad3ca09fe5f1ac6c23ddd40bc419fcd7c996bb191d2aef1553d61ed
7
+ data.tar.gz: d76fe42540679e1a227e08c7c3a87648bead970f2404f0f7be84262e9ef8eaaf46ea1209a4c17b3c059258d2c409e47e840cea89390bc85c2f3cd46dc1a566d2
checksums.yaml.gz.sig CHANGED
Binary file
@@ -10,8 +10,8 @@ module Marameters
10
10
  fail ArgumentError, "Avoid using parameters for proc defaults." if value.arity.nonzero?
11
11
 
12
12
  extractor.call value
13
+ when Regexp, Symbol then value.inspect
13
14
  when String then value.dump
14
- when Symbol then value.inspect
15
15
  when nil then "nil"
16
16
  else value
17
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 = "4.6.0"
5
+ spec.version = "5.0.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/marameters"
@@ -22,8 +22,8 @@ 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.4"
26
- spec.add_dependency "refinements", "~> 13.6"
25
+ spec.required_ruby_version = ">= 4.0"
26
+ spec.add_dependency "refinements", "~> 14.0"
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: 4.6.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -41,14 +41,14 @@ dependencies:
41
41
  requirements:
42
42
  - - "~>"
43
43
  - !ruby/object:Gem::Version
44
- version: '13.6'
44
+ version: '14.0'
45
45
  type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - "~>"
50
50
  - !ruby/object:Gem::Version
51
- version: '13.6'
51
+ version: '14.0'
52
52
  - !ruby/object:Gem::Dependency
53
53
  name: zeitwerk
54
54
  requirement: !ruby/object:Gem::Requirement
@@ -87,8 +87,6 @@ files:
87
87
  - lib/marameters/sourcers/readers/any.rb
88
88
  - lib/marameters/sourcers/readers/disk.rb
89
89
  - lib/marameters/sourcers/readers/memory.rb
90
- - lib/marameters/sources/extractor.rb
91
- - lib/marameters/sources/reader.rb
92
90
  - marameters.gemspec
93
91
  homepage: https://alchemists.io/projects/marameters
94
92
  licenses:
@@ -108,14 +106,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
106
  requirements:
109
107
  - - ">="
110
108
  - !ruby/object:Gem::Version
111
- version: '3.4'
109
+ version: '4.0'
112
110
  required_rubygems_version: !ruby/object:Gem::Requirement
113
111
  requirements:
114
112
  - - ">="
115
113
  - !ruby/object:Gem::Version
116
114
  version: '0'
117
115
  requirements: []
118
- rubygems_version: 3.7.2
116
+ rubygems_version: 4.0.3
119
117
  specification_version: 4
120
118
  summary: A dynamic method parameter enhancer.
121
119
  test_files: []
metadata.gz.sig CHANGED
Binary file
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Marameters
4
- module Sources
5
- # Extracts the literal source of a Proc's body.
6
- class Extractor
7
- PATTERN = /
8
- proc # Proc statement.
9
- \s* # Optional space.
10
- \{ # Block open.
11
- (?<body>.*?) # Source code body.
12
- \} # Block close.
13
- /x
14
-
15
- def initialize pattern: PATTERN, reader: Reader.new
16
- warn "`#{self.class}` is deprecated, use `Sourcers::Function` instead.",
17
- category: :deprecated
18
-
19
- @pattern = pattern
20
- @reader = reader
21
- @fallback = "nil"
22
- freeze
23
- end
24
-
25
- def call function
26
- reader.call(function).then do |line|
27
- line.match?(pattern) ? line.match(pattern)[:body].strip : fallback
28
- end
29
- end
30
-
31
- private
32
-
33
- attr_reader :pattern, :reader, :fallback
34
- end
35
- end
36
- end
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Marameters
4
- module Sources
5
- # Reads object source code from memory or file (assumes implementation is a one-liner).
6
- class Reader
7
- def initialize offset: 1, parser: RubyVM::InstructionSequence, io: File
8
- warn "`#{self.class}` is deprecated, use `Sourcers::Readers::Any` instead.",
9
- category: :deprecated
10
-
11
- @offset = offset
12
- @parser = parser
13
- @io = io
14
- freeze
15
- end
16
-
17
- def call object
18
- instructions = parser.of object
19
-
20
- fail StandardError, "Unable to load source for: #{object.inspect}." unless instructions
21
-
22
- process object, instructions
23
- end
24
-
25
- private
26
-
27
- attr_reader :offset, :parser, :io
28
-
29
- def process object, instructions
30
- lines = instructions.script_lines
31
-
32
- return lines.first if lines
33
- return extract(*object.source_location) if io.readable? instructions.absolute_path
34
-
35
- fail StandardError, "Unable to load source for: #{object.inspect}."
36
- end
37
-
38
- def extract(path, line_number) = io.open(path) { |body| pluck body, line_number }
39
-
40
- def pluck body, line_number
41
- body.each_line
42
- .with_index
43
- .find { |_line, index| index + offset == line_number }
44
- .first
45
- end
46
- end
47
- end
48
- end