From b7c984c24d06502380a5cd2e461e25996eb14735 Mon Sep 17 00:00:00 2001 From: Chance Feick Date: Fri, 23 Sep 2016 15:00:31 -0700 Subject: [PATCH 1/4] add 2.3.1 to build matrix --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 2df777a..f5bbe8f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ rvm: - 2.1.7 - 2.2.3 - 2.3.0 + - 2.3.1 - jruby-19mode # - rbx - ruby-head From fba1555fbe377a287ea16e6d55dd32d412aa3a3e Mon Sep 17 00:00:00 2001 From: Chance Feick Date: Fri, 23 Sep 2016 15:17:15 -0700 Subject: [PATCH 2/4] wrap methods instead of delegation for versions <= ruby 2.3.0 --- lib/librato/metrics/smart_json.rb | 54 ++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/lib/librato/metrics/smart_json.rb b/lib/librato/metrics/smart_json.rb index bf8c1a2..2fac194 100644 --- a/lib/librato/metrics/smart_json.rb +++ b/lib/librato/metrics/smart_json.rb @@ -4,18 +4,38 @@ class SmartJSON extend SingleForwardable if defined?(::MultiJson) - # MultiJSON >= 1.3.0 - if MultiJson.respond_to?(:load) - def_delegator MultiJson, :load, :read - else - def_delegator MultiJson, :decode, :read - end + if RUBY_VERSION <= "2.3.0" + # MultiJSON >= 1.3.0 + if MultiJson.respond_to?(:load) + def_delegator MultiJson, :load, :read + else + def_delegator MultiJson, :decode, :read + end - # MultiJSON <= 1.2.0 - if MultiJson.respond_to?(:dump) - def_delegator MultiJson, :dump, :write + # MultiJSON <= 1.2.0 + if MultiJson.respond_to?(:dump) + def_delegator MultiJson, :dump, :write + else + def_delegator MultiJson, :encode, :write + end else - def_delegator MultiJson, :encode, :write + def self.read(json) + # MultiJSON >= 1.3.0 + if MultiJson.respond_to?(:load) + MultiJson.load(json) + else + MultiJson.decode(json) + end + end + + def self.write(json) + # MultiJSON <= 1.2.0 + if MultiJson.respond_to?(:dump) + MultiJson.dump(json) + else + MultiJson.encode(json) + end + end end def self.handler @@ -24,8 +44,18 @@ def self.handler else require "json" - def_delegator JSON, :parse, :read - def_delegator JSON, :generate, :write + if RUBY_VERSION <= "2.3.0" + def_delegator JSON, :parse, :read + def_delegator JSON, :generate, :write + else + def self.read(json) + JSON.parse(json) + end + + def self.write(json) + JSON.generate(json) + end + end def self.handler :json From ea336358834eb519377a890b8b425509e0df9533 Mon Sep 17 00:00:00 2001 From: Chance Feick Date: Thu, 29 Sep 2016 09:53:01 -0700 Subject: [PATCH 3/4] remove delegation --- lib/librato/metrics/smart_json.rb | 45 +++++++++---------------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/lib/librato/metrics/smart_json.rb b/lib/librato/metrics/smart_json.rb index 2fac194..d146890 100644 --- a/lib/librato/metrics/smart_json.rb +++ b/lib/librato/metrics/smart_json.rb @@ -4,37 +4,21 @@ class SmartJSON extend SingleForwardable if defined?(::MultiJson) - if RUBY_VERSION <= "2.3.0" + def self.read(json) # MultiJSON >= 1.3.0 if MultiJson.respond_to?(:load) - def_delegator MultiJson, :load, :read + MultiJson.load(json) else - def_delegator MultiJson, :decode, :read + MultiJson.decode(json) end + end + def self.write(json) # MultiJSON <= 1.2.0 if MultiJson.respond_to?(:dump) - def_delegator MultiJson, :dump, :write + MultiJson.dump(json) else - def_delegator MultiJson, :encode, :write - end - else - def self.read(json) - # MultiJSON >= 1.3.0 - if MultiJson.respond_to?(:load) - MultiJson.load(json) - else - MultiJson.decode(json) - end - end - - def self.write(json) - # MultiJSON <= 1.2.0 - if MultiJson.respond_to?(:dump) - MultiJson.dump(json) - else - MultiJson.encode(json) - end + MultiJson.encode(json) end end @@ -44,17 +28,12 @@ def self.handler else require "json" - if RUBY_VERSION <= "2.3.0" - def_delegator JSON, :parse, :read - def_delegator JSON, :generate, :write - else - def self.read(json) - JSON.parse(json) - end + def self.read(json) + JSON.parse(json) + end - def self.write(json) - JSON.generate(json) - end + def self.write(json) + JSON.generate(json) end def self.handler From 5ab02a0103c78a474698c8797ed7d3390ee56303 Mon Sep 17 00:00:00 2001 From: Chance Feick Date: Thu, 29 Sep 2016 13:17:52 -0700 Subject: [PATCH 4/4] remove SingleForwardable --- lib/librato/metrics/smart_json.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/librato/metrics/smart_json.rb b/lib/librato/metrics/smart_json.rb index d146890..136cb02 100644 --- a/lib/librato/metrics/smart_json.rb +++ b/lib/librato/metrics/smart_json.rb @@ -1,8 +1,6 @@ module Librato module Metrics class SmartJSON - extend SingleForwardable - if defined?(::MultiJson) def self.read(json) # MultiJSON >= 1.3.0