From 2fa825bce91cfd00159b324e9fcc6393af9dc879 Mon Sep 17 00:00:00 2001 From: Matheus Richard Date: Sat, 2 Sep 2023 16:21:39 -0300 Subject: [PATCH] Drop support for ruby < 3.0 --- .github/workflows/tests-and-linter.yml | 2 +- .ruby-version | 2 +- .tool-versions | 1 + Gemfile.lock | 137 +++++++++++++++---------- README.md | 3 +- ez_attributes.gemspec | 2 +- 6 files changed, 87 insertions(+), 60 deletions(-) create mode 100644 .tool-versions diff --git a/.github/workflows/tests-and-linter.yml b/.github/workflows/tests-and-linter.yml index 7e0b25f..65fc692 100644 --- a/.github/workflows/tests-and-linter.yml +++ b/.github/workflows/tests-and-linter.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby: [2.5, 2.6, 2.7, '3.0'] + ruby: [3.0, 3.1, 3.2] steps: - uses: actions/checkout@v2 diff --git a/.ruby-version b/.ruby-version index ecd7ee5..818bd47 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.5.8 +3.0.6 diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..d6608a7 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +ruby 3.0.6 diff --git a/Gemfile.lock b/Gemfile.lock index ed5da52..6904b55 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,78 +7,105 @@ GEM remote: https://rubygems.org/ specs: ast (2.4.2) - backport (1.1.2) - benchmark (0.1.0) - diff-lcs (1.4.4) - docile (1.3.2) + backport (1.2.0) + base64 (0.1.1) + benchmark (0.2.1) + diff-lcs (1.5.0) + docile (1.4.0) e2mmap (0.1.0) - jaro_winkler (1.5.4) - maruku (0.7.3) - mini_portile2 (2.4.0) - nokogiri (1.10.10) - mini_portile2 (~> 2.4.0) - parallel (1.21.0) - parser (2.7.2.0) + jaro_winkler (1.5.6) + json (2.6.3) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + language_server-protocol (3.17.0.3) + lint_roller (1.1.0) + mini_portile2 (2.8.4) + nokogiri (1.15.4) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + parallel (1.23.0) + parser (3.2.2.3) ast (~> 2.4.1) - rainbow (3.0.0) - rake (13.0.1) - regexp_parser (2.1.1) - reverse_markdown (2.0.0) + racc + racc (1.7.1) + rainbow (3.1.1) + rake (13.0.6) + rbs (2.8.4) + regexp_parser (2.8.1) + reverse_markdown (2.1.1) nokogiri - rexml (3.2.5) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.0) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.0) + rexml (3.2.6) + rspec (3.12.0) + rspec-core (~> 3.12.0) + rspec-expectations (~> 3.12.0) + rspec-mocks (~> 3.12.0) + rspec-core (3.12.2) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.3) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-mocks (3.10.0) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.6) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-support (3.10.0) - rubocop (0.92.0) + rspec-support (~> 3.12.0) + rspec-support (3.12.1) + rubocop (1.56.2) + base64 (~> 0.1.1) + json (~> 2.3) + language_server-protocol (>= 3.17.0) parallel (~> 1.10) - parser (>= 2.7.1.5) + parser (>= 3.2.2.3) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.7) - rexml - rubocop-ast (>= 0.5.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.1, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (1.4.1) - parser (>= 2.7.1.5) - rubocop-performance (1.8.1) - rubocop (>= 0.87.0) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.29.0) + parser (>= 3.2.1.0) + rubocop-performance (1.19.0) + rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - ruby-progressbar (1.11.0) - simplecov (0.19.1) + ruby-progressbar (1.13.0) + simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) - solargraph (0.39.17) - backport (~> 1.1) + simplecov_json_formatter (0.1.4) + solargraph (0.49.0) + backport (~> 1.2) benchmark - bundler (>= 1.17.2) + bundler (~> 2.0) + diff-lcs (~> 1.4) e2mmap jaro_winkler (~> 1.5) - maruku (~> 0.7, >= 0.7.3) - nokogiri (~> 1.9, >= 1.9.1) - parser (~> 2.3) - reverse_markdown (>= 1.0.5, < 3) - rubocop (~> 0.52) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.1) + parser (~> 3.0) + rbs (~> 2.0) + reverse_markdown (~> 2.0) + rubocop (~> 1.38) thor (~> 1.0) tilt (~> 2.0) yard (~> 0.9, >= 0.9.24) - standard (0.7) - rubocop (= 0.92) - rubocop-performance (= 1.8.1) - thor (1.0.1) - tilt (2.0.10) - unicode-display_width (1.8.0) - yard (0.9.25) + standard (1.31.0) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.0) + rubocop (~> 1.56.0) + standard-custom (~> 1.0.0) + standard-performance (~> 1.2) + standard-custom (1.0.2) + lint_roller (~> 1.0) + rubocop (~> 1.50) + standard-performance (1.2.0) + lint_roller (~> 1.1) + rubocop-performance (~> 1.19.0) + thor (1.2.2) + tilt (2.2.0) + unicode-display_width (2.4.2) + yard (0.9.34) PLATFORMS ruby @@ -93,4 +120,4 @@ DEPENDENCIES yard BUNDLED WITH - 2.2.29 + 2.3.9 diff --git a/README.md b/README.md index a9e8530..eaf38db 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Then, add the required and optional fields class User extend EzAttributes - # Here name and age are required, and email has a default value, so it is optional. + # Here, `name` and `age` are required, and `email` has a default value, so it is optional. attributes :name, :age, email: 'guest@user.com' end @@ -74,7 +74,6 @@ u = User.new(name: 'Matz', age: 22) u.name # NoMethodError (undefined method `name' for #) - ``` ## Development diff --git a/ez_attributes.gemspec b/ez_attributes.gemspec index 567abb0..1e29a66 100644 --- a/ez_attributes.gemspec +++ b/ez_attributes.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |spec| spec.description = "Easily define initializers with keyword args. It supports required and optional args." spec.homepage = "https://github.com/MatheusRich/ez_attributes.git" spec.license = "MIT" - spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0") + spec.required_ruby_version = Gem::Requirement.new(">= 3.0.0") spec.metadata["homepage_uri"] = spec.homepage spec.metadata["source_code_uri"] = spec.homepage