Skip to content

[ruby] Generated client has a syntax-error #1520

Closed
@meganemura

Description

@meganemura
Description

As I described in #1482 (comment),

I found that the generated ruby-client for OpenAPI 2.0 has a syntax-error.

> Regexp.new(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$)
Traceback (most recent call last):
        1: from /Users/meganemura/.rbenv/versions/2.5.3/bin/irb:11:in `<main>'
SyntaxError ((irb):1: premature end of char-class: /^(?:[A-Za-z0-9+/)
(irb):1: syntax error, unexpected ']', expecting ')'
Regexp.new(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A...

if @byte !~ Regexp.new(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$)

return false if @byte !~ Regexp.new(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$)

if byte !~ Regexp.new(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$)

We want to treat regex properly in the following pattern (from #1392):

In OpenAPI v3 file: pattern: '^\d{10}$'
Generated validation code: Regexp.new(/^\\d{10}$/)
Should be: Regexp.new(/^\d{10}$/)

So, the fix of #1393 adds slash(es) to the strings, but didn't work when the pattern contains / like this situation.

openapi-generator version
OpenAPI declaration file content or url
Command line used for generation
Steps to reproduce
Related issues/PRs

/cc @ggershoni

Suggest a fix/enhancement

Let me think about it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions