From e123fab2f4426e81f7339a973fbd0f2de47ee142 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 00:34:42 +0100 Subject: [PATCH 01/13] Remove ruby 2.5 support, it's EOL since over half a year --- .github/workflows/ci.yml | 1 - .rubocop.yml | 2 +- diaspora_federation-json_schema.gemspec | 2 +- diaspora_federation-rails.gemspec | 2 +- diaspora_federation-test.gemspec | 2 +- diaspora_federation.gemspec | 2 +- 6 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e661eae..2b5b754 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,6 @@ jobs: - 3.0 - 2.7 - 2.6 - - 2.5 gemfile: - Gemfile - test/gemfiles/no-rails.Gemfile diff --git a/.rubocop.yml b/.rubocop.yml index 2655b7b..f21b2e2 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,7 +1,7 @@ require: rubocop-rails AllCops: - TargetRubyVersion: 2.5 + TargetRubyVersion: 2.6 NewCops: enable Exclude: - "bin/**/*" diff --git a/diaspora_federation-json_schema.gemspec b/diaspora_federation-json_schema.gemspec index 4f782b8..f2842cf 100644 --- a/diaspora_federation-json_schema.gemspec +++ b/diaspora_federation-json_schema.gemspec @@ -19,5 +19,5 @@ Gem::Specification.new do |s| s.files = Dir["lib/diaspora_federation/schemas.rb", "lib/diaspora_federation/schemas/*.json"] - s.required_ruby_version = ">= 2.5" + s.required_ruby_version = ">= 2.6" end diff --git a/diaspora_federation-rails.gemspec b/diaspora_federation-rails.gemspec index 223b0e5..c22fa4d 100644 --- a/diaspora_federation-rails.gemspec +++ b/diaspora_federation-rails.gemspec @@ -19,7 +19,7 @@ Gem::Specification.new do |s| s.files = Dir["app/**/*", "config/routes.rb", "config/initializers/*", "lib/diaspora_federation/{engine,rails}.rb", "LICENSE", "README.md", "Changelog.md"] - s.required_ruby_version = ">= 2.5" + s.required_ruby_version = ">= 2.6" s.add_dependency "actionpack", ">= 5.2", "< 7" diff --git a/diaspora_federation-test.gemspec b/diaspora_federation-test.gemspec index de886bd..0dfda9b 100644 --- a/diaspora_federation-test.gemspec +++ b/diaspora_federation-test.gemspec @@ -19,7 +19,7 @@ Gem::Specification.new do |s| s.files = Dir["lib/diaspora_federation/test.rb", "lib/diaspora_federation/test/*"] - s.required_ruby_version = ">= 2.5" + s.required_ruby_version = ">= 2.6" s.add_dependency "diaspora_federation", DiasporaFederation::VERSION s.add_dependency "fabrication", "~> 2.16" diff --git a/diaspora_federation.gemspec b/diaspora_federation.gemspec index 8e8cc0d..c7ab2e9 100644 --- a/diaspora_federation.gemspec +++ b/diaspora_federation.gemspec @@ -24,7 +24,7 @@ Gem::Specification.new do |s| "lib/diaspora_federation/test/*", "lib/tasks/*.rake"] - s.required_ruby_version = ">= 2.5" + s.required_ruby_version = ">= 2.6" s.add_dependency "faraday", "~> 1.0" s.add_dependency "faraday_middleware", "~> 1.0" From 59807fd0b1e8b82ddc61aac33f0539fe991484a2 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 01:41:26 +0100 Subject: [PATCH 02/13] Enable MFA requirement on rubygems.org --- diaspora_federation-json_schema.gemspec | 5 ++++- diaspora_federation-rails.gemspec | 7 +++++-- diaspora_federation-test.gemspec | 5 ++++- diaspora_federation.gemspec | 13 ++++++++----- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/diaspora_federation-json_schema.gemspec b/diaspora_federation-json_schema.gemspec index f2842cf..679fd51 100644 --- a/diaspora_federation-json_schema.gemspec +++ b/diaspora_federation-json_schema.gemspec @@ -16,8 +16,11 @@ Gem::Specification.new do |s| s.description = "This gem provides JSON schemas (currently one schema) for "\ "validating JSON serialized federation objects." s.license = "AGPL-3.0" + s.metadata = { + "rubygems_mfa_required" => "true" + } - s.files = Dir["lib/diaspora_federation/schemas.rb", "lib/diaspora_federation/schemas/*.json"] + s.files = Dir["lib/diaspora_federation/schemas.rb", "lib/diaspora_federation/schemas/*.json"] s.required_ruby_version = ">= 2.6" end diff --git a/diaspora_federation-rails.gemspec b/diaspora_federation-rails.gemspec index c22fa4d..2bd46aa 100644 --- a/diaspora_federation-rails.gemspec +++ b/diaspora_federation-rails.gemspec @@ -15,9 +15,12 @@ Gem::Specification.new do |s| s.summary = "diaspora* federation rails engine" s.description = "A rails engine that adds the diaspora* federation protocol to a rails app" s.license = "AGPL-3.0" + s.metadata = { + "rubygems_mfa_required" => "true" + } - s.files = Dir["app/**/*", "config/routes.rb", "config/initializers/*", - "lib/diaspora_federation/{engine,rails}.rb", "LICENSE", "README.md", "Changelog.md"] + s.files = Dir["app/**/*", "config/routes.rb", "config/initializers/*", + "lib/diaspora_federation/{engine,rails}.rb", "LICENSE", "README.md", "Changelog.md"] s.required_ruby_version = ">= 2.6" diff --git a/diaspora_federation-test.gemspec b/diaspora_federation-test.gemspec index 0dfda9b..293b270 100644 --- a/diaspora_federation-test.gemspec +++ b/diaspora_federation-test.gemspec @@ -16,8 +16,11 @@ Gem::Specification.new do |s| s.description = "This gem provides some supplimentary code (factory definitions), that"\ "helps to build tests for users of the diaspora_federation gem." s.license = "AGPL-3.0" + s.metadata = { + "rubygems_mfa_required" => "true" + } - s.files = Dir["lib/diaspora_federation/test.rb", "lib/diaspora_federation/test/*"] + s.files = Dir["lib/diaspora_federation/test.rb", "lib/diaspora_federation/test/*"] s.required_ruby_version = ">= 2.6" diff --git a/diaspora_federation.gemspec b/diaspora_federation.gemspec index c7ab2e9..8316dc0 100644 --- a/diaspora_federation.gemspec +++ b/diaspora_federation.gemspec @@ -17,12 +17,15 @@ Gem::Specification.new do |s| "de-/encryption of Entities in the protocols used for communication " \ "among the various installations of Diaspora*" s.license = "AGPL-3.0" + s.metadata = { + "rubygems_mfa_required" => "true" + } - s.files = Dir["lib/**/*", "LICENSE", "README.md", "Changelog.md"] - - Dir["lib/diaspora_federation/{engine,rails,schemas,test}.rb", - "lib/diaspora_federation/schemas/*", - "lib/diaspora_federation/test/*", - "lib/tasks/*.rake"] + s.files = Dir["lib/**/*", "LICENSE", "README.md", "Changelog.md"] - + Dir["lib/diaspora_federation/{engine,rails,schemas,test}.rb", + "lib/diaspora_federation/schemas/*", + "lib/diaspora_federation/test/*", + "lib/tasks/*.rake"] s.required_ruby_version = ">= 2.6" From 09d604ad64e976075ae51c19f7c906e3daafe218 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 01:42:39 +0100 Subject: [PATCH 03/13] Bump bundler --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9bf0a2f..10a21c1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -255,4 +255,4 @@ DEPENDENCIES yard BUNDLED WITH - 2.2.21 + 2.2.32 From 18e47730719ecbe0eb0cf4974fa9bd7917802ef0 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 01:43:03 +0100 Subject: [PATCH 04/13] Bump rails --- Gemfile.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 10a21c1..fdb2bfd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -19,20 +19,20 @@ PATH GEM remote: https://rubygems.org/ specs: - actionpack (6.1.4) - actionview (= 6.1.4) - activesupport (= 6.1.4) + actionpack (6.1.4.1) + actionview (= 6.1.4.1) + activesupport (= 6.1.4.1) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actionview (6.1.4) - activesupport (= 6.1.4) + actionview (6.1.4.1) + activesupport (= 6.1.4.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activesupport (6.1.4) + activesupport (6.1.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -80,7 +80,7 @@ GEM httparty (0.18.1) mime-types (~> 3.0) multi_xml (>= 0.5.2) - i18n (1.8.10) + i18n (1.8.11) concurrent-ruby (~> 1.0) json-schema (2.8.1) addressable (>= 2.4) @@ -90,7 +90,7 @@ GEM listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.10.0) + loofah (2.12.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) macaddr (1.7.2) @@ -132,23 +132,23 @@ GEM byebug (~> 11.0) pry (~> 0.13.0) public_suffix (4.0.6) - racc (1.5.2) + racc (1.6.0) rack (2.2.3) rack-test (1.1.0) rack (>= 1.0, < 3) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) + rails-html-sanitizer (1.4.2) loofah (~> 2.3) - railties (6.1.4) - actionpack (= 6.1.4) - activesupport (= 6.1.4) + railties (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) method_source rake (>= 0.13) thor (~> 1.0) rainbow (3.0.0) - rake (13.0.3) + rake (13.0.6) rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) @@ -224,7 +224,7 @@ GEM crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) yard (0.9.26) - zeitwerk (2.4.2) + zeitwerk (2.5.1) PLATFORMS ruby From bcc4483bded662ada110dcbf9013ad3dcf3cb03e Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 01:43:23 +0100 Subject: [PATCH 05/13] Bump faraday --- Gemfile.lock | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index fdb2bfd..5ce8dbb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -54,20 +54,26 @@ GEM ethon (0.14.0) ffi (>= 1.15.0) fabrication (2.22.0) - faraday (1.4.3) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0.1) faraday-net_http (~> 1.0) faraday-net_http_persistent (~> 1.1) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) multipart-post (>= 1.2, < 3) ruby2_keywords (>= 0.0.4) faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) + faraday-httpclient (1.0.1) faraday-net_http (1.0.1) - faraday-net_http_persistent (1.1.0) - faraday_middleware (1.0.0) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday_middleware (1.2.0) faraday (~> 1.0) ffi (1.15.3) fuubar (2.5.1) @@ -194,7 +200,7 @@ GEM rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) ruby-progressbar (1.11.0) - ruby2_keywords (0.0.4) + ruby2_keywords (0.0.5) rugged (1.0.1) sawyer (0.8.2) addressable (>= 2.3.5) From 9b563a6360333638d7c0f887140f9867caae4d18 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 01:43:57 +0100 Subject: [PATCH 06/13] Bump rubocop also apply new rules --- .codeclimate.yml | 2 +- .rubocop.yml | 2 +- Gemfile | 4 +-- Gemfile.lock | 18 +++++------ lib/diaspora_federation/entities/relayable.rb | 6 ++-- lib/diaspora_federation/entity.rb | 2 +- spec/lib/diaspora_federation/entity_spec.rb | 2 +- .../optional_aware_validator_spec.rb | 2 +- .../validators/rules/birthday_spec.rb | 14 +++++--- .../validators/rules/boolean_spec.rb | 20 +++++++----- .../validators/rules/diaspora_id_list_spec.rb | 18 +++++++---- .../validators/rules/diaspora_id_spec.rb | 32 +++++++++++-------- .../validators/rules/guid_spec.rb | 22 +++++++------ .../validators/rules/not_nil_spec.rb | 24 ++++++++------ .../validators/rules/public_key_spec.rb | 16 ++++++---- .../validators/rules/tag_count_spec.rb | 14 +++++--- 16 files changed, 114 insertions(+), 84 deletions(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index 7bb62f4..ca5fbc0 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -2,7 +2,7 @@ engines: rubocop: enabled: true - channel: rubocop-1-10-0 + channel: rubocop-1-22-3 bundler-audit: enabled: true ratings: diff --git a/.rubocop.yml b/.rubocop.yml index f21b2e2..f844422 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -12,7 +12,7 @@ Rails: Enabled: true # Commonly used screens these days easily fit more than 80 characters. -Metrics/LineLength: +Layout/LineLength: Max: 120 # Too short methods lead to extraction of single-use methods, which can make diff --git a/Gemfile b/Gemfile index d5e1b80..433a1e4 100644 --- a/Gemfile +++ b/Gemfile @@ -21,8 +21,8 @@ group :development do # code style gem "pronto", "0.11.0", require: false gem "pronto-rubocop", "0.11.1", require: false - gem "rubocop", "1.18.0", require: false - gem "rubocop-rails", "2.11.1", require: false + gem "rubocop", "1.23.0", require: false + gem "rubocop-rails", "2.12.4", require: false # debugging gem "pry" diff --git a/Gemfile.lock b/Gemfile.lock index 5ce8dbb..e2855b5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -117,8 +117,8 @@ GEM octokit (4.21.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) - parallel (1.20.1) - parser (3.0.1.1) + parallel (1.21.0) + parser (3.0.3.0) ast (~> 2.4.1) pronto (0.11.0) gitlab (~> 4.4, >= 4.4.0) @@ -184,18 +184,18 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.10.2) - rubocop (1.18.0) + rubocop (1.23.0) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.7.0, < 2.0) + rubocop-ast (>= 1.12.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.7.0) + rubocop-ast (1.13.0) parser (>= 3.0.1.1) - rubocop-rails (2.11.1) + rubocop-rails (2.12.4) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -221,7 +221,7 @@ GEM ethon (>= 0.9.0) tzinfo (2.0.4) concurrent-ruby (~> 1.0) - unicode-display_width (1.7.0) + unicode-display_width (1.8.0) uuid (2.3.9) macaddr (~> 1.0) valid (1.2.0) @@ -253,8 +253,8 @@ DEPENDENCIES rspec-collection_matchers (~> 1.2.0) rspec-json_expectations (~> 2.1) rspec-rails (~> 5.0.1) - rubocop (= 1.18.0) - rubocop-rails (= 2.11.1) + rubocop (= 1.23.0) + rubocop-rails (= 2.12.4) simplecov (= 0.21.2) simplecov-rcov (= 0.2.3) webmock (~> 3.0) diff --git a/lib/diaspora_federation/entities/relayable.rb b/lib/diaspora_federation/entities/relayable.rb index 0a8be18..58a954f 100644 --- a/lib/diaspora_federation/entities/relayable.rb +++ b/lib/diaspora_federation/entities/relayable.rb @@ -95,9 +95,9 @@ module DiasporaFederation # The order for signing # @return [Array] def signature_order - @signature_order || self.class.class_props.keys.reject {|key| + @signature_order || (self.class.class_props.keys.reject {|key| self.class.optional_props.include?(key) && public_send(key).nil? - } - %i[author_signature parent] + } - %i[author_signature parent]) end private @@ -136,7 +136,7 @@ module DiasporaFederation def signature_order=(order) prop_names = self.class.class_props.keys.map(&:to_s) - @signature_order = order.reject {|name| name =~ /signature/ } + @signature_order = order.grep_v(/signature/) .map {|name| prop_names.include?(name) ? name.to_sym : name } end diff --git a/lib/diaspora_federation/entity.rb b/lib/diaspora_federation/entity.rb index 6990616..49d8b9b 100644 --- a/lib/diaspora_federation/entity.rb +++ b/lib/diaspora_federation/entity.rb @@ -215,7 +215,7 @@ module DiasporaFederation end def setable_property?(type, val) - setable_string?(type, val) || type == :timestamp && val.is_a?(Time) + setable_string?(type, val) || (type == :timestamp && val.is_a?(Time)) end def setable_string?(type, val) diff --git a/spec/lib/diaspora_federation/entity_spec.rb b/spec/lib/diaspora_federation/entity_spec.rb index a349cc9..bc905e0 100644 --- a/spec/lib/diaspora_federation/entity_spec.rb +++ b/spec/lib/diaspora_federation/entity_spec.rb @@ -61,7 +61,7 @@ module DiasporaFederation expect(entity.test1).to be_nil end - context "validation" do + context "when validating" do let(:invalid_data) { {test1: "as;df", test2: nil, test3: "no boolean"} } it "validates the entity and raise an error with failed properties if not valid" do diff --git a/spec/lib/diaspora_federation/validators/optional_aware_validator_spec.rb b/spec/lib/diaspora_federation/validators/optional_aware_validator_spec.rb index 047af2b..649cdbd 100644 --- a/spec/lib/diaspora_federation/validators/optional_aware_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/optional_aware_validator_spec.rb @@ -42,7 +42,7 @@ module DiasporaFederation end it "doesn't fail when the entity doesn't have optional props" do - entity = OpenStruct.new(test1: nil) + entity = Struct.new(:test1).new(nil) validator = Validators::TestUnknownEntityValidator.new(entity) expect(validator).not_to be_valid expect(validator.errors).to include(:test1) diff --git a/spec/lib/diaspora_federation/validators/rules/birthday_spec.rb b/spec/lib/diaspora_federation/validators/rules/birthday_spec.rb index cdee654..96603b2 100644 --- a/spec/lib/diaspora_federation/validators/rules/birthday_spec.rb +++ b/spec/lib/diaspora_federation/validators/rules/birthday_spec.rb @@ -12,9 +12,13 @@ describe Validation::Rule::Birthday do expect(described_class.new.error_key).to eq(:birthday) end - context "validation" do + context "when validating" do + before do + stub_const("BirthdayHolder", Struct.new(:birthday)) + end + it "validates a date object" do - validator = Validation::Validator.new(OpenStruct.new(birthday: Date.new)) + validator = Validation::Validator.new(BirthdayHolder.new(Date.new)) validator.rule(:birthday, :birthday) expect(validator).to be_valid @@ -22,7 +26,7 @@ describe Validation::Rule::Birthday do end it "validates a string" do - validator = Validation::Validator.new(OpenStruct.new(birthday: "2015-07-19")) + validator = Validation::Validator.new(BirthdayHolder.new("2015-07-19")) validator.rule(:birthday, :birthday) expect(validator).to be_valid @@ -31,7 +35,7 @@ describe Validation::Rule::Birthday do it "allows nil and empty" do [nil, ""].each do |val| - validator = Validation::Validator.new(OpenStruct.new(birthday: val)) + validator = Validation::Validator.new(BirthdayHolder.new(val)) validator.rule(:birthday, :birthday) expect(validator).to be_valid @@ -40,7 +44,7 @@ describe Validation::Rule::Birthday do end it "fails for invalid date string" do - validator = Validation::Validator.new(OpenStruct.new(birthday: "i'm no date")) + validator = Validation::Validator.new(BirthdayHolder.new("i'm no date")) validator.rule(:birthday, :birthday) expect(validator).not_to be_valid diff --git a/spec/lib/diaspora_federation/validators/rules/boolean_spec.rb b/spec/lib/diaspora_federation/validators/rules/boolean_spec.rb index 5151739..f2342d9 100644 --- a/spec/lib/diaspora_federation/validators/rules/boolean_spec.rb +++ b/spec/lib/diaspora_federation/validators/rules/boolean_spec.rb @@ -4,7 +4,7 @@ describe Validation::Rule::Boolean do it "will not accept parameters" do validator = Validation::Validator.new({}) expect { - validator.rule(:number, numeric: {param: true}) + validator.rule(:boolean, boolean: {param: true}) }.to raise_error ArgumentError end @@ -12,11 +12,15 @@ describe Validation::Rule::Boolean do expect(described_class.new.error_key).to eq(:boolean) end - context "validation" do + context "when validating" do + before do + stub_const("BooleanHolder", Struct.new(:boolean)) + end + context "strings" do it "validates boolean-esque strings" do %w[true false yes no t f y n 1 0].each do |str| - validator = Validation::Validator.new(OpenStruct.new(boolean: str)) + validator = Validation::Validator.new(BooleanHolder.new(str)) validator.rule(:boolean, :boolean) expect(validator).to be_valid @@ -25,7 +29,7 @@ describe Validation::Rule::Boolean do end it "fails for non-boolean-esque strings" do - validator = Validation::Validator.new(OpenStruct.new(boolean: "asdf")) + validator = Validation::Validator.new(BooleanHolder.new("asdf")) validator.rule(:boolean, :boolean) expect(validator).not_to be_valid @@ -36,7 +40,7 @@ describe Validation::Rule::Boolean do context "numbers" do it "validates 0 and 1 to boolean" do [0, 1].each do |num| - validator = Validation::Validator.new(OpenStruct.new(boolean: num)) + validator = Validation::Validator.new(BooleanHolder.new(num)) validator.rule(:boolean, :boolean) expect(validator).to be_valid @@ -45,7 +49,7 @@ describe Validation::Rule::Boolean do end it "fails for all other numbers" do - validator = Validation::Validator.new(OpenStruct.new(boolean: 1234)) + validator = Validation::Validator.new(BooleanHolder.new(1234)) validator.rule(:boolean, :boolean) expect(validator).not_to be_valid @@ -56,7 +60,7 @@ describe Validation::Rule::Boolean do context "boolean types" do it "validates true and false" do [true, false].each do |bln| - validator = Validation::Validator.new(OpenStruct.new(boolean: bln)) + validator = Validation::Validator.new(BooleanHolder.new(bln)) validator.rule(:boolean, :boolean) expect(validator).to be_valid @@ -67,7 +71,7 @@ describe Validation::Rule::Boolean do it "fails if nil or empty" do [nil, ""].each do |val| - validator = Validation::Validator.new(OpenStruct.new(boolean: val)) + validator = Validation::Validator.new(BooleanHolder.new(val)) validator.rule(:boolean, :boolean) expect(validator).not_to be_valid diff --git a/spec/lib/diaspora_federation/validators/rules/diaspora_id_list_spec.rb b/spec/lib/diaspora_federation/validators/rules/diaspora_id_list_spec.rb index 1030d37..cd26fc4 100644 --- a/spec/lib/diaspora_federation/validators/rules/diaspora_id_list_spec.rb +++ b/spec/lib/diaspora_federation/validators/rules/diaspora_id_list_spec.rb @@ -39,9 +39,13 @@ describe Validation::Rule::DiasporaIdList do expect(described_class.new(maximum: 5).error_key).to eq(:diaspora_id_list) end - context "validation" do + context "when validating" do + before do + stub_const("DiasporaIdsHolder", Struct.new(:ids)) + end + it "validates less ids" do - validator = Validation::Validator.new(OpenStruct.new(ids: id_str)) + validator = Validation::Validator.new(DiasporaIdsHolder.new(id_str)) validator.rule(:ids, diaspora_id_list: {maximum: 5}) expect(validator).to be_valid @@ -50,7 +54,7 @@ describe Validation::Rule::DiasporaIdList do it "fails for less but non ids" do bad_str = "user@example.com;i am a weird diaspora* ID @@@ ### 12345;shouldnt be reached by a rule" - validator = Validation::Validator.new(OpenStruct.new(ids: bad_str)) + validator = Validation::Validator.new(DiasporaIdsHolder.new(bad_str)) validator.rule(:ids, diaspora_id_list: {maximum: 5}) expect(validator).not_to be_valid @@ -58,7 +62,7 @@ describe Validation::Rule::DiasporaIdList do end it "validates exactly as many ids" do - validator = Validation::Validator.new(OpenStruct.new(ids: id_str)) + validator = Validation::Validator.new(DiasporaIdsHolder.new(id_str)) validator.rule(:ids, diaspora_id_list: {minimum: 3, maximum: 3}) expect(validator).to be_valid @@ -66,7 +70,7 @@ describe Validation::Rule::DiasporaIdList do end it "validates without params" do - validator = Validation::Validator.new(OpenStruct.new(ids: id_str)) + validator = Validation::Validator.new(DiasporaIdsHolder.new(id_str)) validator.rule(:ids, :diaspora_id_list) expect(validator).to be_valid @@ -74,7 +78,7 @@ describe Validation::Rule::DiasporaIdList do end it "fails for too many ids" do - validator = Validation::Validator.new(OpenStruct.new(ids: id_str)) + validator = Validation::Validator.new(DiasporaIdsHolder.new(id_str)) validator.rule(:ids, diaspora_id_list: {maximum: 2}) expect(validator).not_to be_valid @@ -82,7 +86,7 @@ describe Validation::Rule::DiasporaIdList do end it "fails for too less ids" do - validator = Validation::Validator.new(OpenStruct.new(ids: id_str)) + validator = Validation::Validator.new(DiasporaIdsHolder.new(id_str)) validator.rule(:ids, diaspora_id_list: {minimum: 4}) expect(validator).not_to be_valid diff --git a/spec/lib/diaspora_federation/validators/rules/diaspora_id_spec.rb b/spec/lib/diaspora_federation/validators/rules/diaspora_id_spec.rb index d824d9f..cd599e2 100644 --- a/spec/lib/diaspora_federation/validators/rules/diaspora_id_spec.rb +++ b/spec/lib/diaspora_federation/validators/rules/diaspora_id_spec.rb @@ -12,9 +12,13 @@ describe Validation::Rule::DiasporaId do expect(described_class.new.error_key).to eq(:diaspora_id) end - context "validation" do + context "when validating" do + before do + stub_const("DiasporaIdHolder", Struct.new(:diaspora_id)) + end + it "validates a normal diaspora* ID" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user@example.com")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user@example.com")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).to be_valid @@ -22,7 +26,7 @@ describe Validation::Rule::DiasporaId do end it "validates a diaspora* ID with localhost" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user@localhost")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user@localhost")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).to be_valid @@ -30,7 +34,7 @@ describe Validation::Rule::DiasporaId do end it "validates a diaspora* ID with port" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user@example.com:3000")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user@example.com:3000")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).to be_valid @@ -38,7 +42,7 @@ describe Validation::Rule::DiasporaId do end it "validates a diaspora* ID with IPv4 address" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user@123.45.67.89")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user@123.45.67.89")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).to be_valid @@ -46,7 +50,7 @@ describe Validation::Rule::DiasporaId do end it "validates a diaspora* ID with IPv6 address" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user@[2001:1234:5678:90ab:cdef::1]")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user@[2001:1234:5678:90ab:cdef::1]")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).to be_valid @@ -54,7 +58,7 @@ describe Validation::Rule::DiasporaId do end it "validates a diaspora* ID with . and -" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some-fancy.user@example.com")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some-fancy.user@example.com")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).to be_valid @@ -62,7 +66,7 @@ describe Validation::Rule::DiasporaId do end it "fails if the diaspora* ID contains a / in the domain-name" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user@example.com/friendica")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user@example.com/friendica")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).not_to be_valid @@ -70,7 +74,7 @@ describe Validation::Rule::DiasporaId do end it "fails if the diaspora* ID contains a _ in the domain-name" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user@invalid_domain.com")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user@invalid_domain.com")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).not_to be_valid @@ -78,7 +82,7 @@ describe Validation::Rule::DiasporaId do end it "fails if the diaspora* ID contains a special-chars in the username" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user$^%@example.com")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user$^%@example.com")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).not_to be_valid @@ -86,7 +90,7 @@ describe Validation::Rule::DiasporaId do end it "fails if the diaspora* ID contains uppercase characters in the username" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "SOME_USER@example.com")) + validator = Validation::Validator.new(DiasporaIdHolder.new("SOME_USER@example.com")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).not_to be_valid @@ -94,7 +98,7 @@ describe Validation::Rule::DiasporaId do end it "fails if the diaspora* ID contains uppercase characters in the domain-name" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "some_user@EXAMPLE.com")) + validator = Validation::Validator.new(DiasporaIdHolder.new("some_user@EXAMPLE.com")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).not_to be_valid @@ -102,7 +106,7 @@ describe Validation::Rule::DiasporaId do end it "fails if the diaspora* ID is longer than 255 characters" do - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: "#{'a' * 244}@example.com")) + validator = Validation::Validator.new(DiasporaIdHolder.new("#{'a' * 244}@example.com")) validator.rule(:diaspora_id, :diaspora_id) expect(validator).not_to be_valid @@ -111,7 +115,7 @@ describe Validation::Rule::DiasporaId do it "fails for nil and empty" do [nil, ""].each do |val| - validator = Validation::Validator.new(OpenStruct.new(diaspora_id: val)) + validator = Validation::Validator.new(DiasporaIdHolder.new(val)) validator.rule(:diaspora_id, :diaspora_id) expect(validator).not_to be_valid diff --git a/spec/lib/diaspora_federation/validators/rules/guid_spec.rb b/spec/lib/diaspora_federation/validators/rules/guid_spec.rb index 779bc1d..389c5a7 100644 --- a/spec/lib/diaspora_federation/validators/rules/guid_spec.rb +++ b/spec/lib/diaspora_federation/validators/rules/guid_spec.rb @@ -12,9 +12,13 @@ describe Validation::Rule::Guid do expect(described_class.new.error_key).to eq(:guid) end - context "validation" do + context "when validating" do + before do + stub_const("GuidHolder", Struct.new(:guid)) + end + it "validates a string at least 16 chars long, consisting of [0-9a-f] (diaspora)" do - validator = Validation::Validator.new(OpenStruct.new(guid: "abcdef0123456789")) + validator = Validation::Validator.new(GuidHolder.new("abcdef0123456789")) validator.rule(:guid, :guid) expect(validator).to be_valid @@ -22,9 +26,7 @@ describe Validation::Rule::Guid do end it "validates a long string with random characters and [-_@.:] (redmatrix)" do - validator = Validation::Validator.new( - OpenStruct.new(guid: "1234567890ABCDefgh_ijkl-mnopqrSTUVwxyz@example.com:3000") - ) + validator = Validation::Validator.new(GuidHolder.new("1234567890ABCDefgh_ijkl-mnopqrSTUVwxyz@example.com:3000")) validator.rule(:guid, :guid) expect(validator).to be_valid @@ -32,7 +34,7 @@ describe Validation::Rule::Guid do end it "fails if the string is too short" do - validator = Validation::Validator.new(OpenStruct.new(guid: "012345")) + validator = Validation::Validator.new(GuidHolder.new("012345")) validator.rule(:guid, :guid) expect(validator).not_to be_valid @@ -40,7 +42,7 @@ describe Validation::Rule::Guid do end it "fails if the string is too long" do - validator = Validation::Validator.new(OpenStruct.new(guid: "a" * 256)) + validator = Validation::Validator.new(GuidHolder.new("a" * 256)) validator.rule(:guid, :guid) expect(validator).not_to be_valid @@ -48,7 +50,7 @@ describe Validation::Rule::Guid do end it "fails if the string contains special chars at the end" do - validator = Validation::Validator.new(OpenStruct.new(guid: "abcdef0123456789.")) + validator = Validation::Validator.new(GuidHolder.new("abcdef0123456789.")) validator.rule(:guid, :guid) expect(validator).not_to be_valid @@ -56,7 +58,7 @@ describe Validation::Rule::Guid do end it "fails if the string contains invalid chars" do - validator = Validation::Validator.new(OpenStruct.new(guid: "ghijklmnopqrstuvwxyz++")) + validator = Validation::Validator.new(GuidHolder.new("ghijklmnopqrstuvwxyz++")) validator.rule(:guid, :guid) expect(validator).not_to be_valid @@ -65,7 +67,7 @@ describe Validation::Rule::Guid do it "fails if the string is empty" do [nil, ""].each do |val| - validator = Validation::Validator.new(OpenStruct.new(guid: val)) + validator = Validation::Validator.new(GuidHolder.new(val)) validator.rule(:guid, :guid) expect(validator).not_to be_valid diff --git a/spec/lib/diaspora_federation/validators/rules/not_nil_spec.rb b/spec/lib/diaspora_federation/validators/rules/not_nil_spec.rb index 7c10359..2836fe0 100644 --- a/spec/lib/diaspora_federation/validators/rules/not_nil_spec.rb +++ b/spec/lib/diaspora_federation/validators/rules/not_nil_spec.rb @@ -12,34 +12,38 @@ describe Validation::Rule::NotNil do expect(described_class.new.error_key).to eq(:not_nil) end - context "validation" do + context "when validating" do + before do + stub_const("ValueHolder", Struct.new(:value)) + end + it "validates a string" do - validator = Validation::Validator.new(OpenStruct.new(not_nil: "abcd")) - validator.rule(:not_nil, :not_nil) + validator = Validation::Validator.new(ValueHolder.new("abcd")) + validator.rule(:value, :not_nil) expect(validator).to be_valid expect(validator.errors).to be_empty end it "validates a object" do - validator = Validation::Validator.new(OpenStruct.new(not_nil: Object.new)) - validator.rule(:not_nil, :not_nil) + validator = Validation::Validator.new(ValueHolder.new(Object.new)) + validator.rule(:value, :not_nil) expect(validator).to be_valid expect(validator.errors).to be_empty end it "fails if it is nil" do - validator = Validation::Validator.new(OpenStruct.new(not_nil: nil)) - validator.rule(:not_nil, :not_nil) + validator = Validation::Validator.new(ValueHolder.new(nil)) + validator.rule(:value, :not_nil) expect(validator).not_to be_valid - expect(validator.errors).to include(:not_nil) + expect(validator.errors).to include(:value) end it "allows an empty string" do - validator = Validation::Validator.new(OpenStruct.new(not_nil: "")) - validator.rule(:not_nil, :not_nil) + validator = Validation::Validator.new(ValueHolder.new("")) + validator.rule(:value, :not_nil) expect(validator).to be_valid expect(validator.errors).to be_empty diff --git a/spec/lib/diaspora_federation/validators/rules/public_key_spec.rb b/spec/lib/diaspora_federation/validators/rules/public_key_spec.rb index 1691fe6..93f5e5b 100644 --- a/spec/lib/diaspora_federation/validators/rules/public_key_spec.rb +++ b/spec/lib/diaspora_federation/validators/rules/public_key_spec.rb @@ -12,7 +12,11 @@ describe Validation::Rule::PublicKey do expect(described_class.new.error_key).to eq(:public_key) end - context "validation" do + context "when validating" do + before do + stub_const("PublicKeyHolder", Struct.new(:key)) + end + ["PUBLIC KEY", "RSA PUBLIC KEY"].each do |key_type| context key_type do let(:prefix) { "-----BEGIN #{key_type}-----" } @@ -21,7 +25,7 @@ describe Validation::Rule::PublicKey do let(:key) { "#{prefix}\nAAAAAA==\n#{suffix}\n" } it "validates an exported RSA key" do - validator = Validation::Validator.new(OpenStruct.new(key: key)) + validator = Validation::Validator.new(PublicKeyHolder.new(key)) validator.rule(:key, :public_key) expect(validator).to be_valid @@ -29,7 +33,7 @@ describe Validation::Rule::PublicKey do end it "strips whitespace" do - validator = Validation::Validator.new(OpenStruct.new(key: " \n #{key}\n \n ")) + validator = Validation::Validator.new(PublicKeyHolder.new(" \n #{key}\n \n ")) validator.rule(:key, :public_key) expect(validator).to be_valid @@ -37,7 +41,7 @@ describe Validation::Rule::PublicKey do end it "fails if the prefix is missing" do - validator = Validation::Validator.new(OpenStruct.new(key: "\nAAAAAA==\n#{suffix}\n")) + validator = Validation::Validator.new(PublicKeyHolder.new("\nAAAAAA==\n#{suffix}\n")) validator.rule(:key, :public_key) expect(validator).not_to be_valid @@ -45,7 +49,7 @@ describe Validation::Rule::PublicKey do end it "fails if the suffix is missing" do - validator = Validation::Validator.new(OpenStruct.new(key: "#{prefix}\nAAAAAA==\n\n")) + validator = Validation::Validator.new(PublicKeyHolder.new("#{prefix}\nAAAAAA==\n\n")) validator.rule(:key, :public_key) expect(validator).not_to be_valid @@ -54,7 +58,7 @@ describe Validation::Rule::PublicKey do it "fails if the key is nil or empty" do [nil, ""].each do |val| - validator = Validation::Validator.new(OpenStruct.new(key: val)) + validator = Validation::Validator.new(PublicKeyHolder.new(val)) validator.rule(:key, :public_key) expect(validator).not_to be_valid diff --git a/spec/lib/diaspora_federation/validators/rules/tag_count_spec.rb b/spec/lib/diaspora_federation/validators/rules/tag_count_spec.rb index b7fb86a..612c0b3 100644 --- a/spec/lib/diaspora_federation/validators/rules/tag_count_spec.rb +++ b/spec/lib/diaspora_federation/validators/rules/tag_count_spec.rb @@ -21,11 +21,15 @@ describe Validation::Rule::TagCount do expect(described_class.new(maximum: 5).error_key).to eq(:tag_count) end - context "validation" do + context "when validating" do let(:tag_str) { "#i #love #tags" } + before do + stub_const("TagsHolder", Struct.new(:tags)) + end + it "validates less tags" do - validator = Validation::Validator.new(OpenStruct.new(tags: tag_str)) + validator = Validation::Validator.new(TagsHolder.new(tag_str)) validator.rule(:tags, tag_count: {maximum: 5}) expect(validator).to be_valid @@ -33,7 +37,7 @@ describe Validation::Rule::TagCount do end it "validates exactly as many tags" do - validator = Validation::Validator.new(OpenStruct.new(tags: tag_str)) + validator = Validation::Validator.new(TagsHolder.new(tag_str)) validator.rule(:tags, tag_count: {maximum: 3}) expect(validator).to be_valid @@ -41,7 +45,7 @@ describe Validation::Rule::TagCount do end it "fails for too many tags" do - validator = Validation::Validator.new(OpenStruct.new(tags: tag_str)) + validator = Validation::Validator.new(TagsHolder.new(tag_str)) validator.rule(:tags, tag_count: {maximum: 1}) expect(validator).not_to be_valid @@ -50,7 +54,7 @@ describe Validation::Rule::TagCount do it "allows nil and empty" do [nil, ""].each do |val| - validator = Validation::Validator.new(OpenStruct.new(tags: val)) + validator = Validation::Validator.new(TagsHolder.new(val)) validator.rule(:tags, tag_count: {maximum: 5}) expect(validator).to be_valid From e8817d30820f6bbb146478da5ab9ffe5a4f6f0c3 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 01:58:57 +0100 Subject: [PATCH 07/13] Bump nokogiri --- Gemfile.lock | 6 +++--- .../discovery/h_card_spec.rb | 19 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e2855b5..c991999 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -105,12 +105,12 @@ GEM mime-types (3.3.1) mime-types-data (~> 3.2015) mime-types-data (3.2021.0225) - mini_portile2 (2.5.3) + mini_portile2 (2.6.1) minitest (5.14.4) multi_xml (0.6.0) multipart-post (2.1.1) - nokogiri (1.11.7) - mini_portile2 (~> 2.5.0) + nokogiri (1.12.5) + mini_portile2 (~> 2.6.1) racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) diff --git a/spec/lib/diaspora_federation/discovery/h_card_spec.rb b/spec/lib/diaspora_federation/discovery/h_card_spec.rb index 3c548c3..b9ea364 100644 --- a/spec/lib/diaspora_federation/discovery/h_card_spec.rb +++ b/spec/lib/diaspora_federation/discovery/h_card_spec.rb @@ -27,7 +27,7 @@ module DiasporaFederation - + #{person.full_name} @@ -86,19 +86,19 @@ module DiasporaFederation
Photo
- +
Photo_medium
- +
Photo_small
- +
@@ -137,10 +137,9 @@ module DiasporaFederation it "reads minimal hCard" do minimal_html = <<~HTML - + - - + #{person.full_name} @@ -187,19 +186,19 @@ module DiasporaFederation
Photo
- +
Photo_medium
- +
Photo_small
- +
From fad3ae1b335cd58905a128db8b87129046290a0b Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 02:03:59 +0100 Subject: [PATCH 08/13] Bump dependency gems and update gemfiles --- Gemfile.lock | 33 ++++++++++++++-------------- test/gemfiles/no-rails.Gemfile.lock | 34 +++++++++++++++++------------ 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c991999..1fa9653 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -38,7 +38,7 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) ast (2.4.2) builder (3.2.4) @@ -51,7 +51,7 @@ GEM diff-lcs (1.4.4) docile (1.4.0) erubi (1.10.0) - ethon (0.14.0) + ethon (0.15.0) ffi (>= 1.15.0) fabrication (2.22.0) faraday (1.8.0) @@ -75,7 +75,7 @@ GEM faraday-rack (1.0.0) faraday_middleware (1.2.0) faraday (~> 1.0) - ffi (1.15.3) + ffi (1.15.4) fuubar (2.5.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) @@ -83,7 +83,7 @@ GEM httparty (~> 0.18) terminal-table (~> 1.5, >= 1.5.1) hashdiff (1.0.1) - httparty (0.18.1) + httparty (0.20.0) mime-types (~> 3.0) multi_xml (>= 0.5.2) i18n (1.8.11) @@ -93,7 +93,7 @@ GEM json-schema-rspec (0.0.4) json-schema (~> 2.5) rspec - listen (3.5.1) + listen (3.7.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) loofah (2.12.0) @@ -102,9 +102,9 @@ GEM macaddr (1.7.2) systemu (~> 2.6.5) method_source (1.0.0) - mime-types (3.3.1) + mime-types (3.4.1) mime-types-data (~> 3.2015) - mime-types-data (3.2021.0225) + mime-types-data (3.2021.1115) mini_portile2 (2.6.1) minitest (5.14.4) multi_xml (0.6.0) @@ -131,12 +131,12 @@ GEM pronto-rubocop (0.11.1) pronto (~> 0.11.0) rubocop (>= 0.63.1, < 2.0) - pry (0.13.1) + pry (0.14.1) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.9.0) + pry-byebug (3.8.0) byebug (~> 11.0) - pry (~> 0.13.0) + pry (~> 0.10) public_suffix (4.0.6) racc (1.6.0) rack (2.2.3) @@ -175,7 +175,7 @@ GEM rspec-mocks (3.10.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.10.0) - rspec-rails (5.0.1) + rspec-rails (5.0.2) actionpack (>= 5.2) activesupport (>= 5.2) railties (>= 5.2) @@ -183,7 +183,7 @@ GEM rspec-expectations (~> 3.10) rspec-mocks (~> 3.10) rspec-support (~> 3.10) - rspec-support (3.10.2) + rspec-support (3.10.3) rubocop (1.23.0) parallel (~> 1.10) parser (>= 3.0.0.0) @@ -214,19 +214,18 @@ GEM simplecov (>= 0.4.1) simplecov_json_formatter (0.1.3) systemu (2.6.5) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (1.6.0) thor (1.1.0) typhoeus (1.4.0) ethon (>= 0.9.0) tzinfo (2.0.4) concurrent-ruby (~> 1.0) - unicode-display_width (1.8.0) + unicode-display_width (2.1.0) uuid (2.3.9) macaddr (~> 1.0) valid (1.2.0) - webmock (3.13.0) - addressable (>= 2.3.6) + webmock (3.14.0) + addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) yard (0.9.26) diff --git a/test/gemfiles/no-rails.Gemfile.lock b/test/gemfiles/no-rails.Gemfile.lock index 62d63cc..0a5aea6 100644 --- a/test/gemfiles/no-rails.Gemfile.lock +++ b/test/gemfiles/no-rails.Gemfile.lock @@ -16,31 +16,37 @@ PATH GEM remote: https://rubygems.org/ specs: - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) crack (0.4.5) rexml diff-lcs (1.4.4) docile (1.4.0) - ethon (0.14.0) + ethon (0.15.0) ffi (>= 1.15.0) fabrication (2.22.0) - faraday (1.4.3) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0.1) faraday-net_http (~> 1.0) faraday-net_http_persistent (~> 1.1) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) multipart-post (>= 1.2, < 3) ruby2_keywords (>= 0.0.4) faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) + faraday-httpclient (1.0.1) faraday-net_http (1.0.1) - faraday-net_http_persistent (1.1.0) - faraday_middleware (1.0.0) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday_middleware (1.2.0) faraday (~> 1.0) - ffi (1.15.3) + ffi (1.15.4) fuubar (2.5.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) @@ -53,13 +59,13 @@ GEM macaddr (1.7.2) systemu (~> 2.6.5) multipart-post (2.1.1) - nokogiri (1.11.7-x86_64-linux) + nokogiri (1.12.5-x86_64-linux) racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) public_suffix (4.0.6) - racc (1.5.2) - rake (13.0.3) + racc (1.6.0) + rake (13.0.6) rexml (3.2.5) rspec (3.10.0) rspec-core (~> 3.10.0) @@ -76,9 +82,9 @@ GEM rspec-mocks (3.10.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.10.0) - rspec-support (3.10.2) + rspec-support (3.10.3) ruby-progressbar (1.11.0) - ruby2_keywords (0.0.4) + ruby2_keywords (0.0.5) simplecov (0.21.2) docile (~> 1.1) simplecov-html (~> 0.11) @@ -93,8 +99,8 @@ GEM uuid (2.3.9) macaddr (~> 1.0) valid (1.2.0) - webmock (3.13.0) - addressable (>= 2.3.6) + webmock (3.14.0) + addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -117,4 +123,4 @@ DEPENDENCIES webmock (~> 3.0) BUNDLED WITH - 2.2.21 + 2.2.32 From 93ab5f5ee754f99310aa079b324fbb2059fee671 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 26 Nov 2021 04:50:28 +0100 Subject: [PATCH 09/13] Add rubocop-rake --- .rubocop.yml | 4 +++- Gemfile | 1 + Gemfile.lock | 3 +++ Rakefile | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.rubocop.yml b/.rubocop.yml index f844422..fa2b7cb 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,6 @@ -require: rubocop-rails +require: + - rubocop-rails + - rubocop-rake AllCops: TargetRubyVersion: 2.6 diff --git a/Gemfile b/Gemfile index 433a1e4..c7373a0 100644 --- a/Gemfile +++ b/Gemfile @@ -23,6 +23,7 @@ group :development do gem "pronto-rubocop", "0.11.1", require: false gem "rubocop", "1.23.0", require: false gem "rubocop-rails", "2.12.4", require: false + gem "rubocop-rake", "0.6.0", require: false # debugging gem "pry" diff --git a/Gemfile.lock b/Gemfile.lock index 1fa9653..191f2d7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -199,6 +199,8 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) + rubocop-rake (0.6.0) + rubocop (~> 1.0) ruby-progressbar (1.11.0) ruby2_keywords (0.0.5) rugged (1.0.1) @@ -254,6 +256,7 @@ DEPENDENCIES rspec-rails (~> 5.0.1) rubocop (= 1.23.0) rubocop-rails (= 2.12.4) + rubocop-rake (= 0.6.0) simplecov (= 0.21.2) simplecov-rcov (= 0.2.3) webmock (~> 3.0) diff --git a/Rakefile b/Rakefile index a3a1bb9..882b89f 100644 --- a/Rakefile +++ b/Rakefile @@ -29,5 +29,6 @@ end Bundler::GemHelper.install_tasks name: "diaspora_federation" +desc "Run all tests" task test: :spec task default: :test From fc6001d2ee3a616ae1344811154a2f2dc3ed1a03 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Tue, 8 Mar 2022 00:28:38 +0100 Subject: [PATCH 10/13] Drop ruby 2.6 support, will be EOL end of month --- .github/workflows/ci.yml | 1 - .rubocop.yml | 2 +- diaspora_federation-json_schema.gemspec | 2 +- diaspora_federation-rails.gemspec | 2 +- diaspora_federation-test.gemspec | 2 +- diaspora_federation.gemspec | 2 +- 6 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b5b754..99ee78d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,6 @@ jobs: ruby: - 3.0 - 2.7 - - 2.6 gemfile: - Gemfile - test/gemfiles/no-rails.Gemfile diff --git a/.rubocop.yml b/.rubocop.yml index fa2b7cb..3440ccd 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -3,7 +3,7 @@ require: - rubocop-rake AllCops: - TargetRubyVersion: 2.6 + TargetRubyVersion: 2.7 NewCops: enable Exclude: - "bin/**/*" diff --git a/diaspora_federation-json_schema.gemspec b/diaspora_federation-json_schema.gemspec index 679fd51..0bbf5c6 100644 --- a/diaspora_federation-json_schema.gemspec +++ b/diaspora_federation-json_schema.gemspec @@ -22,5 +22,5 @@ Gem::Specification.new do |s| s.files = Dir["lib/diaspora_federation/schemas.rb", "lib/diaspora_federation/schemas/*.json"] - s.required_ruby_version = ">= 2.6" + s.required_ruby_version = ">= 2.7" end diff --git a/diaspora_federation-rails.gemspec b/diaspora_federation-rails.gemspec index 2bd46aa..5908d29 100644 --- a/diaspora_federation-rails.gemspec +++ b/diaspora_federation-rails.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |s| s.files = Dir["app/**/*", "config/routes.rb", "config/initializers/*", "lib/diaspora_federation/{engine,rails}.rb", "LICENSE", "README.md", "Changelog.md"] - s.required_ruby_version = ">= 2.6" + s.required_ruby_version = ">= 2.7" s.add_dependency "actionpack", ">= 5.2", "< 7" diff --git a/diaspora_federation-test.gemspec b/diaspora_federation-test.gemspec index 293b270..b64cb19 100644 --- a/diaspora_federation-test.gemspec +++ b/diaspora_federation-test.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |s| s.files = Dir["lib/diaspora_federation/test.rb", "lib/diaspora_federation/test/*"] - s.required_ruby_version = ">= 2.6" + s.required_ruby_version = ">= 2.7" s.add_dependency "diaspora_federation", DiasporaFederation::VERSION s.add_dependency "fabrication", "~> 2.16" diff --git a/diaspora_federation.gemspec b/diaspora_federation.gemspec index 8316dc0..241c7f1 100644 --- a/diaspora_federation.gemspec +++ b/diaspora_federation.gemspec @@ -27,7 +27,7 @@ Gem::Specification.new do |s| "lib/diaspora_federation/test/*", "lib/tasks/*.rake"] - s.required_ruby_version = ">= 2.6" + s.required_ruby_version = ">= 2.7" s.add_dependency "faraday", "~> 1.0" s.add_dependency "faraday_middleware", "~> 1.0" From 1424f7b0ff768d6e70f9ebfa08f76f354c2f5849 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Tue, 8 Mar 2022 00:35:39 +0100 Subject: [PATCH 11/13] Add ruby 3.1 to CI --- .github/workflows/ci.yml | 1 + .ruby-version | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 99ee78d..99687e0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,7 @@ jobs: fail-fast: false matrix: ruby: + - 3.1 - 3.0 - 2.7 gemfile: diff --git a/.ruby-version b/.ruby-version index 9f55b2c..8c50098 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0 +3.1 From 7b8faa5abe7ec368a4075e5c0af716930f92cc42 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Tue, 8 Mar 2022 00:39:21 +0100 Subject: [PATCH 12/13] Bump nokogiri and fix no-rails.Gemfile.lock --- Gemfile.lock | 8 ++++---- test/gemfiles/no-rails.Gemfile.lock | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 191f2d7..c77dc7c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -105,12 +105,12 @@ GEM mime-types (3.4.1) mime-types-data (~> 3.2015) mime-types-data (3.2021.1115) - mini_portile2 (2.6.1) + mini_portile2 (2.8.0) minitest (5.14.4) multi_xml (0.6.0) multipart-post (2.1.1) - nokogiri (1.12.5) - mini_portile2 (~> 2.6.1) + nokogiri (1.13.3) + mini_portile2 (~> 2.8.0) racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) @@ -263,4 +263,4 @@ DEPENDENCIES yard BUNDLED WITH - 2.2.32 + 2.3.7 diff --git a/test/gemfiles/no-rails.Gemfile.lock b/test/gemfiles/no-rails.Gemfile.lock index 0a5aea6..f5b13c6 100644 --- a/test/gemfiles/no-rails.Gemfile.lock +++ b/test/gemfiles/no-rails.Gemfile.lock @@ -59,7 +59,7 @@ GEM macaddr (1.7.2) systemu (~> 2.6.5) multipart-post (2.1.1) - nokogiri (1.12.5-x86_64-linux) + nokogiri (1.13.3) racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) @@ -123,4 +123,4 @@ DEPENDENCIES webmock (~> 3.0) BUNDLED WITH - 2.2.32 + 2.3.7 From 17d1f61fa8b3e464de5790ee12a5f1cc95d7e00e Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Tue, 8 Mar 2022 00:44:11 +0100 Subject: [PATCH 13/13] Use strings for ruby versions, so 3.0 stays 3.0 --- .github/workflows/ci.yml | 6 +++--- test/gemfiles/no-rails.Gemfile.lock | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 99687e0..58349cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,9 +14,9 @@ jobs: fail-fast: false matrix: ruby: - - 3.1 - - 3.0 - - 2.7 + - "3.1" + - "3.0" + - "2.7" gemfile: - Gemfile - test/gemfiles/no-rails.Gemfile diff --git a/test/gemfiles/no-rails.Gemfile.lock b/test/gemfiles/no-rails.Gemfile.lock index f5b13c6..69b4bb8 100644 --- a/test/gemfiles/no-rails.Gemfile.lock +++ b/test/gemfiles/no-rails.Gemfile.lock @@ -58,8 +58,10 @@ GEM rspec macaddr (1.7.2) systemu (~> 2.6.5) + mini_portile2 (2.8.0) multipart-post (2.1.1) nokogiri (1.13.3) + mini_portile2 (~> 2.8.0) racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4)