lib/jruby_art/creators/creator.rb in jruby_art-1.1.1 vs lib/jruby_art/creators/creator.rb in jruby_art-1.1.2

- old
+ new

@@ -1,59 +1,58 @@ -# encoding: utf-8 # frozen_string_literal: false BASIC = <<-CODE def setup - sketch_title '%s' +sketch_title '%s' end def draw end def settings - size %s, %s - # pixel_density(2) # here for hi-dpi displays only - # smooth # here +size %s, %s +# pixel_density(2) # here for hi-dpi displays only +# smooth # here end CODE BASIC_MODE = <<-CODE def setup - sketch_title '%s' +sketch_title '%s' end def draw end def settings - size %s, %s, %s - # smooth # here +size %s, %s, %s +# smooth # here end CODE CLASS_BASIC = <<-CODE # encoding: utf-8 # frozen_string_literal: false class %s < Processing::App - def setup - sketch_title '%s' - end +def setup +sketch_title '%s' +end - def draw +def draw - end +end - def settings - size %s, %s - # pixel_density(2) # here for hi-dpi displays only - # smooth # here - end +def settings +size %s, %s +# pixel_density(2) # here for hi-dpi displays only +# smooth # here end +end CODE EMACS_BASIC = <<-CODE # encoding: utf-8 # frozen_string_literal: false @@ -61,44 +60,44 @@ require 'jruby_art/app' Processing::App::SKETCH_PATH = __FILE__ class %s < Processing::App - def setup - sketch_title '%s' - end +def setup +sketch_title '%s' +end - def draw +def draw - end +end - def settings - size %s, %s - # smooth # here - end +def settings +size %s, %s +# smooth # here end +end %s.new unless defined? $app CODE CLASS_MODE = <<-CODE # encoding: utf-8 # frozen_string_literal: false class %s < Processing::App - def setup - sketch_title '%s' - end +def setup +sketch_title '%s' +end - def draw +def draw - end +end - def settings - size %s, %s, %s - # smooth # here - end +def settings +size %s, %s, %s +# smooth # here end +end CODE EMACS_MODE = <<-CODE # encoding: utf-8 # frozen_string_literal: false @@ -106,44 +105,46 @@ require 'jruby_art/app' Processing::App::SKETCH_PATH = __FILE__ class %s < Processing::App - def setup - sketch_title '%s' - end +def setup +sketch_title '%s' +end - def draw +def draw - end +end - def settings - size %s, %s, %s - # smooth # here - end +def settings +size %s, %s, %s +# smooth # here end +end %s.new unless defined? $app CODE INNER = <<-CODE # encoding: utf-8 # frozen_string_literal: false class %s - include Processing::Proxy +include Processing::Proxy end CODE -# processing wrapper module -module Processing +# creator wrapper module using StringExtra +module Creator require_relative '../helpers/string_extra' + using StringExtra # Write file to disk class SketchWriter attr_reader :file + def initialize(path) - underscore = StringExtra.new(path).underscore + underscore = path.underscore @file = "#{File.dirname(path)}/#{underscore}.rb" end def save(template) File.open(file, 'w+') do |f| @@ -151,15 +152,14 @@ end end end # An abstract class providing common methods for real creators - class Creator + class Base ALL_DIGITS = /\A\d+\Z/ - def already_exist(path) - underscore = StringExtra.new(path).underscore + underscore = path.underscore new_file = "#{File.dirname(path)}/#{underscore}.rb" return if !FileTest.exist?(path) && !FileTest.exist?(new_file) puts 'That file already exists!' exit end @@ -179,11 +179,11 @@ USAGE end end # This class creates bare sketches, with an optional render mode - class BasicSketch < Creator + class BasicSketch < Base # Create a blank sketch, given a path. def basic_template format(BASIC, @title, @width, @height) end @@ -195,46 +195,47 @@ return usage if /\?/ =~ path || /--help/ =~ path # Check to make sure that the main file doesn't exist already already_exist(path) main_file = File.basename(path, '.rb') # allow uneeded extension input writer = SketchWriter.new(main_file) - @title = StringExtra.new(main_file).titleize + @title = main_file.titleize @width = args[0] @height = args[1] @mode = args[2].upcase unless args[2].nil? template = @mode.nil? ? basic_template : basic_template_mode writer.save(template) end end # This class creates class wrapped sketches, with an optional render mode - class ClassSketch < Creator + class ClassSketch < Base def class_template format(CLASS_BASIC, @name, @title, @width, @height) end def class_template_mode format(CLASS_MODE, @name, @title, @width, @height, @mode) end + # Create a class wrapped sketch, given a path. def create!(path, args) return usage if /\?/ =~ path || /--help/ =~ path main_file = File.basename(path, '.rb') # allow uneeded extension input # Check to make sure that the main file doesn't exist already already_exist(path) - @name = StringExtra.new(main_file).camelize + @name = main_file.camelize writer = SketchWriter.new(main_file) - @title = StringExtra.new(main_file).titleize + @title = main_file.titleize @width, @height = args[0], args[1] @mode = args[2].upcase unless args[2].nil? template = @mode.nil? ? class_template : class_template_mode writer.save(template) end end # This class creates class wrapped sketches, with an optional render mode - class EmacsSketch < Creator + class EmacsSketch < Base def emacs_template format(EMACS_BASIC, @name, @title, @width, @height, @name) end def emacs_template_mode @@ -244,24 +245,25 @@ def create!(path, args) return usage if /\?/ =~ path || /--help/ =~ path main_file = File.basename(path, '.rb') # allow uneeded extension input # Check to make sure that the main file doesn't exist already already_exist(path) - @name = StringExtra.new(main_file).camelize + @name = main_file.camelize writer = SketchWriter.new(main_file) - @title = StringExtra.new(main_file).titleize + @title = main_file.titleize @width, @height = args[0], args[1] @mode = args[2].upcase unless args[2].nil? template = @mode.nil? ? emacs_template : emacs_template_mode writer.save(template) end end # This class creates a pseudo 'java inner class' of the sketch - class Inner < Creator + class InnerSketch < Base def inner_class_template format(INNER, @name) end + # Create a pseudo inner class, given a path. def create!(path, _args_) return usage if /\?/ =~ path || /--help/ =~ path main_file = File.basename(path, '.rb') # allow uneeded extension input # Check to make sure that the main file doesn't exist already