Method: Processing::Creator#create!

Defined in:
lib/ruby-processing/exporters/creator.rb

#create!(path, args, p3d) ⇒ Object

Create a blank sketch, given a path.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ruby-processing/exporters/creator.rb', line 9

def create!(path, args, p3d)
  usage path
  main_file = File.basename(path, ".rb")
  # Check to make sure that the main file exists
  already_exists = File.exist?(path) || File.exist?("#{File.dirname(path)}/#{main_file.underscore}.rb")
  if already_exists
    puts "That sketch already exists."
    exit
  end
  
  # Get the substitutions
  @name           = main_file.camelize
  @file_name      = main_file.underscore
  @title          = main_file.titleize
  
  @width, @height = args[0], args[1]
  @with_size      = @width && @width.match(ALL_DIGITS) &&
                    @height && @height.match(ALL_DIGITS)
  
  # Make the file
  dir = File.dirname path
  mkdir_p dir
  template_name = p3d ? 'p3d_sketch.rb.erb' : 'blank_sketch.rb.erb'
  template = File.new("#{RP5_ROOT}/lib/templates/create/#{template_name}")
  rendered = render_erb_from_string_with_binding(template.read, binding)
  full_path = File.join(dir, "#{@file_name}.rb")
  File.open(full_path, "w") {|f| f.print(rendered) }
  puts "Created Sketch \"#{@name}\" in #{full_path.sub(/\A\.\//, '')}"
end