diff --git a/Gemfile.lock b/Gemfile.lock index afdf5de..beeef02 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/gemfiles/Gemfile.elasticsearch-1.x.lock b/gemfiles/Gemfile.elasticsearch-1.x.lock index 3557d8a..79dc004 100644 --- a/gemfiles/Gemfile.elasticsearch-1.x.lock +++ b/gemfiles/Gemfile.elasticsearch-1.x.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/gemfiles/Gemfile.elasticsearch-2.x.lock b/gemfiles/Gemfile.elasticsearch-2.x.lock index 1dc4013..964baaa 100644 --- a/gemfiles/Gemfile.elasticsearch-2.x.lock +++ b/gemfiles/Gemfile.elasticsearch-2.x.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/gemfiles/Gemfile.elasticsearch-5.x.lock b/gemfiles/Gemfile.elasticsearch-5.x.lock index 03f4ed8..d79840d 100644 --- a/gemfiles/Gemfile.elasticsearch-5.x.lock +++ b/gemfiles/Gemfile.elasticsearch-5.x.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/gemfiles/Gemfile.elasticsearch-6.x.lock b/gemfiles/Gemfile.elasticsearch-6.x.lock index d3ee293..1e35ab3 100644 --- a/gemfiles/Gemfile.elasticsearch-6.x.lock +++ b/gemfiles/Gemfile.elasticsearch-6.x.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/gemfiles/Gemfile.elasticsearch-7.x.lock b/gemfiles/Gemfile.elasticsearch-7.x.lock index d5d0ff0..d1e8e13 100644 --- a/gemfiles/Gemfile.elasticsearch-7.x.lock +++ b/gemfiles/Gemfile.elasticsearch-7.x.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/gemfiles/Gemfile.elasticsearch-8.x.lock b/gemfiles/Gemfile.elasticsearch-8.x.lock index 89da64b..3f53fb3 100644 --- a/gemfiles/Gemfile.elasticsearch-8.x.lock +++ b/gemfiles/Gemfile.elasticsearch-8.x.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/gemfiles/Gemfile.opensearch-1.x.lock b/gemfiles/Gemfile.opensearch-1.x.lock index 32fc0b5..8b5688a 100644 --- a/gemfiles/Gemfile.opensearch-1.x.lock +++ b/gemfiles/Gemfile.opensearch-1.x.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/gemfiles/Gemfile.opensearch-2.x.lock b/gemfiles/Gemfile.opensearch-2.x.lock index b9f67ed..8d0097d 100644 --- a/gemfiles/Gemfile.opensearch-2.x.lock +++ b/gemfiles/Gemfile.opensearch-2.x.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - esse (0.3.3) + esse (0.3.4) multi_json thor (>= 0.19) diff --git a/lib/esse/cli/extensions_loader.rb b/lib/esse/cli/extensions_loader.rb index 540722d..21fce9a 100644 --- a/lib/esse/cli/extensions_loader.rb +++ b/lib/esse/cli/extensions_loader.rb @@ -8,11 +8,16 @@ class ExtensionsLoader esse-active_record esse-sequel esse-kaminari + esse-pagy + esse-will_paginate + esse-jbuilder + esse-redis_storage + esse-async_indexing ].freeze def self.load! GEMS.each do |gem_name| - require gem_name + Kernel.require(gem_name) rescue LoadError # do nothing end diff --git a/lib/esse/version.rb b/lib/esse/version.rb index 3a57bc3..90e8e9a 100644 --- a/lib/esse/version.rb +++ b/lib/esse/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Esse - VERSION = '0.3.3' + VERSION = '0.3.4' end diff --git a/spec/esse/cli/extensions_loader.rb b/spec/esse/cli/extensions_loader.rb deleted file mode 100644 index ba3afe6..0000000 --- a/spec/esse/cli/extensions_loader.rb +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' -require 'esse/cli/extensions_loader' - -RSpec.describe Esse::CLI::ExtensionsLoader do - describe '.load!' do - subject { described_class.load! } - - it 'requires esse-rails' do - expect { subject }.to require_gem('esse-rails') - end - - it 'requires esse-active_record' do - expect { subject }.to require_gem('esse-active_record') - end - - it 'requires esse-sequel' do - expect { subject }.to require_gem('esse-sequel') - end - - it 'requires esse-kaminari' do - expect { subject }.to require_gem('esse-kaminari') - end - end - - def require_gem(gem_name) - raise_error(LoadError, /#{gem_name}/) - end -end diff --git a/spec/esse/cli/extensions_loader_spec.rb b/spec/esse/cli/extensions_loader_spec.rb new file mode 100644 index 0000000..525a2f6 --- /dev/null +++ b/spec/esse/cli/extensions_loader_spec.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +require 'spec_helper' +require 'esse/cli/extensions_loader' + +RSpec.describe Esse::CLI::ExtensionsLoader do + describe '.load!' do + subject(:load) { described_class.load! } + + before do + allow(Kernel).to receive(:require) + end + + it 'requires esse-rails' do + expect(Kernel).to receive(:require).with('esse-rails').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + + it 'requires esse-active_record' do + expect(Kernel).to receive(:require).with('esse-active_record').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + + it 'requires esse-sequel' do + expect(Kernel).to receive(:require).with('esse-sequel').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + + it 'requires esse-kaminari' do + expect(Kernel).to receive(:require).with('esse-kaminari').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + + it 'requires esse-pagy' do + expect(Kernel).to receive(:require).with('esse-pagy').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + + it 'requires esse-will_paginate' do + expect(Kernel).to receive(:require).with('esse-will_paginate').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + + it 'requires esse-jbuilder' do + expect(Kernel).to receive(:require).with('esse-jbuilder').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + + it 'requires esse-redis_storage' do + expect(Kernel).to receive(:require).with('esse-redis_storage').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + + it 'requires esse-async_indexing' do + expect(Kernel).to receive(:require).with('esse-async_indexing').and_raise(LoadError) # rubocop:disable RSpec/StubbedMock + expect { load }.not_to raise_error(LoadError) + end + end +end