THRIFT-2036 Thrift gem warns about class variable access from top level
Patch: Takuya Hashimoto & Keith Barrette
diff --git a/lib/rb/lib/thrift/protocol/json_protocol.rb b/lib/rb/lib/thrift/protocol/json_protocol.rb
index 8694b7d..2e85089 100644
--- a/lib/rb/lib/thrift/protocol/json_protocol.rb
+++ b/lib/rb/lib/thrift/protocol/json_protocol.rb
@@ -18,21 +18,6 @@
# under the License.
#
-@@kJSONObjectStart = '{'
-@@kJSONObjectEnd = '}'
-@@kJSONArrayStart = '['
-@@kJSONArrayEnd = ']'
-@@kJSONNewline = '\n'
-@@kJSONElemSeparator = ','
-@@kJSONPairSeparator = ':'
-@@kJSONBackslash = '\\'
-@@kJSONStringDelimiter = '"'
-
-@@kThriftVersion1 = 1
-
-@@kThriftNan = "NaN"
-@@kThriftInfinity = "Infinity"
-@@kThriftNegativeInfinity = "-Infinity"
module Thrift
class LookaheadReader
@@ -66,6 +51,7 @@
# implementations
#
class JSONContext
+ @@kJSONElemSeparator = ','
#
# Write context data to the trans. Default is to do nothing.
#
@@ -89,6 +75,8 @@
# Context class for object member key-value pairs
class JSONPairContext < JSONContext
+ @@kJSONPairSeparator = ':'
+
def initialize
@first = true
@colon = true
@@ -146,6 +134,21 @@
end
class JsonProtocol < BaseProtocol
+
+ @@kJSONObjectStart = '{'
+ @@kJSONObjectEnd = '}'
+ @@kJSONArrayStart = '['
+ @@kJSONArrayEnd = ']'
+ @@kJSONNewline = '\n'
+ @@kJSONBackslash = '\\'
+ @@kJSONStringDelimiter = '"'
+
+ @@kThriftVersion1 = 1
+
+ @@kThriftNan = "NaN"
+ @@kThriftInfinity = "Infinity"
+ @@kThriftNegativeInfinity = "-Infinity"
+
def initialize(trans)
super(trans)
@context = JSONContext.new