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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/marameters/signatures/defaulter.rb +1 -1
- data/marameters.gemspec +3 -3
- data.tar.gz.sig +0 -0
- metadata +5 -7
- metadata.gz.sig +0 -0
- data/lib/marameters/sources/extractor.rb +0 -36
- data/lib/marameters/sources/reader.rb +0 -48
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d8d571b5c845284b0082243a2907755ce2a1bb0c2c3a3900f456c7efc71d2750
|
|
4
|
+
data.tar.gz: be764634efd0326a4231960e746155cb24d0d44ca3fb391e613eb5dc3cfed23a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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 = "
|
|
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 = ">=
|
|
26
|
-
spec.add_dependency "refinements", "~>
|
|
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
|
+
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: '
|
|
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: '
|
|
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: '
|
|
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:
|
|
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
|