Create a gist now

Instantly share code, notes, and snippets.

@monkstone /.rp5rc
Last active Jul 24, 2017

Embed
YAML configuration file for ruby-processing
#RP5_HOME: "" # windoes users should set this
PROCESSING_ROOT: "/usr/share/processing" # Works for ArchLinux
#PROCESSING_ROOT: "/home/tux/processing-2.2.1" # Other linux distros with user tux
#PROCESSING_ROOT: "/Applications/Processing.app/Contents/Java" # Path for Mac
#PROCESSING_ROOT: "C:\Java\processing-2.2.1" # if you follow PhiLhos suggestion for windoes
import java.io.File;
Button enter, nojruby;
String processingRoot = "enter your processing root here"; // edit this line in the sketch
String done = "Done";
String OS = System.getProperty("os.name").toLowerCase();
String home, suggestion, separator, root;
PFont font;
float rectX, rectX2, rectY; // Position of buttons
float rectHeight = 30; // height of rect
float rectWidth = 90; // width of rect
int rectColor, rectColor2;
int rectHighlight, rectHighlight2;
int currentColor;
int selectedColor;
boolean acceptOver = false;
boolean noJruby = false;
boolean selected = false;
boolean no_jruby = false;
// The JSON object
JSONObject json;
void setup() {
size(600, 200);
home = System.getProperty("user.home");
File f = new File(home);
json = new JSONObject();
root = f.getParent();
separator = System.getProperty("file.separator");
font = createFont("Helvetica", 18);
if (OS.contains("mac")) {
suggestion = "/Applications/Processing.app/Contents/Resources/Java";
} else {
suggestion = home + separator + "processing-2.2.1";
}
rectColor = color(140);
rectColor2 = color(140);
rectHighlight = color(100);
rectHighlight2 = color(100);
selectedColor = color(0);
rectX = rectWidth + 20;
rectX2 = rectWidth + 150;
rectY = height * 0.8 - rectHeight / 4;
enter = new Button(rectX2, rectY, rectWidth, rectHeight, "enter");
nojruby = new Button(rectX, rectY, rectWidth, rectHeight, "nojruby");
}
void draw() {
background(200);
fill(0, 0, 200);
text("Suggestion:", 35, 28);
text(suggestion, 35, 56);
textFont(font, 18);
fill(255, 0, 0);
// this adds a blinking cursor after your text, at the expense of redrawing everything every frame
text(processingRoot + (frameCount / 10 % 2 == 0 ? "_" : ""), 35, 100);
fill(0, 0, 200);
text("Select nojruby to use jruby-complete by default", 35, 140);
update(mouseX, mouseY);
//background(200);
if (acceptOver) {
enter.draw(rectHighlight);
nojruby.draw(rectHighlight2);
} else {
enter.draw(rectColor);
nojruby.draw(rectColor2);
}
}
void writeRoot() {
rectColor = selectedColor;
rectHighlight = selectedColor;
json.setString("PROCESSING_ROOT", processingRoot);
json.setBoolean("JRUBY", !no_jruby);
json.setInt("X_OFF", floor(displayWidth * 0.1));
json.setInt("Y_OFF", floor(displayHeight * 0.1));
// to explictly set sketchbook path un-comment line below
// replacing 'location' = [File][Preferences][Sketchbook Location:]
// json.setString("sketchbook_path", "location");
saveJSONObject(json, home + separator + ".rp5rc");
processingRoot = done;
}
void keyReleased() {
if (key != CODED) {
switch (key) {
case BACKSPACE:
processingRoot = processingRoot.substring(0, max(0, processingRoot.length() - 1));
break;
case ENTER: // save the processing root to the config file
case RETURN:
writeRoot();
break;
case ESC:
case DELETE:
break;
default:
processingRoot += key;
}
}
}
void update(float x, float y) {
acceptOver = enter.overRect();
noJruby = nojruby.overRect();
}
void mouseClicked() {
update(mouseX, mouseY);
if (acceptOver) {
rectColor = selectedColor;
rectHighlight = selectedColor;
writeRoot();
}
if (noJruby) {
rectColor2 = selectedColor;
rectHighlight2 = selectedColor;
no_jruby = true;
}
}
class Button {
float x, y, w, h;
String text;
Button(float x, float y, float w, float h, String text) {
this.x = x;
this.y = y;
this.w = w;
this.h = h;
this.text = text;
}
void draw(int col) {
fill(col);
rect(x, y, w, h, 20, 20, 20, 20);
fill(255);
text(text, x + 8, y + 20);
}
boolean overRect() {
return (mouseX >= x && mouseX <= x + w
&& mouseY >= y && mouseY <= y + h);
}
}
@monkstone

