Class: Smdev::CursorRules::FileCopier

Inherits:
Object
  • Object
show all
Defined in:
lib/smdev/cursor_rules/file_copier.rb

Instance Method Summary collapse

Constructor Details

#initialize(source_dir, target_dir) ⇒ FileCopier

Returns a new instance of FileCopier.



7
8
9
10
# File 'lib/smdev/cursor_rules/file_copier.rb', line 7

def initialize(source_dir, target_dir)
  @source_dir = source_dir
  @target_dir = target_dir
end

Instance Method Details

#copy_documentation(source_docs, target_docs) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/smdev/cursor_rules/file_copier.rb', line 27

def copy_documentation(source_docs, target_docs)
  FileUtils.mkdir_p(target_docs)
  
  Dir.glob(File.join(source_docs, '**', '*')).each do |file|
    if File.file?(file)
      copy_with_path(file, source_docs, target_docs)
    elsif File.directory?(file)
      rel_path = Pathname.new(file).relative_path_from(Pathname.new(source_docs)).to_s
      FileUtils.mkdir_p(File.join(target_docs, rel_path))
    end
  end
end

#copy_rules(source_rules, target_rules) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/smdev/cursor_rules/file_copier.rb', line 12

def copy_rules(source_rules, target_rules)
  FileUtils.mkdir_p(target_rules)
  
  Dir.glob(File.join(source_rules, '**', '*.mdc')).each do |source_file|
    copy_with_path(source_file, source_rules, target_rules)
  end
end

#copy_templates(source_templates, target_templates) ⇒ Object



20
21
22
23
24
25
# File 'lib/smdev/cursor_rules/file_copier.rb', line 20

def copy_templates(source_templates, target_templates)
  return unless Dir.exist?(source_templates)
  
  FileUtils.mkdir_p(target_templates)
  FileUtils.cp_r(Dir.glob("#{source_templates}/*"), target_templates)
end