diff --git a/.travis.yml b/.travis.yml index 1ac58d82..2962e9d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,7 @@ rvm: - 2.4 - 2.5 - 2.6 + - 2.7.0-preview2 - ruby-head - jruby matrix: diff --git a/Rakefile b/Rakefile index ce390952..41f822cd 100644 --- a/Rakefile +++ b/Rakefile @@ -89,7 +89,7 @@ if defined?(Gem) and defined?(Gem::PackageTask) s.require_path = 'lib' s.add_development_dependency 'rake' - s.add_development_dependency 'test-unit', '~> 2.0' + s.add_development_dependency 'test-unit', '~> 3.0' s.extra_rdoc_files << 'README.md' s.rdoc_options << @@ -127,7 +127,7 @@ if defined?(Gem) and defined?(Gem::PackageTask) s.require_path = 'lib' s.add_development_dependency 'rake' - s.add_development_dependency 'test-unit', '~> 2.0' + s.add_development_dependency 'test-unit', '~> 3.0' s.extra_rdoc_files << 'README.md' s.rdoc_options << diff --git a/json-java.gemspec b/json-java.gemspec old mode 100644 new mode 100755 index f3fa0c91..c99ed89d --- a/json-java.gemspec +++ b/json-java.gemspec @@ -19,14 +19,14 @@ spec = Gem::Specification.new do |s| if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then s.add_development_dependency(%q, [">= 0"]) - s.add_development_dependency(%q, ["~> 2.0"]) + s.add_development_dependency(%q, ["~> 3.0"]) else s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["~> 2.0"]) + s.add_dependency(%q, ["~> 3.0"]) end else s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["~> 2.0"]) + s.add_dependency(%q, ["~> 3.0"]) end end diff --git a/json_pure.gemspec b/json_pure.gemspec index 1dffb22a..6ee2f4da 100644 --- a/json_pure.gemspec +++ b/json_pure.gemspec @@ -23,16 +23,13 @@ Gem::Specification.new do |s| if s.respond_to? :specification_version then s.specification_version = 4 + end - if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, ["~> 2.0"]) - else - s.add_dependency(%q.freeze, [">= 0"]) - s.add_dependency(%q.freeze, ["~> 2.0"]) - end + if s.respond_to? :add_runtime_dependency then + s.add_development_dependency(%q.freeze, [">= 0"]) + s.add_development_dependency(%q.freeze, ["~> 3.0"]) else s.add_dependency(%q.freeze, [">= 0"]) - s.add_dependency(%q.freeze, ["~> 2.0"]) + s.add_dependency(%q.freeze, ["~> 3.0"]) end end diff --git a/lib/json/pure/generator.rb b/lib/json/pure/generator.rb index ccb6fe42..a1143f8b 100644 --- a/lib/json/pure/generator.rb +++ b/lib/json/pure/generator.rb @@ -250,7 +250,8 @@ def [](name) if respond_to?(name) __send__(name) else - instance_variable_get("@#{name}") + instance_variable_get("@#{name}") if + instance_variables.include?("@#{name}".to_sym) # avoid warning end end diff --git a/lib/json/pure/parser.rb b/lib/json/pure/parser.rb index 3a6343bc..53402964 100644 --- a/lib/json/pure/parser.rb +++ b/lib/json/pure/parser.rb @@ -197,7 +197,15 @@ def parse_string def parse_value case when scan(FLOAT) - @decimal_class && @decimal_class.new(self[1]) || Float(self[1]) + if @decimal_class then + if @decimal_class == BigDecimal then + BigDecimal(self[1]) + else + @decimal_class.new(self[1]) || Float(self[1]) + end + else + Float(self[1]) + end when scan(INTEGER) Integer(self[1]) when scan(TRUE)