diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e67a4b1..2d214c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,8 @@ name: ci pull_request: branches: - main + schedule: + - cron: "30 4 * * *" create: jobs: @@ -22,10 +24,16 @@ jobs: fail-fast: false matrix: ruby: + - "3.1" - "3.0" - - "2.7" - - "2.6" steps: + - uses: ravsamhq/notify-slack-action@v1 + if: always() + with: + status: ${{ job.status }} + notify_when: "failure" + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} - uses: actions/checkout@v1 - name: Install package dependencies run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS" diff --git a/README.md b/README.md index d63a063..799c990 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Mail for Ruby applications. ## Rubies -__Hanami::Mailer__ supports Ruby (MRI) 2.6+ +__Hanami::Mailer__ supports Ruby (MRI) 3.0+ ## Installation diff --git a/hanami-mailer.gemspec b/hanami-mailer.gemspec index 7776d9d..31acd8a 100644 --- a/hanami-mailer.gemspec +++ b/hanami-mailer.gemspec @@ -19,14 +19,20 @@ Gem::Specification.new do |spec| spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - spec.required_ruby_version = ">= 2.6.0" + spec.metadata["rubygems_mfa_required"] = "true" + spec.required_ruby_version = ">= 3.0" spec.add_dependency "hanami-utils", "~> 2.0.alpha" spec.add_dependency "tilt", "~> 2.0", ">= 2.0.1" - spec.add_dependency "mail", "~> 2.6" + spec.add_dependency "mail", "~> 2.7" + + # FIXME: remove when https://github.com/mikel/mail/pull/1439 gets merged AND a new version of `mail` gets released + spec.add_dependency "net-smtp", "~> 0.3" + spec.add_dependency "net-pop", "~> 0.1" + spec.add_dependency "net-imap", "~> 0.2" spec.add_development_dependency "bundler", ">= 1.6", "< 3" - spec.add_development_dependency "rake", "~> 13" - spec.add_development_dependency "rspec", "~> 3.7" - spec.add_development_dependency "rubocop", "0.91" + spec.add_development_dependency "rake", "~> 13" + spec.add_development_dependency "rspec", "~> 3.9" + spec.add_development_dependency "rubocop", "~> 1.0" end diff --git a/spec/integration/hanami/mailer/delivery_spec.rb b/spec/integration/hanami/mailer/delivery_spec.rb index 51c37cd..b22ffbd 100644 --- a/spec/integration/hanami/mailer/delivery_spec.rb +++ b/spec/integration/hanami/mailer/delivery_spec.rb @@ -70,8 +70,8 @@ RSpec.describe Hanami::Mailer do count.times do |i| threads << Thread.new do - user = OpenStruct.new(name: "Luca #{i}", email: "luca-#{i}@domain.test") - event = OpenStruct.new(id: i, title: "Event ##{i}") + user = double(name: "Luca #{i}", email: "luca-#{i}@domain.test") + event = double(id: i, title: "Event ##{i}") mails[i] = subject.deliver(user: user, event: event) end diff --git a/spec/unit/hanami/mailer_spec.rb b/spec/unit/hanami/mailer_spec.rb index 2c7a70a..3ec1c84 100644 --- a/spec/unit/hanami/mailer_spec.rb +++ b/spec/unit/hanami/mailer_spec.rb @@ -110,8 +110,8 @@ RSpec.describe Hanami::Mailer do context "locals" do let(:mailer) { EventMailer.new(configuration: configuration) } - let(:user) { OpenStruct.new(name: "Luca", email: "luca@domain.test") } - let(:event) { OpenStruct.new(id: 23, title: "Event #23") } + let(:user) { double(name: "Luca", email: "luca@domain.test") } + let(:event) { double(id: 23, title: "Event #23") } it "uses locals during the delivery process" do mail = mailer.deliver(user: user, event: event)