This comment has been minimized.

Show comment
Hide comment
@monkstone

monkstone Nov 27, 2013

SetProcessingRoot.pde generates .rp5rc for your system, using an installed processing ide which you need!!!

Owner

monkstone commented Nov 27, 2013

SetProcessingRoot.pde generates .rp5rc for your system, using an installed processing ide which you need!!!

@jkisor

This comment has been minimized.

Show comment
Hide comment
@jkisor

jkisor Feb 10, 2014

Correction: The Mac PROCESSING_ROOT is '/Applications/Processing.app/Contents/Java'

jkisor commented Feb 10, 2014

Correction: The Mac PROCESSING_ROOT is '/Applications/Processing.app/Contents/Java'

@monkstone

This comment has been minimized.

Show comment
Hide comment
@monkstone

monkstone Mar 19, 2014

Changed after seeing @jkisor note was /Applications/Processing.app/Contents/Resources/Java

Owner

monkstone commented Mar 19, 2014

Changed after seeing @jkisor note was /Applications/Processing.app/Contents/Resources/Java

@monkstone

This comment has been minimized.

Show comment
Hide comment
@monkstone

monkstone May 19, 2014

Updated to latest version of processing-2.2, if I forget to do this you will know what to do?

Owner

monkstone commented May 19, 2014

Updated to latest version of processing-2.2, if I forget to do this you will know what to do?

@monkstone

This comment has been minimized.

Show comment
Hide comment
@monkstone

monkstone Jul 26, 2014

Updated for ruby-processing-2.6.2, also make use of processing JSONObject (JSON is a subset of yaml after-all). Added commented out ability to set sketchbook. Corrected JRUBY logic false/true.

Owner

monkstone commented Jul 26, 2014

Updated for ruby-processing-2.6.2, also make use of processing JSONObject (JSON is a subset of yaml after-all). Added commented out ability to set sketchbook. Corrected JRUBY logic false/true.

@JimmStout

This comment has been minimized.

Show comment
Hide comment
@JimmStout

JimmStout Jan 11, 2015

Hi! The .rp5rc file that was generated for me (Mac) didn't work initially! The line:

"JRUBY": false,

had to be changed to

"JRUBY": "false",

Seems to be no problem now!

Hi! The .rp5rc file that was generated for me (Mac) didn't work initially! The line:

"JRUBY": false,

had to be changed to

"JRUBY": "false",

Seems to be no problem now!

@jzanutto

This comment has been minimized.

Show comment
Hide comment
@jzanutto

jzanutto Jul 15, 2015

PROCESSING_ROOT suggestion is still incorrect. It should be "/Applications/Processing.app/Contents/Java"

PROCESSING_ROOT suggestion is still incorrect. It should be "/Applications/Processing.app/Contents/Java"

@sabsowitz

This comment has been minimized.

Show comment
Hide comment
@sabsowitz

sabsowitz May 16, 2016

What is the file path for the .rp5rc file?
I ran configRP5 and entered the processing root, but I still am receiving NameError: PApplet not found in packages processing.core; last error: cannot load Java class processing.core.PApplet error. I'm not sure what to do.

What is the file path for the .rp5rc file?
I ran configRP5 and entered the processing root, but I still am receiving NameError: PApplet not found in packages processing.core; last error: cannot load Java class processing.core.PApplet error. I'm not sure what to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment