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