diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..846eab1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,24 @@ +name: CI +on: + pull_request: + branches: + - '**' + push: + branches: + - master +jobs: + build: + name: Ruby ${{ matrix.version }} + runs-on: ubuntu-latest + strategy: + matrix: + version: [ '2.7', '3.0', '3.1', '3.2', '3.3' ] + steps: + - uses: actions/checkout@v4 + - name: Set up Ruby ${{ matrix.version }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.version }} + bundler-cache: true + - name: Test + run: bundle exec rake test diff --git a/.gitignore b/.gitignore index 2ac8271..247384c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ pkg/* *.gem .bundle .DS_Store -Gemfile.lock diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..a603bb5 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.7.5 diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..af108c7 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,49 @@ +PATH + remote: . + specs: + active_utils (3.4.1) + activesupport (>= 4.2) + i18n + +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.1.3.2) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + base64 (0.2.0) + bigdecimal (3.1.7) + concurrent-ruby (1.2.3) + connection_pool (2.4.1) + drb (2.2.1) + i18n (1.14.4) + concurrent-ruby (~> 1.0) + minitest (5.22.3) + mocha (2.1.0) + ruby2_keywords (>= 0.0.5) + mutex_m (0.2.0) + rake (13.2.0) + ruby2_keywords (0.0.5) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + +PLATFORMS + arm64-darwin-21 + arm64-darwin-23 + x86_64-linux + +DEPENDENCIES + active_utils! + minitest + mocha + rake + +BUNDLED WITH + 2.4.18 diff --git a/Rakefile b/Rakefile index 970da8e..93c066c 100644 --- a/Rakefile +++ b/Rakefile @@ -5,7 +5,6 @@ require 'rake/testtask' Rake::TestTask.new(:test) do |t| t.pattern = 'test/unit/**/*_test.rb' - t.ruby_opts << '-rubygems' t.libs << 'test' t.verbose = true end diff --git a/active_utils.gemspec b/active_utils.gemspec index 185d0c0..e3b59c0 100644 --- a/active_utils.gemspec +++ b/active_utils.gemspec @@ -12,6 +12,8 @@ Gem::Specification.new do |s| s.summary = %q{Common utils used by active_merchant, active_fulfillment, and active_shipping} s.license = 'MIT' + s.required_ruby_version = ">= 2.7" + s.rubyforge_project = "active_utils" s.add_dependency('activesupport', '>= 4.2') diff --git a/lib/active_utils/country.rb b/lib/active_utils/country.rb index c905f13..a36b04e 100644 --- a/lib/active_utils/country.rb +++ b/lib/active_utils/country.rb @@ -66,7 +66,6 @@ def to_s { :alpha2 => 'AF', :name => 'Afghanistan', :alpha3 => 'AFG', :numeric => '004' }, { :alpha2 => 'AX', :name => 'Aland Islands', :alpha3 => 'ALA', :numeric => '248' }, { :alpha2 => 'AL', :name => 'Albania', :alpha3 => 'ALB', :numeric => '008' }, - { :alpha2 => 'AC', :name => 'Ascension Island', :alpha3 => 'ASC' }, { :alpha2 => 'DZ', :name => 'Algeria', :alpha3 => 'DZA', :numeric => '012' }, { :alpha2 => 'AS', :name => 'American Samoa', :alpha3 => 'ASM', :numeric => '016' }, { :alpha2 => 'AD', :name => 'Andorra', :alpha3 => 'AND', :numeric => '020' }, @@ -77,6 +76,7 @@ def to_s { :alpha2 => 'AR', :name => 'Argentina', :alpha3 => 'ARG', :numeric => '032' }, { :alpha2 => 'AM', :name => 'Armenia', :alpha3 => 'ARM', :numeric => '051' }, { :alpha2 => 'AW', :name => 'Aruba', :alpha3 => 'ABW', :numeric => '533' }, + { :alpha2 => 'AC', :name => 'Ascension Island', :alpha3 => 'ASC' }, { :alpha2 => 'AU', :name => 'Australia', :alpha3 => 'AUS', :numeric => '036' }, { :alpha2 => 'AT', :name => 'Austria', :alpha3 => 'AUT', :numeric => '040' }, { :alpha2 => 'AZ', :name => 'Azerbaijan', :alpha3 => 'AZE', :numeric => '031' }, diff --git a/test/unit/connection_test.rb b/test/unit/connection_test.rb index 655497b..6b971d3 100644 --- a/test/unit/connection_test.rb +++ b/test/unit/connection_test.rb @@ -11,7 +11,7 @@ def setup end def test_path_to_cert_is_correct - assert File.exists?(ActiveUtils::Connection::CA_FILE) + assert File.file?(ActiveUtils::Connection::CA_FILE) end def test_connection_endpoint_parses_string_to_uri @@ -130,8 +130,8 @@ def test_override_ca_path assert_equal "/bogus", @connection.send(:http).ca_path end - def test_default_proxy_address_is_nil - assert_equal nil, @connection.proxy_address + def test_default_proxy_address_is_env + assert_equal :ENV, @connection.proxy_address end def test_default_proxy_port_is_nil diff --git a/test/unit/posts_data_test.rb b/test/unit/posts_data_test.rb index 4cade9a..ca19d64 100644 --- a/test/unit/posts_data_test.rb +++ b/test/unit/posts_data_test.rb @@ -2,7 +2,6 @@ require 'active_support/core_ext/class' class PostsDataTest < Minitest::Test - class SSLPoster include PostsData @@ -44,6 +43,8 @@ def test_logger_warns_if_ssl_strict_disabled SSLPoster.ssl_strict = false @poster.raw_ssl_request(:post, "https://shopify.com", "", {}) + ensure + SSLPoster.ssl_strict = true end def test_logger_warns_can_handle_non_string_endpoints @@ -65,10 +66,15 @@ def test_logger_no_warning_if_ssl_strict_enabled end def test_set_proxy_address_and_port + original_proxy_address = SSLPoster.proxy_address + original_proxy_port = SSLPoster.proxy_port SSLPoster.proxy_address = 'http://proxy.example.com' SSLPoster.proxy_port = '8888' assert_equal @poster.proxy_address, 'http://proxy.example.com' assert_equal @poster.proxy_port, '8888' + ensure + SSLPoster.proxy_address = original_proxy_address + SSLPoster.proxy_port = original_proxy_port end class HttpConnectionAbort < StandardError; end