-group :development, :unit_tests do
- gem 'metadata-json-lint'
- gem 'puppet_facts'
- gem 'puppet-blacksmith', '>= 3.4.0'
- gem 'puppetlabs_spec_helper', '>= 1.2.1'
- gem 'rspec-puppet', '>= 2.3.2'
- gem 'rspec-puppet-facts'
- gem 'mocha', '< 1.2.0'
- gem 'simplecov'
- gem 'parallel_tests', '< 2.10.0' if RUBY_VERSION < '2.0.0'
- gem 'parallel_tests' if RUBY_VERSION >= '2.0.0'
- gem 'rubocop', '0.41.2' if RUBY_VERSION < '2.0.0'
- gem 'rubocop' if RUBY_VERSION >= '2.0.0'
- gem 'rubocop-rspec', '~> 1.6' if RUBY_VERSION >= '2.3.0'
- gem 'json_pure', '<= 2.0.1' if RUBY_VERSION < '2.0.0'
+ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
+minor_version = ruby_version_segments[0..1].join('.')
+
+group :development do
+ gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
+ gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
+ gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 2.8.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
+ gem "puppet-module-posix-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
+ gem "puppet-module-posix-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
+ gem "puppet-module-win-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
+ gem "puppet-module-win-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
+ gem "github_changelog_generator", require: false