diff --git a/.rubocop.yml b/.rubocop.yml index 909d0f3..c75c9ca 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,8 +1,11 @@ AllCops: NewCops: disable SuggestExtensions: false + Exclude: + - bin/* plugins: + - rubocop-performance - rubocop-rspec - rubocop-rake @@ -65,4 +68,4 @@ RSpec/SpecFilePathFormat: RSpec/ContextWording: Enabled: false RSpec/OverwritingSetup: - Enabled: false \ No newline at end of file + Enabled: false diff --git a/Gemfile b/Gemfile index 33b0fb1..42764f4 100644 --- a/Gemfile +++ b/Gemfile @@ -7,3 +7,15 @@ gemspec gem 'json', '~> 2.1' gem 'mini_mime' +gem 'pry', '~> 0.16.0' +gem 'rails' +gem 'rake', '~> 13.3.1' +gem 'rspec', '~> 3.13.0' +gem 'rspec-its', '~> 2.0.0' +gem 'rubocop' +gem 'rubocop-performance' +gem 'rubocop-rake' +gem 'rubocop-rspec' +gem 'simplecov' +gem 'vcr', '~> 6.4.0' +gem 'webmock', '~> 3.7' diff --git a/Rakefile b/Rakefile index 64831bc..be9a038 100644 --- a/Rakefile +++ b/Rakefile @@ -29,4 +29,4 @@ RSpec::Core::RakeTask.new('spec:all') do |t| t.pattern = 'spec/**/*_spec.rb' end -task default: 'spec:unit' +task default: 'spec:all' diff --git a/bin/rake b/bin/rake new file mode 100755 index 0000000..9efbee9 --- /dev/null +++ b/bin/rake @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'rake' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("rake", "rake") diff --git a/bin/rspec b/bin/rspec new file mode 100755 index 0000000..93e191c --- /dev/null +++ b/bin/rspec @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'rspec' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("rspec-core", "rspec") diff --git a/bin/rubocop b/bin/rubocop new file mode 100755 index 0000000..d73598d --- /dev/null +++ b/bin/rubocop @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'rubocop' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("rubocop", "rubocop") diff --git a/lib/mailgun/client.rb b/lib/mailgun/client.rb index 0e84e78..5ff36f7 100644 --- a/lib/mailgun/client.rb +++ b/lib/mailgun/client.rb @@ -27,7 +27,7 @@ def initialize(api_key = Mailgun.api_key, 'Accept' => '*/*' } } - request_options.merge!(request: { timeout: timeout }) if timeout + request_options[:request] = { timeout: timeout } if timeout @http_client = build_http_client(api_key, request_options) diff --git a/lib/mailgun/helpers/api_version_checker.rb b/lib/mailgun/helpers/api_version_checker.rb index 463bf3d..daf454a 100644 --- a/lib/mailgun/helpers/api_version_checker.rb +++ b/lib/mailgun/helpers/api_version_checker.rb @@ -13,7 +13,7 @@ def requires_api_version(version, *method_names) define_method(method_name) do |*args, **kwargs, &block| warn_unless_api_version(version) - original_method.bind(self).call(*args, **kwargs, &block) + original_method.bind_call(self, *args, **kwargs, &block) end end end @@ -24,7 +24,7 @@ def enforces_api_version(version, *method_names) define_method(method_name) do |*args, **kwargs, &block| require_api_version(version) - original_method.bind(self).call(*args, **kwargs, &block) + original_method.bind_call(self, *args, **kwargs, &block) end end end diff --git a/lib/mailgun/response.rb b/lib/mailgun/response.rb index bc0d2fd..646f299 100644 --- a/lib/mailgun/response.rb +++ b/lib/mailgun/response.rb @@ -65,7 +65,7 @@ def to_yaml! # # @return [Boolean] A boolean that binarizes the response status result. def success? - (200..299).include?(status) + (200..299).cover?(status) end end end diff --git a/mailgun.gemspec b/mailgun.gemspec index 5fbd3ee..c6b08b4 100644 --- a/mailgun.gemspec +++ b/mailgun.gemspec @@ -1,8 +1,6 @@ # frozen_string_literal: true -lib = File.expand_path('lib', __dir__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require 'mailgun/version' +require_relative 'lib/mailgun/version' Gem::Specification.new do |spec| spec.name = 'mailgun-ruby' @@ -20,26 +18,10 @@ Gem::Specification.new do |spec| spec.metadata['documentation_uri'] = 'https://documentation.mailgun.com/' spec.metadata['source_code_uri'] = 'https://github.com/mailgun/mailgun-ruby' - spec.files = `git ls-files -z`.split("\x0") - spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } - spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) - spec.require_paths = ['lib'] + spec.files = Dir['README.md', 'LICENSE', 'CHANGELOG.md', 'lib/**/*.rb'] spec.required_ruby_version = '>= 3.0.0' - spec.add_development_dependency 'bundler', '>= 1.16.2' - spec.add_development_dependency 'pry', '~> 0.16.0' - spec.add_development_dependency 'rails' - spec.add_development_dependency 'rake', '~> 13.3.1' - spec.add_development_dependency 'rspec', '~> 3.13.0' - spec.add_development_dependency 'rspec-its', '~> 2.0.0' - spec.add_development_dependency 'rubocop' - spec.add_development_dependency 'rubocop-rake' - spec.add_development_dependency 'rubocop-rspec' - spec.add_development_dependency 'simplecov' - spec.add_development_dependency 'simplecov-json' - spec.add_development_dependency 'vcr', '~> 6.4.0' - spec.add_development_dependency 'webmock', '~> 3.7' spec.add_dependency 'faraday', '~> 2.1' spec.add_dependency 'faraday-multipart', '< 2' spec.add_dependency 'mini_mime' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 16dd7ef..fdd97a1 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,7 +1,8 @@ # frozen_string_literal: true require 'simplecov' -require 'simplecov-json' +require 'simplecov_json_formatter' + SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new( [ SimpleCov::Formatter::HTMLFormatter,