• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kettle-rb / ast-merge / 20908698901
94%

Build:
DEFAULT BRANCH: main
Ran 12 Jan 2026 05:09AM UTC
Jobs 1
Files 51
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 Jan 2026 05:07AM UTC coverage: 94.1% (-0.1%) from 94.211%
20908698901

push

github

pboling
✨ More RSpec support

### Added

- **`Ast::Merge::RSpec::MergeGemRegistry`** - Fully dynamic merge gem registration for RSpec dependency tags
  - `register(tag_name, require_path:, merger_class:, test_source:, category:)` - Register a merge gem
  - `available?(tag_name)` - Check if a merge gem is available and functional
  - `registered_gems` - Get all registered gem tag names
  - `gems_by_category(category)` - Filter gems by category (:markdown, :data, :code, :config, :other)
  - `summary` - Get availability status of all registered gems
  - Automatically defines `*_available?` methods on `DependencyTags` at registration time
  - External merge gems can now get full RSpec tag support without modifying ast-merge

### Changed

- **`Ast::Merge::AstNode` now inherits from `TreeHaver::Base::Node`**
  - Ensures synthetic nodes stay in sync with the canonical Node API
  - Inherits `Comparable`, `Enumerable` from base class
  - Retains all existing methods and behavior (Point, Location, signature, etc.)
  - Constructor calls `super(self, source: source)` to properly initialize base class
- **RSpec Dependency Tags refactored to use MergeGemRegistry**
  - Removed hardcoded merge gem availability checks
  - Removed `MERGE_GEM_TEST_SOURCES` constant
  - `*_available?` methods are now defined dynamically when gems register
  - `any_markdown_merge_available?` now queries registry by category
  - RSpec exclusion filters are configured dynamically from registry
- `Ast::Merge::Testing::TestableNode` now delegates to `TreeHaver::RSpec::TestableNode`
  - The TestableNode implementation has been moved to tree_haver for sharing across all merge gems
  - `spec/support/testable_node.rb` now requires and re-exports the tree_haver version
  - Backward compatible: existing tests continue to work unchanged
- `spec/ast/merge/node_wrapper_base_spec.rb` refactored to use `TestableNode` instead of mocks
  - Real TreeHaver::Node behavior for most tests
  - Mocks only retained for e... (continued)

812 of 929 branches covered (87.41%)

Branch coverage included in aggregate %.

8 of 9 new or added lines in 3 files covered. (88.89%)

2 existing lines in 1 file now uncovered.

2553 of 2647 relevant lines covered (96.45%)

30.48 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
83.67
0.0% lib/ast/merge/diff_mapper_base.rb

Uncovered Existing Lines

Lines Coverage ∆ File
2
83.15
-4.49% lib/ast/merge/node_wrapper_base.rb
Jobs
ID Job ID Ran Files Coverage
1 20908698901.1 12 Jan 2026 05:09AM UTC 51
94.1
GitHub Action Run
Source Files on build 20908698901
  • Tree
  • List 51
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • eee3d1e6 on github
  • Prev Build on main (#20894823202)
  • Next Build on main (#20908756192)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc