@Specialization public RubyRegexp initialize(RubyRegexp regexp, RubyRegexp from) { notDesignedForCompilation(); regexp.initialize(this, from.getSource()); // TODO: is copying needed? return regexp; }
@Specialization public RubyString to_s(RubyRegexp regexp) { return new RubyString( getContext().getCoreLibrary().getStringClass(), ((org.jruby.RubyString) org.jruby.RubyRegexp.newRegexp( getContext().getRuntime(), regexp.getSource(), regexp.getRegex().getOptions()) .to_s()) .getByteList()); }
@Specialization public Object initializeCopy(RubyRegexp self, RubyRegexp from) { notDesignedForCompilation(); if (self == from) { return self; } self.initialize(this, from.getSource()); // TODO: is copying needed? return self; }
@Specialization public boolean equal(RubyRegexp a, RubyRegexp b) { notDesignedForCompilation(); return ((org.jruby.RubyString) org.jruby.RubyRegexp.newRegexp( getContext().getRuntime(), a.getSource(), a.getRegex().getOptions()) .to_s()) .getByteList() .equals( ((org.jruby.RubyString) org.jruby.RubyRegexp.newRegexp( getContext().getRuntime(), b.getSource(), b.getRegex().getOptions()) .to_s()) .getByteList()); }
@Specialization public RubyRegexp initialize(RubyRegexp regexp, RubyString string) { notDesignedForCompilation(); regexp.initialize(this, string.getBytes()); return regexp; }
@Specialization public Object match(RubyRegexp regexp, RubyString string) { notDesignedForCompilation(); return regexp.matchCommon(string.getBytes(), true, false) != getContext().getCoreLibrary().getNilObject(); }
@Specialization public RubyString source(RubyRegexp regexp) { return getContext().makeString(regexp.getSource().toString()); }
@Specialization public Object match(RubyRegexp regexp, RubyString string) { return regexp.matchCommon(string.getBytes(), false, false); }
@Specialization public RubyEncoding encoding(RubyRegexp regexp) { notDesignedForCompilation(); return regexp.getEncoding(); }