Class: Gettc::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/gettc/generate.rb

Instance Method Summary collapse

Constructor Details

#initialize(config_dir, target_dir) ⇒ Generator

Returns a new instance of Generator.

Raises:



50
51
52
53
54
55
56
57
58
# File 'lib/gettc/generate.rb', line 50

def initialize(config_dir, target_dir)
  @source_dir = File.join(config_dir, "template")
  raise SourceDirNotExist.new(@source_dir) unless File.directory?(@source_dir)

  @target_dir = target_dir
  raise TargetDirNotExist.new(@target_dir) unless File.directory?(@target_dir)

  load_engines(File.join(config_dir, "include"))
end

Instance Method Details

#generate(prob) ⇒ Object

Raises:



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/gettc/generate.rb', line 60

def generate(prob)
  @prob = prob

  @problem_dir = File.join(@target_dir, prob.name)
  raise ProblemDirExists.new(@problem_dir) if File.exists?(@problem_dir)
  FileUtils.mkdir(@problem_dir)

  method_sig = @prob.definitions["Method signature"]
  if method_sig.nil?
    $stderr.puts "[Warning] No definition for method signature found"
  else
    vars = parse_method_signature(method_sig)
    func = vars.shift
  end
  @context = binding

  walk(@source_dir, @problem_dir)
end