parameter_substitution 3.1.0 → 3.2.0.pre.2
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a8217b83c3c18c7859547a4085b54d5e044eb112e5d3ecb0406e1d8c25eca05b
|
|
4
|
+
data.tar.gz: 95fecf90965e89d74232b9f9c9827f250cf540a29b5f9ca52a137c834c341e11
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 952f7ff4d93e043221e3fd49f0143e8c770c3fb5242472852b46ddbf922b9d5ebaa4a3b483aeab769a5ce179ca735ed30970be017ce50c8655c17594adb76726
|
|
7
|
+
data.tar.gz: 5a7b43f9fd00781ca6f1eb4afc56340cc32fb05a16f4bf0a1aa707efc81ce0235ce23b75239199ffb7178348698fcfdcf4f81f797a44fb3d05a7ebd98b8bf9be
|
|
@@ -42,6 +42,13 @@ class ParameterSubstitution
|
|
|
42
42
|
@expression_list.map_compact(&:parameter_name)
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
+
# Recursively collects all substitution parameter names, including those
|
|
46
|
+
# nested inside method call arguments (e.g. <dclid.compare_string(<gclid>, 'a', 'b')>
|
|
47
|
+
# returns both "dclid" and "gclid").
|
|
48
|
+
def all_substitution_parameter_names
|
|
49
|
+
@expression_list.flat_map { |expr| parameter_names_from_expression(expr) }
|
|
50
|
+
end
|
|
51
|
+
|
|
45
52
|
def method_names
|
|
46
53
|
@expression_list.reduce([]) do |all_method_names, expression|
|
|
47
54
|
all_method_names + methods_used_by_expression(expression)
|
|
@@ -142,5 +149,23 @@ class ParameterSubstitution
|
|
|
142
149
|
def pluralize_text(text, amount)
|
|
143
150
|
text + (amount > 1 ? 's' : '')
|
|
144
151
|
end
|
|
152
|
+
|
|
153
|
+
def parameter_names_from_expression(expr)
|
|
154
|
+
if (name = expr.parameter_name)
|
|
155
|
+
[name] + parameter_names_from_method_calls(expr.try(:method_calls))
|
|
156
|
+
else
|
|
157
|
+
[]
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def parameter_names_from_method_calls(method_calls)
|
|
162
|
+
return [] unless method_calls
|
|
163
|
+
|
|
164
|
+
method_calls.flat_map do |mc|
|
|
165
|
+
mc.arguments.flat_map do |arg|
|
|
166
|
+
arg.is_a?(Expression) ? arg.all_substitution_parameter_names : []
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|
|
145
170
|
end
|
|
146
171
|
end
|
|
@@ -69,6 +69,11 @@ class ParameterSubstitution
|
|
|
69
69
|
parse_expression(context).substitution_parameter_names
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
+
def find_all_tokens(string_with_tokens, mapping: {}, context_overrides: {})
|
|
73
|
+
context = build_context(string_with_tokens, mapping, context_overrides)
|
|
74
|
+
parse_expression(context).all_substitution_parameter_names
|
|
75
|
+
end
|
|
76
|
+
|
|
72
77
|
def find_formatters(string_with_tokens, mapping: {}, context_overrides: {})
|
|
73
78
|
context = build_context(string_with_tokens, mapping, context_overrides)
|
|
74
79
|
parse_expression(context).method_names
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: parameter_substitution
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.2.0.pre.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Invoca Development
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-02-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -148,9 +148,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
148
148
|
version: '3.1'
|
|
149
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
150
|
requirements:
|
|
151
|
-
- - "
|
|
151
|
+
- - ">"
|
|
152
152
|
- !ruby/object:Gem::Version
|
|
153
|
-
version:
|
|
153
|
+
version: 1.3.1
|
|
154
154
|
requirements: []
|
|
155
155
|
rubygems_version: 3.3.27
|
|
156
156
|
signing_key:
|