From 5bece9165b62c4045f17f89936834bffe9b04259 Mon Sep 17 00:00:00 2001 From: Justas Palumickas Date: Mon, 13 Aug 2018 09:36:07 +0300 Subject: [PATCH] Add support for Pundit v2 (#104) * Allow to use Pundit v2 * Use Appraisal to test Pundit v2 * Add more Rails versions to test Pundit v2 --- .gitignore | 1 + .rubocop.yml | 1 + .travis.yml | 16 +++++----- Appraisals | 47 +++++++++++++++++++++++++++++ Gemfile | 20 ------------ gemfiles/rails_4_2_pundit_1.gemfile | 9 ++++++ gemfiles/rails_4_2_pundit_2.gemfile | 9 ++++++ gemfiles/rails_5_0_pundit_1.gemfile | 9 ++++++ gemfiles/rails_5_0_pundit_2.gemfile | 9 ++++++ gemfiles/rails_5_1_pundit_1.gemfile | 9 ++++++ gemfiles/rails_5_1_pundit_2.gemfile | 9 ++++++ gemfiles/rails_5_2_pundit_1.gemfile | 9 ++++++ gemfiles/rails_5_2_pundit_2.gemfile | 9 ++++++ jsonapi-authorization.gemspec | 7 +++-- 14 files changed, 134 insertions(+), 30 deletions(-) create mode 100644 Appraisals create mode 100644 gemfiles/rails_4_2_pundit_1.gemfile create mode 100644 gemfiles/rails_4_2_pundit_2.gemfile create mode 100644 gemfiles/rails_5_0_pundit_1.gemfile create mode 100644 gemfiles/rails_5_0_pundit_2.gemfile create mode 100644 gemfiles/rails_5_1_pundit_1.gemfile create mode 100644 gemfiles/rails_5_1_pundit_2.gemfile create mode 100644 gemfiles/rails_5_2_pundit_1.gemfile create mode 100644 gemfiles/rails_5_2_pundit_2.gemfile diff --git a/.gitignore b/.gitignore index b360308e..9c21fc0a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /spec/dummy/tmp/ *.orig .ruby-version +/gemfiles/*.gemfile.lock diff --git a/.rubocop.yml b/.rubocop.yml index 95a438c4..97539413 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -9,6 +9,7 @@ AllCops: Style/FileName: Exclude: - lib/jsonapi-authorization.rb + - Appraisals Metrics/LineLength: Enabled: true diff --git a/.travis.yml b/.travis.yml index eabfcaf0..a8d5ac23 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,15 @@ language: ruby -env: - - JSONAPI_RESOURCES_VERSION=0.9 RAILS_VERSION=4.2.0 - - JSONAPI_RESOURCES_VERSION=0.9 RAILS_VERSION=5.0.0 - - JSONAPI_RESOURCES_VERSION=0.9 RAILS_VERSION=5.1.0 - - JSONAPI_RESOURCES_VERSION=0.9 RAILS_VERSION=5.2.0 -install: - - bundle install rvm: - 2.3 +gemfile: + - gemfiles/rails_4_2_pundit_1.gemfile + - gemfiles/rails_5_0_pundit_1.gemfile + - gemfiles/rails_5_1_pundit_1.gemfile + - gemfiles/rails_5_2_pundit_1.gemfile + - gemfiles/rails_4_2_pundit_2.gemfile + - gemfiles/rails_5_0_pundit_2.gemfile + - gemfiles/rails_5_1_pundit_2.gemfile + - gemfiles/rails_5_2_pundit_2.gemfile before_install: gem install bundler -v 1.16.2 notifications: email: false diff --git a/Appraisals b/Appraisals new file mode 100644 index 00000000..4540dacc --- /dev/null +++ b/Appraisals @@ -0,0 +1,47 @@ +appraise 'rails-4-2 pundit-1' do + gem 'rails', '4.2.0' + gem 'jsonapi-resources', '0.9' + gem 'pundit', '~> 1.0' +end + +appraise 'rails-5-0 pundit-1' do + gem 'rails', '5.0.0' + gem 'jsonapi-resources', '0.9' + gem 'pundit', '~> 1.0' +end + +appraise 'rails-5-1 pundit-1' do + gem "rails", "5.1.0" + gem 'jsonapi-resources', '0.9' + gem 'pundit', '~> 1.0' +end + +appraise 'rails-5-2 pundit-1' do + gem 'rails', '5.2.0' + gem 'jsonapi-resources', '0.9' + gem 'pundit', '~> 1.0' +end + +appraise 'rails-4-2 pundit-2' do + gem 'rails', '4.2.0' + gem 'jsonapi-resources', '0.9' + gem 'pundit', '~> 2.0' +end + +appraise 'rails-5-0 pundit-2' do + gem 'rails', '5.0.0' + gem 'jsonapi-resources', '0.9' + gem 'pundit', '~> 2.0' +end + +appraise 'rails-5-1 pundit-2' do + gem 'rails', '5.1.0' + gem 'jsonapi-resources', '0.9' + gem 'pundit', '~> 2.0' +end + +appraise 'rails-5-2 pundit-2' do + gem 'rails', '5.2.0' + gem 'jsonapi-resources', '0.9' + gem 'pundit', '~> 2.0' +end diff --git a/Gemfile b/Gemfile index 8c677df9..fa75df15 100644 --- a/Gemfile +++ b/Gemfile @@ -1,23 +1,3 @@ source 'https://rubygems.org' gemspec - -rails_version = ENV['RAILS_VERSION'] || 'default' -jsonapi_resources_version = ENV['JSONAPI_RESOURCES_VERSION'] || 'default' - -case rails_version -when 'master' - gem 'rails', git: 'https://github.com/rails/rails.git' - gem 'arel', git: 'https://github.com/rails/arel.git' -when 'default' - gem 'rails', '>= 4.2' -else - gem 'rails', "~> #{rails_version}" -end - -case jsonapi_resources_version -when 'default' - gem 'jsonapi-resources', '0.9' -else - gem 'jsonapi-resources', jsonapi_resources_version -end diff --git a/gemfiles/rails_4_2_pundit_1.gemfile b/gemfiles/rails_4_2_pundit_1.gemfile new file mode 100644 index 00000000..af840fa0 --- /dev/null +++ b/gemfiles/rails_4_2_pundit_1.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "4.2.0" +gem "jsonapi-resources", "0.9" +gem "pundit", "~> 1.0" + +gemspec path: "../" diff --git a/gemfiles/rails_4_2_pundit_2.gemfile b/gemfiles/rails_4_2_pundit_2.gemfile new file mode 100644 index 00000000..db41cc08 --- /dev/null +++ b/gemfiles/rails_4_2_pundit_2.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "4.2.0" +gem "jsonapi-resources", "0.9" +gem "pundit", "~> 2.0" + +gemspec path: "../" diff --git a/gemfiles/rails_5_0_pundit_1.gemfile b/gemfiles/rails_5_0_pundit_1.gemfile new file mode 100644 index 00000000..d34f4270 --- /dev/null +++ b/gemfiles/rails_5_0_pundit_1.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "5.0.0" +gem "jsonapi-resources", "0.9" +gem "pundit", "~> 1.0" + +gemspec path: "../" diff --git a/gemfiles/rails_5_0_pundit_2.gemfile b/gemfiles/rails_5_0_pundit_2.gemfile new file mode 100644 index 00000000..cd4a2793 --- /dev/null +++ b/gemfiles/rails_5_0_pundit_2.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "5.0.0" +gem "jsonapi-resources", "0.9" +gem "pundit", "~> 2.0" + +gemspec path: "../" diff --git a/gemfiles/rails_5_1_pundit_1.gemfile b/gemfiles/rails_5_1_pundit_1.gemfile new file mode 100644 index 00000000..8138636b --- /dev/null +++ b/gemfiles/rails_5_1_pundit_1.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "5.1.0" +gem "jsonapi-resources", "0.9" +gem "pundit", "~> 1.0" + +gemspec path: "../" diff --git a/gemfiles/rails_5_1_pundit_2.gemfile b/gemfiles/rails_5_1_pundit_2.gemfile new file mode 100644 index 00000000..9ab66f8d --- /dev/null +++ b/gemfiles/rails_5_1_pundit_2.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "5.1.0" +gem "jsonapi-resources", "0.9" +gem "pundit", "~> 2.0" + +gemspec path: "../" diff --git a/gemfiles/rails_5_2_pundit_1.gemfile b/gemfiles/rails_5_2_pundit_1.gemfile new file mode 100644 index 00000000..d15b3104 --- /dev/null +++ b/gemfiles/rails_5_2_pundit_1.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "5.2.0" +gem "jsonapi-resources", "0.9" +gem "pundit", "~> 1.0" + +gemspec path: "../" diff --git a/gemfiles/rails_5_2_pundit_2.gemfile b/gemfiles/rails_5_2_pundit_2.gemfile new file mode 100644 index 00000000..458170fc --- /dev/null +++ b/gemfiles/rails_5_2_pundit_2.gemfile @@ -0,0 +1,9 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "5.2.0" +gem "jsonapi-resources", "0.9" +gem "pundit", "~> 2.0" + +gemspec path: "../" diff --git a/jsonapi-authorization.gemspec b/jsonapi-authorization.gemspec index e368f7a4..5d470381 100644 --- a/jsonapi-authorization.gemspec +++ b/jsonapi-authorization.gemspec @@ -18,12 +18,13 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.add_dependency "jsonapi-resources", "~> 0.9" - spec.add_dependency "pundit", "~> 1.0" + spec.add_dependency "pundit", ">= 1.0.0", "< 3.0.0" + spec.add_development_dependency "appraisal" spec.add_development_dependency "bundler", "~> 1.11" spec.add_development_dependency "rake", "~> 12.0" - spec.add_development_dependency "rspec", "~> 3.0" - spec.add_development_dependency "rspec-rails", "~> 3.7" + spec.add_development_dependency "rspec", "~> 3.8" + spec.add_development_dependency "rspec-rails", "~> 3.8" spec.add_development_dependency "pry" spec.add_development_dependency "pry-byebug" spec.add_development_dependency "pry-doc"