Skip to content

Commit ec4054a

Browse files
committed
Check for ascii_only? before re-encoding strings
1 parent 063082d commit ec4054a

4 files changed

Lines changed: 4 additions & 20 deletions

File tree

lib/graphql/schema/argument.rb

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,7 @@ def from_resolver?
5454
# @param replace_null_with_default [Boolean] if `true`, incoming values of `null` will be replaced with the configured `default_value`
5555
def initialize(arg_name = nil, type_expr = nil, desc = nil, required: true, type: nil, name: nil, loads: nil, description: nil, ast_node: nil, default_value: NO_DEFAULT, as: nil, from_resolver: false, camelize: true, prepare: nil, owner:, validates: nil, directives: nil, deprecation_reason: nil, replace_null_with_default: false, &definition_block)
5656
arg_name ||= name
57-
name_s = camelize ? Member::BuildType.camelize(arg_name.to_s) : arg_name.to_s
58-
if name_s.encoding != Encoding::UTF_8
59-
if name_s.frozen?
60-
name_s = name_s.encode(Encoding::UTF_8)
61-
else
62-
name_s.encode!(Encoding::UTF_8)
63-
end
64-
end
65-
@name = -name_s
57+
@name = -(camelize ? Member::BuildType.camelize(arg_name.to_s) : arg_name.to_s)
6658
@type_expr = type_expr || type
6759
@description = desc || description
6860
@null = required != true

lib/graphql/schema/field.rb

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -228,15 +228,7 @@ def initialize(type: nil, name: nil, owner: nil, null: nil, description: :not_gi
228228
end
229229
end
230230
@original_name = name
231-
name_s = name.to_s
232-
if name_s.encoding != Encoding::UTF_8
233-
if name_s.frozen?
234-
name_s = name_s.encode(Encoding::UTF_8)
235-
else
236-
name_s.encode!(Encoding::UTF_8)
237-
end
238-
end
239-
name_s = -name_s
231+
name_s = -name.to_s
240232

241233
@underscored_name = -Member::BuildType.underscore(name_s)
242234
@name = -(camelize ? Member::BuildType.camelize(name_s) : name_s)

lib/graphql/schema/member/base_dsl_methods.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def default_graphql_name
103103
@default_graphql_name ||= begin
104104
raise GraphQL::RequiredImplementationMissingError, 'Anonymous class should declare a `graphql_name`' if name.nil?
105105

106-
-name.split("::").last.sub(/Type\Z/, "").encode(Encoding::UTF_8)
106+
-name.split("::").last.sub(/Type\Z/, "")
107107
end
108108
end
109109

lib/graphql/types/string.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class String < GraphQL::Schema::Scalar
77

88
def self.coerce_result(value, ctx)
99
str = value.to_s
10-
if str.encoding == Encoding::UTF_8
10+
if str.ascii_only? || str.encoding == Encoding::UTF_8
1111
str
1212
elsif str.frozen?
1313
str.encode(Encoding::UTF_8)

0 commit comments

Comments
 (0)