示例#1
0
    @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());
    }
示例#2
0
    @Specialization
    public RubyRegexp initialize(RubyRegexp regexp, RubyRegexp from) {
      notDesignedForCompilation();

      regexp.initialize(this, from.getSource()); // TODO: is copying needed?
      return regexp;
    }
示例#3
0
 @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());
 }
示例#4
0
    @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;
    }
示例#5
0
 @Specialization
 public RubyString source(RubyRegexp regexp) {
   return getContext().makeString(regexp.getSource().toString());
 }