summaryrefslogtreecommitdiff
path: root/lib/dslkeywords/symlink.rb
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-01 23:27:15 +0200
committerPaul Buetow <paul@buetow.org>2026-03-01 23:27:15 +0200
commit1217524955c7ea891ea85cb17dfd13f2b7b1fc3d (patch)
treef1ed556cc9308ed153c32ce7a9f812af40742a34 /lib/dslkeywords/symlink.rb
parentfba26f6d9f18600dc313b6d4ade65d536e9762e9 (diff)
refactor: extract register_keyword helper to eliminate 4x DSL duplication
Each of the file/symlink/touch/directory DSL methods repeated the same four-step pattern: nil-path identity return, @conds_met guard, create- configure-register, return object. Add a private register_keyword helper to DSL in dsl.rb and collapse each method to a one-liner. No behaviour changed; all 29 tests continue to pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'lib/dslkeywords/symlink.rb')
-rw-r--r--lib/dslkeywords/symlink.rb8
1 files changed, 1 insertions, 7 deletions
diff --git a/lib/dslkeywords/symlink.rb b/lib/dslkeywords/symlink.rb
index 160da6f..053e83d 100644
--- a/lib/dslkeywords/symlink.rb
+++ b/lib/dslkeywords/symlink.rb
@@ -22,13 +22,7 @@ module RCM
class DSL
def symlink(file_path = nil, &block)
- return :symlink if file_path.nil?
- return unless @conds_met
-
- s = Symlink.new(file_path)
- s.content(s.instance_eval(&block))
- self << s
- s
+ register_keyword(Symlink, :symlink, file_path) { |s| s.content(s.instance_eval(&block)) }
end
end
end