diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c4c202d..9d48e6b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - ruby-version: [jruby-9.3] + ruby-version: [jruby-9.3, jruby-9.4] steps: - uses: actions/checkout@v2 @@ -24,7 +24,7 @@ jobs: bundler-cache: true - name: Install dependencies run: bundle install - - name: Run RuboCop - run: bundle exec rubocop - name: Run test - run: bundle exec rake specs + run: jruby -Ilib -rbundler/setup -S rake specs + - name: Run RuboCop + run: jruby -Ilib -rbundler/setup -S rubocop lib diff --git a/Gemfile b/Gemfile index 7f4f5e9..e5449c6 100644 --- a/Gemfile +++ b/Gemfile @@ -3,3 +3,12 @@ source 'https://rubygems.org' gemspec + +group :development do + gem 'rake', require: false + gem 'ruby-debug', '~> 0.11', require: false + + gem 'rubocop', '~> 1.50.2', require: false + gem 'rubocop-performance', require: false + gem 'rubocop-rake', require: false +end diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 94430c6..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,63 +0,0 @@ -PATH - remote: . - specs: - jar-dependencies (0.4.1) - -GEM - remote: https://rubygems.org/ - specs: - ast (2.4.2) - columnize (0.9.0) - json (2.6.2-java) - linecache (1.3.1-java) - minitest (5.10.3) - parallel (1.22.1) - parser (3.1.2.0) - ast (~> 2.4.1) - rainbow (3.1.1) - rake (13.0.6) - regexp_parser (2.5.0) - rexml (3.2.5) - rubocop (1.31.1) - json (~> 2.3) - parallel (~> 1.10) - parser (>= 3.1.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.18.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.18.0) - parser (>= 3.1.1.0) - rubocop-performance (1.14.2) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - rubocop-rake (0.6.0) - rubocop (~> 1.0) - ruby-debug (0.11.0) - columnize (>= 0.1) - linecache (~> 1.3.1) - ruby-debug-base (~> 0.11.0.0) - ruby-debug-base (0.11.0-java) - ruby-maven (3.3.13) - ruby-maven-libs (~> 3.3.9) - ruby-maven-libs (3.3.9) - ruby-progressbar (1.11.0) - unicode-display_width (2.2.0) - -PLATFORMS - universal-java-11 - -DEPENDENCIES - jar-dependencies! - minitest (~> 5.10.0) - rake (~> 13.0) - rubocop (~> 1.31) - rubocop-performance (~> 1.14) - rubocop-rake (~> 0.6) - ruby-debug (~> 0.11) - ruby-maven (~> 3.3) - -BUNDLED WITH - 2.3.16 diff --git a/jar-dependencies.gemspec b/jar-dependencies.gemspec index 4f506ef..094aa4b 100644 --- a/jar-dependencies.gemspec +++ b/jar-dependencies.gemspec @@ -29,12 +29,7 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 2.6' - s.add_development_dependency 'minitest', '~> 5.10.0' - s.add_development_dependency 'rake', '~> 13.0' - s.add_development_dependency 'rubocop', '~> 1.31' - s.add_development_dependency 'rubocop-performance', '~> 1.14' - s.add_development_dependency 'rubocop-rake', '~> 0.6' - s.add_development_dependency 'ruby-debug', '~> 0.11' + s.add_development_dependency 'minitest', '~> 5.10' s.add_development_dependency 'ruby-maven', ruby_maven_version = '~> 3.3' s.post_install_message = <<~TEXT diff --git a/lib/jar_dependencies.rb b/lib/jar_dependencies.rb index 9e24e34..39bb7a0 100644 --- a/lib/jar_dependencies.rb +++ b/lib/jar_dependencies.rb @@ -91,7 +91,6 @@ def skip? end def require? - @require = nil unless instance_variable_defined?(:@require) if @require.nil? if (require = to_boolean(REQUIRE)).nil? no_require = to_boolean(NO_REQUIRE) @@ -105,7 +104,12 @@ def require? attr_writer :require def quiet? - (@silent ||= false) || to_boolean(QUIET) + @quiet = to_boolean(QUIET) if @quiet.nil? + @quiet + end + + def no_more_warnings + @quiet = true end def jarfile @@ -124,10 +128,6 @@ def vendor? to_boolean(VENDOR) end - def no_more_warnings - @silent = true - end - def freeze_loading self.require = false end @@ -198,7 +198,7 @@ def local_maven_repo end def home - absolute(to_prop(HOME)) || local_maven_repo + @home ||= absolute(to_prop(HOME)) || local_maven_repo end def require_jars_lock!(scope = :runtime) @@ -242,7 +242,7 @@ def setup(options = nil) when Symbol require_jars_lock!(options) when Hash - @jars_home = options[:jars_home] + @home = options[:jars_home] @jars_lock = options[:jars_lock] require_jars_lock!(options[:scope] || :runtime) else @@ -341,18 +341,15 @@ def to_jar(group_id, artifact_id, version, classifier = nil) def do_require(*args) jar = to_jar(*args) - local = File.join(Dir.pwd, 'jars', jar) - vendor = File.join(Dir.pwd, 'vendor', 'jars', jar) - file = File.join(home, jar) - # use jar from local repository if exists - if File.exist?(file) - require file - # use jar from PWD/jars if exists - elsif File.exist?(local) - require local # use jar from PWD/vendor/jars if exists - elsif File.exist?(vendor) + if File.exist?(vendor = File.join(Dir.pwd, 'vendor', 'jars', jar)) require vendor + # use jar from PWD/jars if exists + elsif File.exist?(local = File.join(Dir.pwd, 'jars', jar)) + require local + # use jar from local repository if exists + elsif File.exist?(file = File.join(home, jar)) + require file else # otherwise try to find it on the load path require jar diff --git a/lib/jars/attach_jars_pom.rb b/lib/jars/attach_jars_pom.rb index 37c20d4..d08ba36 100644 --- a/lib/jars/attach_jars_pom.rb +++ b/lib/jars/attach_jars_pom.rb @@ -2,13 +2,13 @@ # this file is maven DSL -(0..10_000).each do |i| +10_000.times do |i| coord = ENV_JAVA["jars.#{i}"] break unless coord artifact = Maven::Tools::Artifact.from_coordinate(coord) exclusions = [] - (0..10_000).each do |j| + 10_000.times do |j| exclusion = ENV_JAVA["jars.#{i}.exclusions.#{j}"] break unless exclusion diff --git a/lib/jars/gemspec_artifacts.rb b/lib/jars/gemspec_artifacts.rb index 9def815..7a4a6b3 100644 --- a/lib/jars/gemspec_artifacts.rb +++ b/lib/jars/gemspec_artifacts.rb @@ -17,7 +17,7 @@ def new(*args) end end - private + private def convert(arg, low = nil, high = nil) if arg.include?('~>') @@ -58,7 +58,7 @@ def snapshot_version(val) val end end - end + end end class GemspecArtifacts @@ -83,7 +83,7 @@ def to_s def initialize(line) super() line.gsub(/'"|^\s*\[|\]\s*$/, '').split(/,\s*/).each do |exclusion| - self.<< Exclusion.new(exclusion) + self << Exclusion.new(exclusion) end freeze end @@ -97,7 +97,7 @@ class Artifact def initialize(options, *args) @type, @group_id, @artifact_id, @classifier, @version, @exclusions = *args options.each do |k, v| - instance_variable_set("@#{k}", v) + instance_variable_set(:"@#{k}", v) end end diff --git a/lib/jars/lock.rb b/lib/jars/lock.rb index e776f35..960dba7 100644 --- a/lib/jars/lock.rb +++ b/lib/jars/lock.rb @@ -26,7 +26,9 @@ def version end def classifier - size == 5 ? nil : self[2] + return nil if size == 5 + + self[2] end def gacv diff --git a/lib/jars/maven_factory.rb b/lib/jars/maven_factory.rb index 4a22f08..c78fee9 100644 --- a/lib/jars/maven_factory.rb +++ b/lib/jars/maven_factory.rb @@ -110,7 +110,7 @@ def add_gem_to_load_path(name) def requirement(name) jars = Gem.loaded_specs['jar-dependencies'] - dep = jars.nil? ? nil : jars.dependencies.detect { |d| d.name == name } + dep = jars&.dependencies&.detect { |d| d.name == name } dep.nil? ? Gem::Requirement.create('>0') : dep.requirement end @@ -122,7 +122,7 @@ def install_gem(name, req) inst.install(name, req).first rescue => e if Jars.verbose? - warn e.inspect.to_s + warn e.inspect warn e.backtrace.join("\n") end raise "there was an error installing '#{name} (#{req})' " \ diff --git a/lib/jars/maven_settings.rb b/lib/jars/maven_settings.rb index 7fbe1c6..7f1b291 100644 --- a/lib/jars/maven_settings.rb +++ b/lib/jars/maven_settings.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'rubygems/uri_formatter' module Jars class MavenSettings LINE_SEPARATOR = ENV_JAVA['line.separator'] @@ -8,8 +7,14 @@ class MavenSettings class << self def local_settings @_jars_maven_local_settings_ = nil unless instance_variable_defined?(:@_jars_maven_local_settings_) - if @_jars_maven_local_settings_.nil? && (settings = Jars.absolute('settings.xml')) && File.exist?(settings) - @_jars_maven_local_settings_ = settings + if @_jars_maven_local_settings_.nil? + settings = Jars.absolute('settings.xml') + @_jars_maven_local_settings_ = + if settings && File.exist?(settings) + settings + else + false + end end @_jars_maven_local_settings_ || nil end diff --git a/lib/jars/post_install_hook.rb b/lib/jars/post_install_hook.rb index d755671..d979b71 100644 --- a/lib/jars/post_install_hook.rb +++ b/lib/jars/post_install_hook.rb @@ -23,7 +23,7 @@ if defined?(JRUBY_VERSION) && Gem.post_install_hooks.empty? Gem.post_install do |gem_installer| - unless (ENV['JARS_SKIP'] || ENV_JAVA['jars.skip']) == 'true' + if ENV['JARS_SKIP'] != 'true' && ENV_JAVA['jars.skip'] != 'true' require 'jars/installer' jars = Jars::Installer.new(gem_installer.spec) jars.ruby_maven_install_options = gem_installer.options || {} diff --git a/specs/classpath_spec.rb b/specs/classpath_spec.rb index 3676f8a..6f8bd29 100644 --- a/specs/classpath_spec.rb +++ b/specs/classpath_spec.rb @@ -123,40 +123,40 @@ def self.prepare(array) it 'resolves classpath from gemspec' do ENV_JAVA['jars.quiet'] = 'true' Dir.chdir(File.dirname(example_spec)) do - Helper.prepare(subject.classpath).must_equal Helper.prepare(example_expected) + _(Helper.prepare(subject.classpath)).must_equal Helper.prepare(example_expected) - Helper.prepare(subject.classpath(:compile)).must_equal Helper.prepare( + _(Helper.prepare(subject.classpath(:compile))).must_equal Helper.prepare( expected_with_bc + ['org/slf4j/slf4j-simple/1.7.7/slf4j-simple-1.7.7.jar'] ) - Helper.prepare(subject.classpath(:test)).must_equal Helper.prepare(expected_with_bc + [ + _(Helper.prepare(subject.classpath(:test))).must_equal Helper.prepare(expected_with_bc + [ 'junit/junit/4.12/junit-4.12.jar', 'org/slf4j/slf4j-simple/1.7.7/slf4j-simple-1.7.7.jar', 'org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar' ]) - Helper.prepare(subject.classpath(:runtime)).must_equal Helper.prepare(example_expected) + _(Helper.prepare(subject.classpath(:runtime))).must_equal Helper.prepare(example_expected) end end it 'resolves classpath_string from gemspec' do ENV_JAVA['jars.quiet'] = 'true' Dir.chdir(File.dirname(example_spec)) do - Helper.prepare(subject.classpath_string.split(File::PATH_SEPARATOR)).must_equal Helper.prepare(example_expected) + _(Helper.prepare(subject.classpath_string.split(File::PATH_SEPARATOR))).must_equal Helper.prepare(example_expected) - Helper.prepare(subject.classpath_string(:compile).split(File::PATH_SEPARATOR)) + _(Helper.prepare(subject.classpath_string(:compile).split(File::PATH_SEPARATOR))) .must_equal Helper.prepare( expected_with_bc + ['org/slf4j/slf4j-simple/1.7.7/slf4j-simple-1.7.7.jar'] ) - Helper.prepare(subject.classpath_string(:test).split(File::PATH_SEPARATOR)) + _(Helper.prepare(subject.classpath_string(:test).split(File::PATH_SEPARATOR))) .must_equal Helper.prepare(expected_with_bc + [ 'junit/junit/4.12/junit-4.12.jar', 'org/slf4j/slf4j-simple/1.7.7/slf4j-simple-1.7.7.jar', 'org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar' ]) - Helper.prepare(subject.classpath_string(:runtime).split(File::PATH_SEPARATOR)) + _(Helper.prepare(subject.classpath_string(:runtime).split(File::PATH_SEPARATOR))) .must_equal Helper.prepare(example_expected) end end @@ -166,8 +166,6 @@ def self.prepare(array) skip('TODO just use some empty jars for this spec') - skip('jruby-9.0.0.x can not require jruby core jars') if JRUBY_VERSION.match?(/9.0.0.0/) - old = $CLASSPATH.to_a # sometimes the $CLASSPATH can already have BC jars @@ -186,26 +184,26 @@ def self.prepare(array) subject.require(:runtime) - Helper.reduce($CLASSPATH.to_a, old).must_equal Helper.prepare(expected) + _(Helper.reduce($CLASSPATH.to_a, old)).must_equal Helper.prepare(expected) expected += example_expected subject.require(:compile) - Helper.reduce($CLASSPATH.to_a, old).must_equal Helper.prepare(expected) + _(Helper.reduce($CLASSPATH.to_a, old)).must_equal Helper.prepare(expected) expected << 'junit/junit/4.1/junit-4.1.jar' subject.require(:test) - Helper.reduce($CLASSPATH.to_a, old).must_equal Helper.prepare(expected) + _(Helper.reduce($CLASSPATH.to_a, old)).must_equal Helper.prepare(expected) end it 'processes Jars.lock if exists' do subject.instance_variable_set(:@deps, jars_lock) - Helper.prepare(subject.classpath).must_equal Helper.prepare(lock_expected_runtime) - Helper.prepare(subject.classpath(:compile)).must_equal Helper.prepare(lock_expected) + _(Helper.prepare(subject.classpath)).must_equal Helper.prepare(lock_expected_runtime) + _(Helper.prepare(subject.classpath(:compile))).must_equal Helper.prepare(lock_expected) - Helper.prepare(subject.classpath(:test)).must_equal Helper.prepare(lock_expected_test) + _(Helper.prepare(subject.classpath(:test))).must_equal Helper.prepare(lock_expected_test) - Helper.prepare(subject.classpath(:runtime)).must_equal Helper.prepare(lock_expected_runtime) + _(Helper.prepare(subject.classpath(:runtime))).must_equal Helper.prepare(lock_expected_runtime) end it 'processes Jars.lock and block loading of jars' do @@ -214,6 +212,6 @@ def self.prepare(array) subject.require require_jar 'example', 'example', '1' - $CLASSPATH.detect { |c| c.include?('example') }.must_be_nil + _($CLASSPATH.detect { |c| c.include?('example') }).must_be_nil end end diff --git a/specs/dependency_spec.rb b/specs/dependency_spec.rb index ab3ba92..4b34190 100644 --- a/specs/dependency_spec.rb +++ b/specs/dependency_spec.rb @@ -7,87 +7,87 @@ # rubocop:disable Layout/LineLength describe Jars::Installer::Dependency do it 'should parse dependency line only if it is jar or pom' do - Jars::Installer::Dependency.new(+'something').must_be_nil - Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:jar:3.1.0:compile:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar').wont_be_nil - Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:pom:3.1.0:compile:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar').wont_be_nil + assert_nil Jars::Installer::Dependency.new(+'something') + assert Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:jar:3.1.0:compile:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar') + assert Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:pom:3.1.0:compile:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar') end it 'should parse dependency line test scope' do dep = Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:jar:3.1.0:test:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar') - dep.type.must_equal :jar - dep.scope.must_equal :test - dep.gav.must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' - dep.coord.must_equal 'org.apache.maven:maven-repository-metadata:jar:3.1.0' - dep.path.must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' - dep.file.must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' + _(dep.type).must_equal :jar + _(dep.scope).must_equal :test + _(dep.gav).must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' + _(dep.coord).must_equal 'org.apache.maven:maven-repository-metadata:jar:3.1.0' + _(dep.path).must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' + _(dep.file).must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' end it 'should parse dependency line provided scope' do dep = Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:jar:3.1.0:provided:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar') - dep.type.must_equal :jar - dep.scope.must_equal :provided - dep.gav.must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' - dep.coord.must_equal 'org.apache.maven:maven-repository-metadata:jar:3.1.0' - dep.path.must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' - dep.file.must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' + _(dep.type).must_equal :jar + _(dep.scope).must_equal :provided + _(dep.gav).must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' + _(dep.coord).must_equal 'org.apache.maven:maven-repository-metadata:jar:3.1.0' + _(dep.path).must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' + _(dep.file).must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' end it 'should parse dependency line runtim scope' do dep = Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:jar:3.1.0:compile:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar') - dep.type.must_equal :jar - dep.scope.must_equal :runtime - dep.gav.must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' - dep.coord.must_equal 'org.apache.maven:maven-repository-metadata:jar:3.1.0' - dep.path.must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' - dep.file.must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' + _(dep.type).must_equal :jar + _(dep.scope).must_equal :runtime + _(dep.gav).must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' + _(dep.coord).must_equal 'org.apache.maven:maven-repository-metadata:jar:3.1.0' + _(dep.path).must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' + _(dep.file).must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' dep = Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:jar:3.1.0:runtime:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar') - dep.type.must_equal :jar - dep.scope.must_equal :runtime - dep.gav.must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' - dep.coord.must_equal 'org.apache.maven:maven-repository-metadata:jar:3.1.0' - dep.path.must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' - dep.file.must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' + _(dep.type).must_equal :jar + _(dep.scope).must_equal :runtime + _(dep.gav).must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' + _(dep.coord).must_equal 'org.apache.maven:maven-repository-metadata:jar:3.1.0' + _(dep.path).must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' + _(dep.file).must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.jar' end it 'should parse pom dependency' do dep = Jars::Installer::Dependency.new(+' org.apache.maven:maven-repository-metadata:pom:3.1.0:compile:/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.pom') - dep.type.must_equal :pom - dep.scope.must_equal :runtime - dep.gav.must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' - dep.coord.must_equal 'org.apache.maven:maven-repository-metadata:pom:3.1.0' - dep.path.must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.pom' - dep.file.must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.pom' + _(dep.type).must_equal :pom + _(dep.scope).must_equal :runtime + _(dep.gav).must_equal 'org.apache.maven:maven-repository-metadata:3.1.0' + _(dep.coord).must_equal 'org.apache.maven:maven-repository-metadata:pom:3.1.0' + _(dep.path).must_equal 'org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.pom' + _(dep.file).must_equal '/usr/local/repository/org/apache/maven/maven-repository-metadata/3.1.0/maven-repository-metadata-3.1.0.pom' end it 'should parse dependency where artifact_id has dots' do dep = Jars::Installer::Dependency.new(+' org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.0.0.M2a:compile:/usr/local/repository/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M2a/org.eclipse.sisu.plexus-0.0.0.M2a.jar') - dep.type.must_equal :jar - dep.scope.must_equal :runtime - dep.gav.must_equal 'org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M2a' - dep.coord.must_equal 'org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.0.0.M2a' - dep.path.must_equal 'org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M2a/org.eclipse.sisu.plexus-0.0.0.M2a.jar' - dep.file.must_equal '/usr/local/repository/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M2a/org.eclipse.sisu.plexus-0.0.0.M2a.jar' + _(dep.type).must_equal :jar + _(dep.scope).must_equal :runtime + _(dep.gav).must_equal 'org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M2a' + _(dep.coord).must_equal 'org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.0.0.M2a' + _(dep.path).must_equal 'org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M2a/org.eclipse.sisu.plexus-0.0.0.M2a.jar' + _(dep.file).must_equal '/usr/local/repository/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M2a/org.eclipse.sisu.plexus-0.0.0.M2a.jar' end it 'should parse dependency with classifier' do dep = Jars::Installer::Dependency.new(+' org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0:compile:/usr/local/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar') - dep.type.must_equal :jar - dep.scope.must_equal :runtime - dep.gav.must_equal 'org.sonatype.sisu:sisu-guice:no_aop:3.1.0' - dep.coord.must_equal 'org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0' - dep.path.must_equal 'org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar' - dep.file.must_equal '/usr/local/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar' + _(dep.type).must_equal :jar + _(dep.scope).must_equal :runtime + _(dep.gav).must_equal 'org.sonatype.sisu:sisu-guice:no_aop:3.1.0' + _(dep.coord).must_equal 'org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0' + _(dep.path).must_equal 'org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar' + _(dep.file).must_equal '/usr/local/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar' end it 'should parse dependency on windows' do dep = Jars::Installer::Dependency.new(+' org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0:compile:C:\\Users\\Local\\repository\\org\\sonatype\\sisu\\sisu-guice\\3.1.0\\sisu-guice-3.1.0-no_aop.jar') - dep.type.must_equal :jar - dep.scope.must_equal :runtime - dep.gav.must_equal 'org.sonatype.sisu:sisu-guice:no_aop:3.1.0' - dep.coord.must_equal 'org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0' - dep.path.must_equal 'org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar' - dep.file.must_equal 'C:\\Users\\Local\\repository\\org\\sonatype\\sisu\\sisu-guice\\3.1.0\\sisu-guice-3.1.0-no_aop.jar' + _(dep.type).must_equal :jar + _(dep.scope).must_equal :runtime + _(dep.gav).must_equal 'org.sonatype.sisu:sisu-guice:no_aop:3.1.0' + _(dep.coord).must_equal 'org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0' + _(dep.path).must_equal 'org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar' + _(dep.file).must_equal 'C:\\Users\\Local\\repository\\org\\sonatype\\sisu\\sisu-guice\\3.1.0\\sisu-guice-3.1.0-no_aop.jar' end end # rubocop:enable Layout/LineLength diff --git a/specs/gemspec_artifacts_spec.rb b/specs/gemspec_artifacts_spec.rb index 2165943..f2ba2b3 100644 --- a/specs/gemspec_artifacts_spec.rb +++ b/specs/gemspec_artifacts_spec.rb @@ -9,16 +9,16 @@ expected = 'group:artifact' line = ' group:artifact ' ex = Jars::GemspecArtifacts::Exclusion.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected line = ' "group:artifact" ' ex = Jars::GemspecArtifacts::Exclusion.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected line = "'group:artifact'" ex = Jars::GemspecArtifacts::Exclusion.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected line = ' group:artifact ' ex = Jars::GemspecArtifacts::Exclusion.new("#{line} :extra:asd") - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected end end @@ -27,170 +27,170 @@ expected = '[group:artifact]' line = ' [group:artifact] ' ex = Jars::GemspecArtifacts::Exclusions.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected line = " [' group:artifact'] " ex = Jars::GemspecArtifacts::Exclusions.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected line = ' [ "group:artifact "] ' ex = Jars::GemspecArtifacts::Exclusions.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected expected = '[group-id:artifact-id]' line = ' [ "group-id:artifact-id "] ' ex = Jars::GemspecArtifacts::Exclusions.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected end it 'parse and to_s of list of exclusions' do expected = '[group1:artifact1, group2:artifact2]' line = ' [group1:artifact1, group2:artifact2] ' ex = Jars::GemspecArtifacts::Exclusions.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected line = " ['group1:artifact1', ' group2:artifact2'] " ex = Jars::GemspecArtifacts::Exclusions.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected line = ' [ "group1:artifact1", " group2:artifact2"] ' ex = Jars::GemspecArtifacts::Exclusions.new(line) - ex.to_s.must_equal expected + _(ex.to_s).must_equal expected end end describe Jars::GemspecArtifacts::Artifact do it 'ignore unknow type' do - Jars::GemspecArtifacts::Artifact.new('bla').must_be_nil - Jars::GemspecArtifacts::Artifact.new(' bla').must_be_nil - Jars::GemspecArtifacts::Artifact.new('bla bla bla').must_be_nil + _(Jars::GemspecArtifacts::Artifact.new('bla')).must_be_nil + _(Jars::GemspecArtifacts::Artifact.new(' _(bla')).must_be_nil + _(Jars::GemspecArtifacts::Artifact.new('bla bla _(bla')).must_be_nil end %i[jar pom].each do |type| it "parse and to_s of simple GAV #{type}" do expected = "#{type} g:a, 1" a = Jars::GemspecArtifacts::Artifact.new(expected) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g:a', '1'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g,a,1" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g',\"a\", 1" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g:a:1" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g:a:1'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected end it "parse and to_s of simple GAV #{type} with range" do expected = "#{type} g:a, [1, 2)" a = Jars::GemspecArtifacts::Artifact.new(expected) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g:a:[1, 2)" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g:a,'[1, 2)'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g', \"a\", ' [1, 2) '" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected end it "parse and to_s of simple GAV #{type} with one exclusion" do expected = "#{type} g:a, 1, [a:b]" a = Jars::GemspecArtifacts::Artifact.new(expected) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g:a', '1', '[a:b]'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g:a', '1', ['a:b']" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g,a,1,[a:b]" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected end it "parse and to_s of simple GAV #{type} with exclusions" do expected = "#{type} g:a, 1, [a:b, c:d]" a = Jars::GemspecArtifacts::Artifact.new(expected) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g:a', '1', ['a:b', 'c:d']'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g,a,1,[a:b,c:d]" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected end it "parse and to_s of simple GAV #{type} with exclusions and range" do expected = "#{type} g:a, (1, 2], [a:b, c:d]" a = Jars::GemspecArtifacts::Artifact.new(expected) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g:a', '(1,2]', ['a:b', 'c:d']'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g,a,(1,2],[a:b,c:d]" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g,a,(1,2], :exclusions : [a:b,c:d]" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected end it "parse and to_s of simple GACV #{type}" do expected = "#{type} g:a, c, 1" a = Jars::GemspecArtifacts::Artifact.new(expected) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g:a', 'c', '1'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g,a,\"c\",1" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g,a, 1 ,:classifier : c" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected end it "parse and to_s of simple GACV #{type} with range" do expected = "#{type} g:a, c, [1, 2)" a = Jars::GemspecArtifacts::Artifact.new(expected) - a.to_s.must_equal expected - a.scope.must_be_nil + _(a.to_s).must_equal expected + _(a.scope).must_be_nil line = "#{type} g:a:c:[1, 2),:scope=>:runtime" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected - a.scope.must_equal 'runtime' + _(a.to_s).must_equal expected + _(a.scope).must_equal 'runtime' line = "#{type} g:a:c,'[1, 2)'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} 'g', \"a\", 'c', ' [1, 2) '" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected line = "#{type} g,a,[1, 2),:classifier => c" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected end it "parse and to_s of simple GACV #{type} with exclusions and range" do expected = "#{type} g:a, c, (1, 2], [a:b, c:d]" a = Jars::GemspecArtifacts::Artifact.new(expected) - a.to_s.must_equal expected - a.scope.must_be_nil + _(a.to_s).must_equal expected + _(a.scope).must_be_nil line = "#{type} 'g:a:c', '(1,2]', ['a:b', 'c:d']'" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected - a.scope.must_be_nil + _(a.to_s).must_equal expected + _(a.scope).must_be_nil line = "#{type} g,a,c,(1,2],[a:b,c:d], :scope => :compile" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected - a.scope.must_equal 'compile' + _(a.to_s).must_equal expected + _(a.scope).must_equal 'compile' line = "#{type} g,a,(1,2],:classifier => c,:exclusions => [a:b,c:d]" a = Jars::GemspecArtifacts::Artifact.new(line) - a.to_s.must_equal expected + _(a.to_s).must_equal expected end end end @@ -205,34 +205,34 @@ eval(File.read(example_spec)) # rubocop:disable Security/Eval end artifacts = Jars::GemspecArtifacts.new(spec) - artifacts[0].to_s.must_equal('jar org.bouncycastle:bcpkix-jdk15on, 1.49') - artifacts[1].to_s.must_equal('jar org.bouncycastle:bcprov-jdk15on, 1.49') - artifacts[3].to_s.must_equal('jar io.dropwizard:dropwizard-logging, 0.8.0-rc5, [joda-time:joda-time]') - artifacts[4].to_s.must_equal('jar com.google.protobuf:protobuf-java, lite, 2.2.0') - artifacts[5].to_s.must_equal('jar junit:junit, 4.12') - artifacts[0].scope.must_be_nil - artifacts[1].scope.must_be_nil - artifacts[2].scope.must_be_nil - artifacts[3].scope.must_be_nil - artifacts[4].scope.must_be_nil - artifacts[5].scope.must_equal('test') - artifacts[0].classifier.must_be_nil - artifacts[1].classifier.must_be_nil - artifacts[2].classifier.must_be_nil - artifacts[3].classifier.must_be_nil - artifacts[4].classifier.must_equal('lite') - artifacts[5].classifier.must_be_nil - artifacts[0].exclusions.must_be_nil - artifacts[1].exclusions.must_be_nil - artifacts[2].exclusions.must_be_nil - artifacts[3].exclusions.to_s.must_equal('[joda-time:joda-time]') - artifacts[4].exclusions.must_be_nil - artifacts[5].exclusions.must_be_nil + _(artifacts[0].to_s).must_equal('jar org.bouncycastle:bcpkix-jdk15on, 1.49') + _(artifacts[1].to_s).must_equal('jar org.bouncycastle:bcprov-jdk15on, 1.49') + _(artifacts[3].to_s).must_equal('jar io.dropwizard:dropwizard-logging, 0.8.0-rc5, [joda-time:joda-time]') + _(artifacts[4].to_s).must_equal('jar com.google.protobuf:protobuf-java, lite, 2.2.0') + _(artifacts[5].to_s).must_equal('jar junit:junit, 4.12') + _(artifacts[0].scope).must_be_nil + _(artifacts[1].scope).must_be_nil + _(artifacts[2].scope).must_be_nil + _(artifacts[3].scope).must_be_nil + _(artifacts[4].scope).must_be_nil + _(artifacts[5].scope).must_equal('test') + _(artifacts[0].classifier).must_be_nil + _(artifacts[1].classifier).must_be_nil + _(artifacts[2].classifier).must_be_nil + _(artifacts[3].classifier).must_be_nil + _(artifacts[4].classifier).must_equal('lite') + _(artifacts[5].classifier).must_be_nil + _(artifacts[0].exclusions).must_be_nil + _(artifacts[1].exclusions).must_be_nil + _(artifacts[2].exclusions).must_be_nil + _(artifacts[3].exclusions.to_s).must_equal('[joda-time:joda-time]') + _(artifacts[4].exclusions).must_be_nil + _(artifacts[5].exclusions).must_be_nil artifacts.each do |a| - a.to_s.must_equal Jars::GemspecArtifacts::Artifact.new(a.to_s).to_s + _(a.to_s).must_equal Jars::GemspecArtifacts::Artifact.new(a.to_s).to_s end - artifacts.size.must_equal 7 + _(artifacts.size).must_equal 7 end end diff --git a/specs/jar_installer_spec.rb b/specs/jar_installer_spec.rb index e580a8b..c9e97e8 100644 --- a/specs/jar_installer_spec.rb +++ b/specs/jar_installer_spec.rb @@ -34,17 +34,17 @@ def do_install(vendor, write) it 'loads dependencies from maven' do deps = Jars::Installer.load_from_maven(file) - deps.size.must_equal 45 - deps.each { |d| d.must_be_kind_of Jars::Installer::Dependency } + _(deps.size).must_equal 45 + deps.each { |d| _(d).must_be_kind_of(Jars::Installer::Dependency) } end it 'generates non-vendored require-file' do deps = Jars::Installer.load_from_maven(file) Jars::Installer.write_require_jars(deps, jars) File.read(jars).each_line do |line| - line.must_match(/^\s{2}require(_jar)?\s'.+'$/) if line.size > 30 && !line.match(/^#/) + _(line).must_match(/^\s{2}require(_jar)?\s'.+'$/) if line.size > 30 && !line.match(/^#/) end - Dir[File.join(dir, '**')].size.must_equal 1 + _( Dir[File.join(dir, '**')].size ).must_equal 1 end it 'generates vendored require-file' do @@ -52,19 +52,19 @@ def do_install(vendor, write) Jars::Installer.write_require_jars(deps, jars) Jars::Installer.vendor_jars(deps, dir) File.read(jars).each_line do |line| - line.must_match(/^\s{2}require(_jar)?\s'.+'$/) if line.size > 30 && !line.match(/^#/) + _(line).must_match(/^\s{2}require(_jar)?\s'.+'$/) if line.size > 30 && !line.match(/^#/) end - Dir[File.join(dir, '**', '*.jar')].size.must_equal 45 + _( Dir[File.join(dir, '**', '*.jar')].size ).must_equal 45 end it 'just skips install_jars and vendor_jars if there are no requirements' do jar = Jars::Installer.new jar.install_jars # vendor method is a mocked method - jar.vendor.must_be_nil + _(jar.vendor).must_be_nil jar.vendor_jars # vendor method is a mocked method - jar.vendor.must_be_nil + _(jar.vendor).must_be_nil end it 'just skips install_jars and vendor_jars if platform is not java' do @@ -73,10 +73,10 @@ def do_install(vendor, write) jar = Jars::Installer.new(spec) jar.install_jars # vendor method is a mocked method - jar.vendor.must_be_nil + _(jar.vendor).must_be_nil jar.vendor_jars # vendor method is a mocked method - jar.vendor.must_be_nil + _(jar.vendor).must_be_nil end it 'does install_jars and vendor_jars' do @@ -92,7 +92,7 @@ def do_install(vendor, write) ENV['JARS_VENDOR'] = 'true' jar.vendor_jars # vendor method is a mocked method - jar.vendor.must_equal 'lib' + _(jar.vendor).must_equal 'lib' java.lang.System.set_property('jars.vendor', 'false') jar.vendor_jars # vendor method is a mocked method @@ -104,10 +104,10 @@ def do_install(vendor, write) Jars.reset jar = Jars::Installer.new(example_spec) result = jar.send :install_dependencies - result.size.must_equal 30 + _(result.size).must_equal 30 result.each do |d| - d.type.must_equal :jar - d.scope.must_equal :runtime + _(d.type).must_equal :jar + _(d.scope).must_equal :runtime end ENV['JARS_HOME'] = nil end diff --git a/specs/jars_spec.rb b/specs/jars_spec.rb index b880c2a..cfd4c93 100644 --- a/specs/jars_spec.rb +++ b/specs/jars_spec.rb @@ -5,7 +5,7 @@ require 'stringio' describe Jars do before do - @env = ENV.dup + @env = ENV.to_h # helpful when debugging Jars.reset end @@ -18,10 +18,10 @@ it 'extract property' do ENV['SOME_JARS_HOME'] = 'bla' - Jars.to_prop('some_jars_home').must_equal 'bla' + _(Jars.to_prop('some_jars_home')).must_equal 'bla' if defined? JRUBY_VERSION java.lang.System.set_property('some.jars.home', 'blabla') - Jars.to_prop('some_jars_home').must_equal 'blabla' + _(Jars.to_prop('some_jars_home')).must_equal 'blabla' end end @@ -29,12 +29,12 @@ assert_nil Jars.to_boolean('JARS_SOMETHING') ENV['JARS_SOMETHING'] = 'falsy' - Jars.to_boolean('JARS_SOMETHING').must_equal false + _(Jars.to_boolean('JARS_SOMETHING')).must_equal false ENV[jars_verbose = 'JARS_VERBOSE'] = 'true' - Jars.to_boolean(jars_verbose).must_equal true - Jars.verbose?.must_equal true - jars_verbose.must_equal 'JARS_VERBOSE' # no mod + _(Jars.to_boolean(jars_verbose)).must_equal true + _(Jars.verbose?).must_equal true + _(jars_verbose).must_equal 'JARS_VERBOSE' # no mod if defined? JRUBY_VERSION jars_skip = 'JARS_SKIP' @@ -43,12 +43,12 @@ java.lang.System.set_property('jars.quiet', 'false') java.lang.System.set_property('jars.debug', '') - Jars.to_boolean(jars_skip).must_equal true - Jars.skip?.must_equal true - jars_skip.must_equal 'JARS_SKIP' # no mod + _(Jars.to_boolean(jars_skip)).must_equal true + _(Jars.skip?).must_equal true + _(jars_skip).must_equal 'JARS_SKIP' # no mod - Jars.to_boolean('JARS_DEBUG').must_equal true - Jars.to_boolean('jars.quiet').must_equal false + _(Jars.to_boolean('JARS_DEBUG')).must_equal true + _(Jars.to_boolean('jars.quiet')).must_equal false ensure java.lang.System.clear_property('jars.skip') java.lang.System.clear_property('jars.quiet') @@ -58,20 +58,19 @@ end it 'extract maven settings' do - settings = Jars.maven_settings - settings&.sub(/.*\.m2./, '')&.must_equal 'settings.xml' + settings = Jars.maven_settings # likely nil on CI ENV['JARS_MAVEN_SETTINGS'] = 'specs/settings.xml' Jars.reset - settings.wont_equal Jars.maven_settings - Jars.maven_settings.must_equal File.expand_path('specs/settings.xml') + _(settings).wont_equal Jars.maven_settings + _(Jars.maven_settings).must_equal File.expand_path('specs/settings.xml') ENV['JARS_MAVEN_SETTINGS'] = nil Jars.reset Dir.chdir(File.dirname(__FILE__)) do - settings.wont_equal Jars.maven_settings - Jars.maven_settings.must_equal File.expand_path('settings.xml') + _(settings).wont_equal Jars.maven_settings + _(Jars.maven_settings).must_equal File.expand_path('settings.xml') end end @@ -80,13 +79,13 @@ ENV['JARS_QUIET'] = 'true' ENV['JARS_MAVEN_SETTINGS'] = 'does-not-exist/settings.xml' home = Jars.home - home.must_equal(File.join(ENV['HOME'], '.m2', 'repository')) + _(home).must_equal(File.join(ENV['HOME'], '.m2', 'repository')) ENV['JARS_LOCAL_MAVEN_REPO'] = nil ENV['JARS_MAVEN_SETTINGS'] = File.join('specs', 'settings.xml') Jars.reset - Jars.home.wont_equal home - Jars.home.must_equal 'specs' + _(Jars.home).wont_equal home + _(Jars.home).must_equal 'specs' ENV['JARS_MAVEN_SETTINGS'] = nil end @@ -97,7 +96,7 @@ ENV.delete('HOME') ENV['JARS_QUIET'] = true.to_s ENV['JARS_MAVEN_SETTINGS'] = 'does-not-exist/settings.xml' - Jars.home.must_equal(File.join(env_home, '.m2', 'repository')) + _(Jars.home).must_equal(File.join(env_home, '.m2', 'repository')) end it 'determines JARS_HOME (from global settings.xml)' do @@ -105,12 +104,12 @@ ENV['HOME'] = "/tmp/oul'bollocks!" ENV['M2_HOME'] = __dir__ ENV_JAVA['repo.path'] = 'specs' - Jars.home.must_equal('specs/repository') + _(Jars.home).must_equal('specs/repository') ENV['JARS_LOCAL_MAVEN_REPO'] = nil end it 'raises RuntimeError on requires of unknown group-id' do - -> { require_jar('org.something', 'slf4j-simple', '1.6.6') }.must_raise RuntimeError + _ { require_jar('org.something', 'slf4j-simple', '1.6.6') }.must_raise RuntimeError end # rubocop:disable Layout/LineLength @@ -119,12 +118,12 @@ Jars.reset begin - require_jar('org.slf4j', 'slf4j-simple') { nil }.must_equal true + _(require_jar('org.slf4j', 'slf4j-simple') { nil }).must_equal true $stderr = StringIO.new - require_jar('org.slf4j', 'slf4j-simple') { '1.6.6' }.must_equal false + _(require_jar('org.slf4j', 'slf4j-simple') { '1.6.6' }).must_equal false - $stderr.string.must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version unknown - omit version 1.6.6\n" + _($stderr.string).must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version unknown - omit version 1.6.6\n" ensure $stderr = STDERR ENV['JARS_HOME'] = nil @@ -136,22 +135,22 @@ Jars.reset begin - require_jar('org.slf4j', 'slf4j-simple', '1.6.6').must_equal true + _(require_jar('org.slf4j', 'slf4j-simple', '1.6.6')).must_equal true $stderr = StringIO.new - require_jar('org.slf4j', 'slf4j-simple') { '1.6.6' }.must_equal false - $stderr.string.must_equal '' + _(require_jar('org.slf4j', 'slf4j-simple') { '1.6.6' }).must_equal false + _($stderr.string).must_equal '' $stderr = StringIO.new - require_jar('org.slf4j', 'slf4j-simple', '1.6.4').must_equal false - $stderr.string.must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version 1.6.6 - omit version 1.6.4\n" + _(require_jar('org.slf4j', 'slf4j-simple', '1.6.4')).must_equal false + _($stderr.string).must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version 1.6.6 - omit version 1.6.4\n" $stderr = StringIO.new - require_jar('org.slf4j', 'slf4j-simple') { '1.6.4' }.must_equal false - $stderr.string.must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version 1.6.6 - omit version 1.6.4\n" + _(require_jar('org.slf4j', 'slf4j-simple') { '1.6.4' }).must_equal false + _($stderr.string).must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version 1.6.6 - omit version 1.6.4\n" $stderr = StringIO.new - require_jar('org.slf4j', 'slf4j-simple') { nil }.must_equal false - $stderr.string.must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version 1.6.6 - omit version unknown\n" + _(require_jar('org.slf4j', 'slf4j-simple') { nil }).must_equal false + _($stderr.string).must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version 1.6.6 - omit version unknown\n" ensure $stderr = STDERR ENV['JARS_HOME'] = nil @@ -171,11 +170,11 @@ $stderr.flush $stderr = StringIO.new - require_jar('org.slf4j', 'slf4j-simple', '1.6.4').must_equal true + _(require_jar('org.slf4j', 'slf4j-simple', '1.6.4')).must_equal true - require_jar('org.slf4j', 'slf4j-simple', '1.6.6').must_equal false + _(require_jar('org.slf4j', 'slf4j-simple', '1.6.6')).must_equal false - $stderr.string.must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version 1.6.4 - omit version 1.6.6\n" + _($stderr.string).must_equal "--- jar coordinate org.slf4j:slf4j-simple already loaded with version 1.6.4 - omit version 1.6.6\n" ensure $stderr = STDERR ENV['JARS_HOME'] = nil @@ -192,16 +191,13 @@ require_jar 'org.bouncycastle', 'bcpkix-jdk15on', JOpenSSL::BOUNCY_CASTLE_VERSION - $CLASSPATH.length.must_equal size + _($CLASSPATH.length).must_equal size $stderr = StringIO.new require_jar 'org.bouncycastle', 'bcpkix-jdk15on', '1.46' - $stderr.string.must_equal '' - rescue LoadError, NameError => e - p e - skip 'assume we have an old jruby' + _($stderr.string).must_equal '' ensure $stderr = STDERR end @@ -219,35 +215,29 @@ out = require_jar 'org.jruby', 'jruby-rack', '1.1.16' assert_nil out - $CLASSPATH.length.must_equal size - rescue LoadError, NameError => e - p e - skip 'assume we have an old jruby' + _($CLASSPATH.length).must_equal size end it 'does not warn on conflicts after turning into silent mode' do + skip('$CLASSPATH is not clean - need to skip spec') if $CLASSPATH.detect { |a| a.include?('bcpkix-jdk18on') } + size = $CLASSPATH.length - # TODO: use jline instead to avoid this skip - skip('$CLASSPATH is not clean - need to skip spec') if $CLASSPATH.detect { |a| a.include?('bcpkix-jdk15on') } Jars.no_more_warnings require 'jopenssl/version' - if require_jar('org.bouncycastle', 'bcpkix-jdk15on', JOpenSSL::BOUNCY_CASTLE_VERSION) - $CLASSPATH.length.must_equal(size + 1) + if require_jar('org.bouncycastle', 'bcpkix-jdk18on', JOpenSSL::BOUNCY_CASTLE_VERSION) + _($CLASSPATH.length).must_equal(size + 1) end $stderr = StringIO.new - require_jar 'org.bouncycastle', 'bcpkix-jdk15on', '1.46' - - $stderr.string.must_equal '' + require_jar 'org.bouncycastle', 'bcpkix-jdk18on', '1.70' + _($stderr.string).must_equal '' + ensure $stderr = STDERR - rescue LoadError, NameError => e - p e - skip 'assume we have an old jruby' end it 'no warnings on reload' do @@ -255,8 +245,9 @@ load File.expand_path('lib/jar_dependencies.rb') - $stderr.string.must_equal '' + _($stderr.string).must_equal '' + ensure $stderr = STDERR end @@ -272,11 +263,12 @@ require_jar 'more', 'sample', '3' end - $stderr.string.wont_match(/omit version 1/) - $stderr.string.must_match(/omit version 2/) - $stderr.string.must_match(/omit version 3/) - $stderr.string.wont_match(/omit version 4/) + _($stderr.string).wont_match(/omit version 1/) + _($stderr.string).must_match(/omit version 2/) + _($stderr.string).must_match(/omit version 3/) + _($stderr.string).wont_match(/omit version 4/) + ensure $stderr = STDERR $LOAD_PATH.delete(File.join(pwd, 'path')) diff --git a/specs/maven_exec_spec.rb b/specs/maven_exec_spec.rb index 06c57c1..ace3695 100644 --- a/specs/maven_exec_spec.rb +++ b/specs/maven_exec_spec.rb @@ -22,7 +22,7 @@ Dir.chdir File.dirname(spec_with_require_relative) do $stderr = StringIO.new Jars::MavenExec.new - $stderr.string.must_equal '' + _($stderr.string).must_equal '' ensure $stderr = STDERR end @@ -46,7 +46,7 @@ def spec.gem_dir spec.gem_dir = File.dirname(example_spec) # now test finding the gemspec file jar = Jars::MavenExec.new(spec) - jar.instance_variable_get(:@basedir).must_equal File.expand_path(spec.gem_dir) - jar.instance_variable_get(:@specfile).must_equal File.expand_path(example_spec) + _(jar.instance_variable_get(:@basedir)).must_equal File.expand_path(spec.gem_dir) + _(jar.instance_variable_get(:@specfile)).must_equal File.expand_path(example_spec) end end diff --git a/specs/maven_factory_spec.rb b/specs/maven_factory_spec.rb index c45d756..a248b08 100644 --- a/specs/maven_factory_spec.rb +++ b/specs/maven_factory_spec.rb @@ -17,36 +17,36 @@ ENV['JARS_DEBUG'] = nil Jars.reset maven = Jars::MavenFactory.new.maven_new('pom') - maven.options.key?('--quiet').must_equal true - maven.options.key?('-X').must_equal false - maven.options['-Dverbose'].must_equal false + _(maven.options.key?('--quiet')).must_equal true + _(maven.options.key?('-X')).must_equal false + _(maven.options['-Dverbose']).must_equal false ENV['JARS_VERBOSE'] = 'true' ENV['JARS_DEBUG'] = nil Jars.reset maven = Jars::MavenFactory.new.maven_new('pom') - maven.options.key?('--quiet').must_equal false - maven.options.key?('-e').must_equal true - maven.options.key?('-X').must_equal false - maven.options['-Dverbose'].must_equal true + _(maven.options.key?('--quiet')).must_equal false + _(maven.options.key?('-e')).must_equal true + _(maven.options.key?('-X')).must_equal false + _(maven.options['-Dverbose']).must_equal true ENV['JARS_VERBOSE'] = nil ENV['JARS_DEBUG'] = 'true' Jars.reset maven = Jars::MavenFactory.new.maven_new('pom') - maven.options.key?('--quiet').must_equal false - maven.options.key?('-e').must_equal false - maven.options.key?('-X').must_equal true - maven.options['-Dverbose'].must_equal true + _(maven.options.key?('--quiet')).must_equal false + _(maven.options.key?('-e')).must_equal false + _(maven.options.key?('-X')).must_equal true + _(maven.options['-Dverbose']).must_equal true ENV['JARS_VERBOSE'] = 'true' ENV['JARS_DEBUG'] = 'true' Jars.reset maven = Jars::MavenFactory.new.maven_new('pom') - maven.options.key?('--quiet').must_equal false - maven.options.key?('-e').must_equal true - maven.options.key?('-X').must_equal true - maven.options['-Dverbose'].must_equal true + _(maven.options.key?('--quiet')).must_equal false + _(maven.options.key?('-e')).must_equal true + _(maven.options.key?('-X')).must_equal true + _(maven.options['-Dverbose']).must_equal true end it 'uses proxy settings from Gem.configuration' do @@ -55,23 +55,23 @@ Gem.configuration[:proxy] = 'https://localhost:3128' Jars.reset maven = Jars::MavenFactory.new.maven_new('pom') - maven.options.key?('-DproxySet=true').must_equal true - maven.options.key?('-DproxyHost=localhost').must_equal true - maven.options.key?('-DproxyPort=3128').must_equal true + _(maven.options.key?('-DproxySet=true')).must_equal true + _(maven.options.key?('-DproxyHost=localhost')).must_equal true + _(maven.options.key?('-DproxyPort=3128')).must_equal true Gem.configuration[:proxy] = :noproxy Jars.reset maven = Jars::MavenFactory.new.maven_new('pom') - maven.options.key?('-DproxySet=true').must_equal false - maven.options.key?('-DproxyHost=localhost').must_equal false - maven.options.key?('-DproxyPort=3128').must_equal false + _(maven.options.key?('-DproxySet=true')).must_equal false + _(maven.options.key?('-DproxyHost=localhost')).must_equal false + _(maven.options.key?('-DproxyPort=3128')).must_equal false ENV['JARS_MAVEN_SETTINGS'] = 'specs/settings.xml' Gem.configuration[:proxy] = 'https://localhost:3128' Jars.reset maven = Jars::MavenFactory.new.maven_new('pom') - maven.options.key?('-DproxySet=true').must_equal false - maven.options.key?('-DproxyHost=localhost').must_equal false - maven.options.key?('-DproxyPort=3128').must_equal false + _(maven.options.key?('-DproxySet=true')).must_equal false + _(maven.options.key?('-DproxyHost=localhost')).must_equal false + _(maven.options.key?('-DproxyPort=3128')).must_equal false end end