Class: Processing::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/jruby_art/runner.rb

Overview

Utility class to handle the different commands that the ‘k9’ command offers. Able to run, watch, live, create, app, and unpack

Constant Summary collapse

WIN_PATTERNS =
[
  /bccwin/i,
  /cygwin/i,
  /djgpp/i,
  /ming/i,
  /mswin/i,
  /wince/i
]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#osObject (readonly)

Returns the value of attribute os.



54
55
56
# File 'lib/jruby_art/runner.rb', line 54

def os
  @os
end

Class Method Details

.executeObject

Start running a jruby_art sketch from the passed-in arguments



57
58
59
60
61
# File 'lib/jruby_art/runner.rb', line 57

def self.execute
  runner = new
  runner.parse_options(ARGV)
  runner.execute!
end

Instance Method Details

#check(root_exist, installed) ⇒ Object



141
142
143
144
145
146
147
148
149
# File 'lib/jruby_art/runner.rb', line 141

def check(root_exist, installed)
  show_version
  root = '  PROCESSING_ROOT = Not Set!!!' unless root_exist
  root ||= "  PROCESSING_ROOT = #{Processing::RP_CONFIG['PROCESSING_ROOT']}"
  jruby = Processing::RP_CONFIG['JRUBY']
  puts root
  puts "  JRUBY = #{jruby}" unless jruby.nil?
  puts "  jruby-complete installed = #{installed}"
end

#create(sketch, args) ⇒ Object

Create a fresh JRubyArt sketch, with the necessary boilerplate filled out.



93
94
95
96
97
98
99
# File 'lib/jruby_art/runner.rb', line 93

def create(sketch, args)
  require_relative '../jruby_art/creators/creator'
  return Processing::Inner.new.create!(sketch, args) if @options.inner
  return Processing::ClassSketch.new.create!(sketch, args) if @options.wrap
  return Processing::EmacsSketch.new.create!(sketch, args) if @options.emacs
  Processing::BasicSketch.new.create!(sketch, args)
end

#execute!Object

Dispatch central.



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/jruby_art/runner.rb', line 64

def execute!
  case @options.action
  when 'run'    then run(@options.path, @options.args)
  when 'live'   then live(@options.path, @options.args)  
  when 'watch'  then watch(@options.path, @options.args)
  when 'create' then create(@options.path, @options.args)
  when 'setup'  then setup(@options.path)
  when /-v/     then show_version
  when /-h/     then show_help
  else
    show_help
  end
end

#install(root_exist) ⇒ Object



134
135
136
137
138
139
# File 'lib/jruby_art/runner.rb', line 134

def install(root_exist)
  system "cd #{K9_ROOT}/vendors && rake"
  return if root_exist
  set_processing_root
  warn 'PROCESSING_ROOT set optimistically, run check to confirm'
end

#live(sketch, args) ⇒ Object

Just simply run a JRubyArt sketch.



108
109
110
111
# File 'lib/jruby_art/runner.rb', line 108

def live(sketch, args)
  ensure_exists(sketch)
  spin_up('live.rb', sketch, args)
end

#parse_options(args) ⇒ Object

Parse the command-line options. Keep it simple.



79
80
81
82
83
84
85
86
87
88
89
# File 'lib/jruby_art/runner.rb', line 79

def parse_options(args)
  @options = OpenStruct.new
  @options.emacs = !args.delete('--emacs').nil?
  @options.wrap = !args.delete('--wrap').nil?
  @options.inner = !args.delete('--inner').nil?
  @options.jruby = !args.delete('--jruby').nil?
  @options.nojruby = !args.delete('--nojruby').nil?
  @options.action = args[0] || nil
  @options.path = args[1] || File.basename(Dir.pwd + '.rb')
  @options.args = args[2..-1] || []
end

#run(sketch, args) ⇒ Object

Just simply run a JRubyArt sketch.



102
103
104
105
# File 'lib/jruby_art/runner.rb', line 102

def run(sketch, args)
  ensure_exists(sketch)
  spin_up('run.rb', sketch, args)
end

#setup(choice) ⇒ Object



120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/jruby_art/runner.rb', line 120

def setup(choice)
  proc_root = FileTest.exist?("#{ENV['HOME']}/.jruby_art/config.yml")
  case choice
  when /check/
    check(proc_root, FileTest.exist?("#{K9_ROOT}/lib/ruby/jruby-complete.jar"))
  when /install/
    install(proc_root)
  when /unpack_samples/
    system "cd #{K9_ROOT}/vendors && rake unpack_samples"
  else
    puts 'Usage: k9 setup [check | install | unpack_samples]'
  end
end

#show_helpObject

Show the standard help/usage message.



157
158
159
# File 'lib/jruby_art/runner.rb', line 157

def show_help
  puts HELP_MESSAGE
end

#show_versionObject

Display the current version of JRubyArt.



152
153
154
# File 'lib/jruby_art/runner.rb', line 152

def show_version
  puts format('JRubyArt version %s', JRubyArt::VERSION)
end

#watch(sketch, args) ⇒ Object

Run a sketch, keeping an eye on it’s file, and reloading whenever it changes.



115
116
117
118
# File 'lib/jruby_art/runner.rb', line 115

def watch(sketch, args)
  ensure_exists(sketch)
  spin_up('watch.rb', sketch, args)
end