kettle-dev 1.1.60 → 1.2.1
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/CHANGELOG.md +22 -1
- data/Gemfile +3 -0
- data/Gemfile.example +3 -0
- data/README.md +74 -25
- data/Rakefile.example +1 -1
- data/gemfiles/modular/style.gemfile.example +1 -1
- data/gemfiles/modular/templating.gemfile +3 -0
- data/lib/kettle/dev/changelog_cli.rb +13 -0
- data/lib/kettle/dev/modular_gemfiles.rb +12 -3
- data/lib/kettle/dev/prism_appraisals.rb +306 -0
- data/lib/kettle/dev/prism_gemfile.rb +136 -0
- data/lib/kettle/dev/prism_gemspec.rb +284 -0
- data/lib/kettle/dev/prism_utils.rb +201 -0
- data/lib/kettle/dev/readme_backers.rb +1 -4
- data/lib/kettle/dev/setup_cli.rb +17 -28
- data/lib/kettle/dev/source_merger.rb +458 -0
- data/lib/kettle/dev/tasks/template_task.rb +32 -86
- data/lib/kettle/dev/template_helpers.rb +74 -338
- data/lib/kettle/dev/version.rb +1 -1
- data/lib/kettle/dev.rb +23 -3
- data/sig/kettle/dev/appraisals_ast_merger.rbs +72 -0
- data/sig/kettle/dev/changelog_cli.rbs +64 -0
- data/sig/kettle/dev/prism_utils.rbs +56 -0
- data/sig/kettle/dev/source_merger.rbs +86 -0
- data/sig/kettle/dev/versioning.rbs +21 -0
- data.tar.gz.sig +0 -0
- metadata +16 -5
- metadata.gz.sig +0 -0
- /data/sig/kettle/dev/{dvcscli.rbs → dvcs_cli.rbs} +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# TypeProf 0.21.11
|
|
2
|
+
|
|
3
|
+
module Kettle
|
|
4
|
+
module Dev
|
|
5
|
+
# Shared utilities for working with Prism AST nodes
|
|
6
|
+
module PrismUtils
|
|
7
|
+
# Parse Ruby source code and return Prism parse result with comments
|
|
8
|
+
def self.parse_with_comments: (String source) -> Prism::ParseResult
|
|
9
|
+
|
|
10
|
+
# Extract statements from a Prism body node
|
|
11
|
+
def self.extract_statements: (Prism::Node? body_node) -> Array[Prism::Node]
|
|
12
|
+
|
|
13
|
+
# Generate a unique key for a statement node to identify equivalent statements
|
|
14
|
+
def self.statement_key: (
|
|
15
|
+
Prism::Node node,
|
|
16
|
+
?tracked_methods: Array[Symbol]
|
|
17
|
+
) -> [Symbol, String?]?
|
|
18
|
+
|
|
19
|
+
# Extract literal value from string or symbol nodes
|
|
20
|
+
def self.extract_literal_value: (Prism::Node? node) -> (String | Symbol)?
|
|
21
|
+
|
|
22
|
+
# Extract qualified constant name from a constant node
|
|
23
|
+
def self.extract_const_name: (Prism::Node? node) -> String?
|
|
24
|
+
|
|
25
|
+
# Find leading comments for a statement node
|
|
26
|
+
def self.find_leading_comments: (
|
|
27
|
+
Prism::ParseResult parse_result,
|
|
28
|
+
Prism::Node current_stmt,
|
|
29
|
+
Prism::Node? prev_stmt,
|
|
30
|
+
Prism::Node body_node
|
|
31
|
+
) -> Array[Prism::Comment]
|
|
32
|
+
|
|
33
|
+
# Find inline comments for a statement node
|
|
34
|
+
def self.inline_comments_for_node: (
|
|
35
|
+
Prism::ParseResult parse_result,
|
|
36
|
+
Prism::Node stmt
|
|
37
|
+
) -> Array[Prism::Comment]
|
|
38
|
+
|
|
39
|
+
# Convert a Prism AST node to Ruby source code
|
|
40
|
+
def self.node_to_source: (Prism::Node? node) -> String
|
|
41
|
+
|
|
42
|
+
# Normalize a call node to use parentheses format
|
|
43
|
+
def self.normalize_call_node: (Prism::Node node) -> String
|
|
44
|
+
|
|
45
|
+
# Normalize an argument node to canonical format
|
|
46
|
+
def self.normalize_argument: (Prism::Node arg) -> String
|
|
47
|
+
|
|
48
|
+
# Check if a node is a specific method call
|
|
49
|
+
def self.call_to?: (Prism::Node node, Symbol method_name) -> bool
|
|
50
|
+
|
|
51
|
+
# Check if a node is a block call to a specific method
|
|
52
|
+
def self.block_call_to?: (Prism::Node node, Symbol method_name) -> bool
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# TypeProf 0.21.11
|
|
2
|
+
|
|
3
|
+
module Kettle
|
|
4
|
+
module Dev
|
|
5
|
+
# Prism-based AST merging for templated Ruby files
|
|
6
|
+
module SourceMerger
|
|
7
|
+
FREEZE_START: Regexp
|
|
8
|
+
FREEZE_END: Regexp
|
|
9
|
+
FREEZE_BLOCK: Regexp
|
|
10
|
+
FREEZE_REMINDER: String
|
|
11
|
+
BUG_URL: String
|
|
12
|
+
|
|
13
|
+
# Apply a templating strategy to merge source and destination Ruby files
|
|
14
|
+
def self.apply: (
|
|
15
|
+
strategy: Symbol,
|
|
16
|
+
src: String,
|
|
17
|
+
dest: String,
|
|
18
|
+
path: String
|
|
19
|
+
) -> String
|
|
20
|
+
|
|
21
|
+
# Ensure freeze reminder comment is present at the top of content
|
|
22
|
+
def self.ensure_reminder: (String content) -> String
|
|
23
|
+
|
|
24
|
+
# Normalize source code while preserving formatting
|
|
25
|
+
def self.normalize_source: (String source) -> String
|
|
26
|
+
|
|
27
|
+
# Check if freeze reminder is present in content
|
|
28
|
+
def self.reminder_present?: (String content) -> bool
|
|
29
|
+
|
|
30
|
+
# Find index where freeze reminder should be inserted
|
|
31
|
+
def self.reminder_insertion_index: (String content) -> Integer
|
|
32
|
+
|
|
33
|
+
# Check if line is a shebang
|
|
34
|
+
def self.shebang?: (String line) -> bool
|
|
35
|
+
|
|
36
|
+
# Check if line is a frozen_string_literal comment
|
|
37
|
+
def self.frozen_comment?: (String line) -> bool
|
|
38
|
+
|
|
39
|
+
# Merge kettle-dev:freeze blocks from destination into source content
|
|
40
|
+
def self.merge_freeze_blocks: (String src_content, String dest_content) -> String
|
|
41
|
+
|
|
42
|
+
# Extract freeze blocks from text
|
|
43
|
+
def self.freeze_blocks: (String? text) -> Array[Hash[Symbol, untyped]]
|
|
44
|
+
|
|
45
|
+
# Normalize strategy symbol
|
|
46
|
+
def self.normalize_strategy: (Symbol? strategy) -> Symbol
|
|
47
|
+
|
|
48
|
+
# Warn about bugs and print error information
|
|
49
|
+
def self.warn_bug: (String path, StandardError error) -> void
|
|
50
|
+
|
|
51
|
+
# Ensure text ends with newline
|
|
52
|
+
def self.ensure_trailing_newline: (String? text) -> String
|
|
53
|
+
|
|
54
|
+
# Apply append strategy
|
|
55
|
+
def self.apply_append: (String src_content, String dest_content) -> String
|
|
56
|
+
|
|
57
|
+
# Apply merge strategy
|
|
58
|
+
def self.apply_merge: (String src_content, String dest_content) -> String
|
|
59
|
+
|
|
60
|
+
# Merge node information
|
|
61
|
+
def self.merge_node_info: (Array[untyped] signature, Hash[Symbol, untyped] dest_node_info, Hash[Symbol, untyped] src_node_info) -> Hash[Symbol, untyped]
|
|
62
|
+
|
|
63
|
+
# Merge block node information
|
|
64
|
+
def self.merge_block_node_info: (Hash[Symbol, untyped] src_node_info) -> Hash[Symbol, untyped]
|
|
65
|
+
|
|
66
|
+
# Perform Prism-based merge with block
|
|
67
|
+
def self.prism_merge: (String src_content, String dest_content) { (Array[Hash[Symbol, untyped]], Array[Hash[Symbol, untyped]], Prism::ParseResult, Prism::ParseResult) -> Array[Hash[Symbol, untyped]] } -> String
|
|
68
|
+
|
|
69
|
+
# Extract nodes with comments from parse result
|
|
70
|
+
def self.extract_nodes_with_comments: (Prism::ParseResult parse_result) -> Array[Hash[Symbol, untyped]]
|
|
71
|
+
|
|
72
|
+
# Build source from node information array
|
|
73
|
+
def self.build_source_from_nodes: (Array[Hash[Symbol, untyped]] node_infos) -> String
|
|
74
|
+
|
|
75
|
+
# Generate signature for node
|
|
76
|
+
def self.node_signature: (Prism::Node? node) -> Array[untyped]
|
|
77
|
+
|
|
78
|
+
# Restore custom leading comments from destination
|
|
79
|
+
def self.restore_custom_leading_comments: (String dest_content, String merged_content) -> String
|
|
80
|
+
|
|
81
|
+
# Extract leading comment block from content
|
|
82
|
+
def self.leading_comment_block: (String content) -> String
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# TypeProf 0.21.11
|
|
2
|
+
|
|
3
|
+
module Kettle
|
|
4
|
+
module Dev
|
|
5
|
+
# Shared helpers for version detection and bump classification
|
|
6
|
+
module Versioning
|
|
7
|
+
# Detects a unique VERSION constant declared under lib/**/version.rb
|
|
8
|
+
def self.detect_version: (String root) -> String
|
|
9
|
+
|
|
10
|
+
# Classify the bump type from prev -> cur
|
|
11
|
+
def self.classify_bump: (String prev, String cur) -> Symbol
|
|
12
|
+
|
|
13
|
+
# Whether MAJOR is an EPIC version (strictly > 1000)
|
|
14
|
+
def self.epic_major?: (Integer major) -> bool
|
|
15
|
+
|
|
16
|
+
# Abort via ExitAdapter if available; otherwise Kernel.abort
|
|
17
|
+
def self.abort!: (String msg) -> void
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-dev
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1
|
|
4
|
+
version: 1.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -328,6 +328,7 @@ files:
|
|
|
328
328
|
- gemfiles/modular/stringio/vHEAD.gemfile
|
|
329
329
|
- gemfiles/modular/style.gemfile
|
|
330
330
|
- gemfiles/modular/style.gemfile.example
|
|
331
|
+
- gemfiles/modular/templating.gemfile
|
|
331
332
|
- gemfiles/modular/x_std_libs.gemfile
|
|
332
333
|
- gemfiles/modular/x_std_libs/r2.3/libs.gemfile
|
|
333
334
|
- gemfiles/modular/x_std_libs/r2.4/libs.gemfile
|
|
@@ -352,6 +353,10 @@ files:
|
|
|
352
353
|
- lib/kettle/dev/modular_gemfiles.rb
|
|
353
354
|
- lib/kettle/dev/open_collective_config.rb
|
|
354
355
|
- lib/kettle/dev/pre_release_cli.rb
|
|
356
|
+
- lib/kettle/dev/prism_appraisals.rb
|
|
357
|
+
- lib/kettle/dev/prism_gemfile.rb
|
|
358
|
+
- lib/kettle/dev/prism_gemspec.rb
|
|
359
|
+
- lib/kettle/dev/prism_utils.rb
|
|
355
360
|
- lib/kettle/dev/rakelib/appraisal.rake
|
|
356
361
|
- lib/kettle/dev/rakelib/bench.rake
|
|
357
362
|
- lib/kettle/dev/rakelib/bundle_audit.rake
|
|
@@ -366,6 +371,7 @@ files:
|
|
|
366
371
|
- lib/kettle/dev/readme_backers.rb
|
|
367
372
|
- lib/kettle/dev/release_cli.rb
|
|
368
373
|
- lib/kettle/dev/setup_cli.rb
|
|
374
|
+
- lib/kettle/dev/source_merger.rb
|
|
369
375
|
- lib/kettle/dev/tasks.rb
|
|
370
376
|
- lib/kettle/dev/tasks/ci_task.rb
|
|
371
377
|
- lib/kettle/dev/tasks/install_task.rb
|
|
@@ -376,10 +382,12 @@ files:
|
|
|
376
382
|
- lib/kettle/emoji_regex.rb
|
|
377
383
|
- sig/kettle-dev.rbs
|
|
378
384
|
- sig/kettle/dev.rbs
|
|
385
|
+
- sig/kettle/dev/appraisals_ast_merger.rbs
|
|
386
|
+
- sig/kettle/dev/changelog_cli.rbs
|
|
379
387
|
- sig/kettle/dev/ci_helpers.rbs
|
|
380
388
|
- sig/kettle/dev/ci_monitor.rbs
|
|
381
389
|
- sig/kettle/dev/commit_msg.rbs
|
|
382
|
-
- sig/kettle/dev/
|
|
390
|
+
- sig/kettle/dev/dvcs_cli.rbs
|
|
383
391
|
- sig/kettle/dev/exit_adapter.rbs
|
|
384
392
|
- sig/kettle/dev/gem_spec_reader.rbs
|
|
385
393
|
- sig/kettle/dev/git_adapter.rbs
|
|
@@ -388,25 +396,28 @@ files:
|
|
|
388
396
|
- sig/kettle/dev/modular_gemfiles.rbs
|
|
389
397
|
- sig/kettle/dev/open_collective_config.rbs
|
|
390
398
|
- sig/kettle/dev/pre_release_cli.rbs
|
|
399
|
+
- sig/kettle/dev/prism_utils.rbs
|
|
391
400
|
- sig/kettle/dev/readme_backers.rbs
|
|
392
401
|
- sig/kettle/dev/release_cli.rbs
|
|
393
402
|
- sig/kettle/dev/setup_cli.rbs
|
|
403
|
+
- sig/kettle/dev/source_merger.rbs
|
|
394
404
|
- sig/kettle/dev/tasks.rbs
|
|
395
405
|
- sig/kettle/dev/tasks/ci_task.rbs
|
|
396
406
|
- sig/kettle/dev/tasks/install_task.rbs
|
|
397
407
|
- sig/kettle/dev/tasks/template_task.rbs
|
|
398
408
|
- sig/kettle/dev/template_helpers.rbs
|
|
399
409
|
- sig/kettle/dev/version.rbs
|
|
410
|
+
- sig/kettle/dev/versioning.rbs
|
|
400
411
|
- sig/kettle/emoji_regex.rbs
|
|
401
412
|
homepage: https://github.com/kettle-rb/kettle-dev
|
|
402
413
|
licenses:
|
|
403
414
|
- MIT
|
|
404
415
|
metadata:
|
|
405
416
|
homepage_uri: https://kettle-dev.galtzo.com/
|
|
406
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1
|
|
407
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1
|
|
417
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.2.1
|
|
418
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.2.1/CHANGELOG.md
|
|
408
419
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
|
409
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1
|
|
420
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.2.1
|
|
410
421
|
funding_uri: https://github.com/sponsors/pboling
|
|
411
422
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
|
412
423
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|
|
File without changes
|