Skip to content

Commit

Permalink
Showing 2 changed files with 6 additions and 22 deletions.
Original file line number Diff line number Diff line change
@@ -2487,28 +2487,6 @@ public DynamicObject capitalizeBang(DynamicObject string) {
}
}

@CoreMethod(names = "capitalize", taintFromSelf = true)
public abstract static class CapitalizeNode extends CoreMethodArrayArgumentsNode {

@Child CallDispatchHeadNode capitalizeBangNode;
@Child CallDispatchHeadNode dupNode;

public CapitalizeNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
capitalizeBangNode = DispatchHeadNodeFactory.createMethodCall(context);
dupNode = DispatchHeadNodeFactory.createMethodCall(context);
}

@Specialization
public Object capitalize(VirtualFrame frame, DynamicObject string) {
final Object duped = dupNode.call(frame, string, "dup", null);
capitalizeBangNode.call(frame, duped, "capitalize!", null);

return duped;
}

}

@CoreMethod(names = "clear", raiseIfFrozenSelf = true)
public abstract static class ClearNode extends CoreMethodArrayArgumentsNode {

6 changes: 6 additions & 0 deletions truffle/src/main/ruby/core/string.rb
Original file line number Diff line number Diff line change
@@ -16,6 +16,12 @@ def %(args)
end
end

def capitalize
s = dup
s.capitalize!
s
end

def downcase
s = dup
s.downcase!

0 comments on commit 3856e3d

Please sign in to comment.