Ejemplo n.º 1
0
 public CoreObject xPad(CoreCall cc) throws InterpreterException {
   String paddingCharacter = cc.getMemberDefaultString("with", " ");
   boolean padAtTheEnd = cc.getMemberDefaultString("at", "end").equals("end");
   StringBuilder currentString = new StringBuilder();
   currentString.append(getCurrentObject(cc).value.toString());
   int padSize = cc.argPop().toDouble().intValue();
   while (currentString.length() < padSize) {
     if (padAtTheEnd) currentString.append(paddingCharacter);
     else currentString.insert(0, paddingCharacter);
   }
   return new CoreString(currentString.toString());
 }
Ejemplo n.º 2
0
  public CoreObject xRxEach(CoreCall cc) throws InterpreterException {
    CoreObject yieldFunction = cc.argPop();
    String delimiter = cc.getMemberDefaultString("sep", "");
    String[] parts = getCurrentObject(cc).value.toString().split(delimiter);

    int partCount = parts.length;
    for (int i = 0; i < partCount; i++) {
      ClastCapsule args = new ClastCapsule(new Token(), new CoreString(parts[i]));
      args.next = new ClastCapsule(new Token(), new CoreNumber(i));
      yieldFunction.execute(cc.flatCall(args));
    }
    return getCurrentObject(cc);
  }