grape-jwt-authentication 2.0.4 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c126007f446b7d7f10daf0885215c0b16178dbd1d69e25ab5fe9018543837bf1
4
- data.tar.gz: 573da54a3db4806eae9a269ad473e2471ee121684b4bf1508aa384b251d0ee18
3
+ metadata.gz: b1a5a4a360cafde26473338f304b9ec569beb1c8ea0467e735ce08e489c33a86
4
+ data.tar.gz: 6a19583fd428e220057b9fcf761ca839a51d1c5bf46d7fcdb639679ed84fb3fc
5
5
  SHA512:
6
- metadata.gz: 12f8f4ae5c3fb57ab2a9bd6eddeb24386912cd072373ed6da7ebbc314e08ecc52ba14ac264abacee4db926ad875747baaab583b66c3e2da26a1188707f724776
7
- data.tar.gz: b20247d73f3d57ec3bddc780fe5a41dd77eca18011df859df6028bc1afb737053ef8d8f9d419a5e672ed0f908361488e6884e4cf3b8ae26e31d332f4e45e019c
6
+ metadata.gz: 3ff00b93b0bb0ce09c1d85bd17dcf4aa3c71549ea12a1c77e0d1f99e90d219137d0a8727675e5969fdba3812d3a4439c4ec7d0d24e796b264d137e073fa7cb62
7
+ data.tar.gz: f53b951cad8dc76b7838f70a60bd31838c2ab79101210fdb82d41de1f707559ad9b642656f4d54f8f8912673afe5a486ac1f7f73ac756cdb03c058ba1bb0f7b2
@@ -9,16 +9,17 @@ concurrency:
9
9
  jobs:
10
10
  docs:
11
11
  name: Build gem documentation
12
- runs-on: ubuntu-20.04
12
+ runs-on: ubuntu-22.04
13
13
  timeout-minutes: 5
14
14
  steps:
15
- - uses: actions/checkout@v2
15
+ - uses: actions/checkout@v3
16
16
 
17
17
  - name: Install the correct Ruby version
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
20
20
  ruby-version: 2.5
21
21
  bundler-cache: true
22
+ rubygems: '3.3.26'
22
23
 
23
24
  - name: Prepare the virtual environment
24
25
  uses: hausgold/actions/ci@master
@@ -0,0 +1,47 @@
1
+ name: Release
2
+ run-name: Release ${{ github.event.inputs.VERSION }}
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ inputs:
7
+ VERSION:
8
+ description: The new version to release. (eg. `1.0.0`) Check the
9
+ changelog for the latest version.
10
+
11
+ concurrency:
12
+ group: '${{ github.event.inputs.VERSION }}'
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ docs:
17
+ name: Release the gem
18
+ runs-on: ubuntu-22.04
19
+ timeout-minutes: 5
20
+ steps:
21
+ - uses: actions/checkout@v3
22
+
23
+ - name: Install Ruby 2.5
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: 2.5
27
+ bundler-cache: true
28
+ rubygems: '3.3.26'
29
+
30
+ - name: Prepare the virtual environment
31
+ uses: hausgold/actions/ci@master
32
+ with:
33
+ clone_token: '${{ secrets.CLONE_TOKEN }}'
34
+ settings: '${{ github.repository }}'
35
+ target: ci/gem-test
36
+
37
+ - name: Switch to SSH remotes for the Git repository
38
+ run: git-ssh-remotes
39
+
40
+ - name: Enforce version '${{ github.event.inputs.VERSION }}'
41
+ run: set-gem-version '${{ github.event.inputs.VERSION }}'
42
+
43
+ - name: Prepare the Git release commit
44
+ run: git-release-commit '${{ github.event.inputs.VERSION }}'
45
+
46
+ - name: Push the release Git commit/tag and package to the registry
47
+ run: make release
@@ -12,21 +12,25 @@ concurrency:
12
12
 
13
13
  jobs:
14
14
  test:
15
- name: 'Test the gem (Ruby ${{ matrix.ruby }})'
16
- runs-on: ubuntu-20.04
15
+ name: 'Test the gem (Ruby ${{ matrix.ruby }}, Rails ${{ matrix.rails }})'
16
+ runs-on: ubuntu-22.04
17
17
  timeout-minutes: 5
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- ruby: [2.4, 2.5, 2.6]
21
+ ruby: ['2.5', '2.7']
22
+ rails: ['5.2']
23
+ env:
24
+ BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
22
25
  steps:
23
- - uses: actions/checkout@v2
26
+ - uses: actions/checkout@v3
24
27
 
25
28
  - name: Install the correct Ruby version
26
29
  uses: ruby/setup-ruby@v1
27
30
  with:
28
31
  ruby-version: ${{ matrix.ruby }}
29
32
  bundler-cache: true
33
+ rubygems: '3.3.26'
30
34
 
31
35
  - name: Prepare the virtual environment
32
36
  uses: hausgold/actions/ci@master
@@ -43,7 +47,7 @@ jobs:
43
47
 
44
48
  trigger-docs:
45
49
  name: Trigger the documentation upload
46
- runs-on: ubuntu-20.04
50
+ runs-on: ubuntu-22.04
47
51
  timeout-minutes: 2
48
52
  needs: test
49
53
  if: github.ref == 'refs/heads/master'
data/.rspec CHANGED
@@ -1,3 +1,3 @@
1
+ --backtrace
2
+ --force-color
1
3
  --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop.yml CHANGED
@@ -1,14 +1,19 @@
1
- require: rubocop-rspec
1
+ require:
2
+ - rubocop-rspec
3
+ - rubocop-rails
2
4
 
3
5
  Rails:
4
6
  Enabled: true
5
7
 
6
- Documentation:
8
+ Style/Documentation:
7
9
  Enabled: true
8
10
 
9
11
  AllCops:
12
+ NewCops: enable
13
+ SuggestExtensions: false
10
14
  DisplayCopNames: true
11
15
  TargetRubyVersion: 2.5
16
+ TargetRailsVersion: 5.2
12
17
  Exclude:
13
18
  - bin/**/*
14
19
  - vendor/**/*
@@ -23,6 +28,14 @@ Metrics/BlockLength:
23
28
  - '**/*.rake'
24
29
  - doc/**/*.rb
25
30
 
31
+ # MFA is not yet enabled for our gems yet.
32
+ Gemspec/RequireMFA:
33
+ Enabled: false
34
+
35
+ # We stay with the original Ruby Style Guide recommendation.
36
+ Layout/LineLength:
37
+ Max: 80
38
+
26
39
  # Document all the things.
27
40
  Style/DocumentationMethod:
28
41
  Enabled: true
@@ -51,3 +64,7 @@ RSpec/FilePath:
51
64
  # Because we just implemented the ActiveRecord API.
52
65
  Rails/SkipsModelValidations:
53
66
  Enabled: false
67
+
68
+ # We highly depend on memoized helpers across the specs.
69
+ RSpec/MultipleMemoizedHelpers:
70
+ Enabled: false
data/.simplecov CHANGED
@@ -1,3 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'simplecov-html'
4
+ require 'simplecov_json_formatter'
5
+
6
+ SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(
7
+ [
8
+ SimpleCov::Formatter::HTMLFormatter,
9
+ SimpleCov::Formatter::JSONFormatter
10
+ ]
11
+ )
12
+
1
13
  SimpleCov.start 'test_frameworks' do
2
14
  add_filter '/vendor/bundle/'
3
15
  end
data/Appraisals ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise 'rails-5.2' do
4
+ gem 'activejob', '~> 5.2.0'
5
+ gem 'activerecord', '~> 5.2.0'
6
+ gem 'activesupport', '~> 5.2.0'
7
+ end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ### next
2
+
3
+ * TODO: Replace this bullet point with an actual description of a change.
4
+
5
+ ### 2.2.0
6
+
7
+ * Added support for Gem release automation
8
+
9
+ ### 2.1.0
10
+
11
+ * Bundler >= 2.3 is from now on required as minimal version (#9)
12
+ * Dropped support for Ruby < 2.5 (#9)
13
+ * Dropped support for Rails < 5.2 (#9)
14
+ * Updated all development/runtime gems to their latest
15
+ Ruby 2.5 compatible version (#9)
16
+
1
17
  ### 2.0.4
2
18
 
3
19
  * Migrated to Github Actions
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at development@hausgold.de. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Dockerfile CHANGED
@@ -2,7 +2,7 @@ FROM hausgold/ruby:2.5
2
2
  MAINTAINER Hermann Mayer <hermann.mayer@hausgold.de>
3
3
 
4
4
  # Update system gem
5
- RUN gem update --system
5
+ RUN gem update --system '3.3.26'
6
6
 
7
7
  # Install system packages and the latest bundler
8
8
  RUN apt-get update -yqqq && \
@@ -11,8 +11,7 @@ RUN apt-get update -yqqq && \
11
11
  ca-certificates \
12
12
  bash-completion inotify-tools && \
13
13
  echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && /usr/sbin/locale-gen && \
14
- gem install bundler -v '~> 2.0' --no-document --no-prerelease && \
15
- gem install bundler -v '~> 1.0' --no-document --no-prerelease
14
+ gem install bundler -v '~> 2.3.0' --no-document --no-prerelease
16
15
 
17
16
  # Add new web user
18
17
  RUN mkdir /app && \
data/Envfile CHANGED
@@ -1,6 +1,3 @@
1
1
  LANG=en_US.UTF-8
2
2
  LANGUAGE=en_US.UTF-8
3
3
  LC_ALL=en_US.UTF-8
4
-
5
- # Just fix this, so Appraisals with Rails 4 are working fine
6
- BUNDLER_VERSION=1.17.3
data/Guardfile ADDED
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ # A sample Guardfile
4
+ # More info at https://github.com/guard/guard#readme
5
+
6
+ ## Uncomment and set this to only include directories you want to watch
7
+ (directories %w[lib spec]).select do |d|
8
+ if Dir.exist?(d)
9
+ d
10
+ else
11
+ UI.warning("Directory #{d} does not exist")
12
+ end
13
+ end
14
+
15
+ ## Note: if you are using the `directories` clause above and you are not
16
+ ## watching the project directory ('.'), then you will want to move
17
+ ## the Guardfile to a watched dir and symlink it back, e.g.
18
+ #
19
+ # $ mkdir config
20
+ # $ mv Guardfile config/
21
+ # $ ln -s config/Guardfile .
22
+ #
23
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
24
+
25
+ # NOTE: The cmd option is now required due to the increasing number of ways
26
+ # rspec may be run, below are examples of the most common uses.
27
+ # * bundler: 'bundle exec rspec'
28
+ # * bundler binstubs: 'bin/rspec'
29
+ # * spring: 'bin/rspec' (This will use spring if running and you have
30
+ # installed the spring binstubs per the docs)
31
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
32
+ # * 'just' rspec: 'rspec'
33
+
34
+ guard :rspec, cmd: 'bundle exec rspec' do
35
+ watch('spec/spec_helper.rb') { 'spec' }
36
+ watch(%r{^lib/grape/jwt/authentication.rb}) { 'spec' }
37
+ watch(%r{^spec/.+_spec\.rb$})
38
+ watch(%r{^lib/grape/jwt/authentication/([^\\]+)\.rb$}) do |m|
39
+ "spec/grape/jwt/authentication/#{m[1]}_spec.rb"
40
+ end
41
+ watch(%r{^lib/grape/jwt/authentication/([^\\]+)/(.*)\.rb$}) do |m|
42
+ "spec/grape/jwt/authentication/#{m[1]}/#{m[2]}_spec.rb"
43
+ end
44
+ end
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2017 HAUSGOLD | talocasa GmbH
3
+ Copyright (c) 2023 HAUSGOLD | talocasa GmbH
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/Makefile CHANGED
@@ -9,6 +9,7 @@ SHELL := bash
9
9
  # Environment switches
10
10
  MAKE_ENV ?= docker
11
11
  COMPOSE_RUN_SHELL_FLAGS ?= --rm
12
+ BASH_RUN_SHELL_FLAGS ?=
12
13
 
13
14
  # Directories
14
15
  VENDOR_DIR ?= vendor/bundle
@@ -25,9 +26,12 @@ RM ?= rm
25
26
  XARGS ?= xargs
26
27
 
27
28
  # Container binaries
29
+ APPRAISAL ?= appraisal
28
30
  BUNDLE ?= bundle
29
31
  GEM ?= gem
32
+ GUARD ?= guard
30
33
  RAKE ?= rake
34
+ RSPEC ?= rspec
31
35
  RUBOCOP ?= rubocop
32
36
  YARD ?= yard
33
37
 
@@ -38,7 +42,8 @@ define run-shell
38
42
  $(COMPOSE) run $(COMPOSE_RUN_SHELL_FLAGS) \
39
43
  -e LANG=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 \
40
44
  -e HOME=/home/web -e BUNDLE_APP_CONFIG=/app/.bundle \
41
- -u `$(ID) -u` test bash -c 'sleep 0.1; echo; $(1)'
45
+ -u `$(ID) -u` test \
46
+ bash $(BASH_RUN_SHELL_FLAGS) -c 'sleep 0.1; echo; $(1)'
42
47
  endef
43
48
  else ifeq ($(MAKE_ENV),baremetal)
44
49
  define run-shell
@@ -55,6 +60,7 @@ all:
55
60
  #
56
61
  # test Run the whole test suite
57
62
  # test-style Test the code styles
63
+ # watch Watch for code changes and rerun the test suite
58
64
  #
59
65
  # docs Generate the Ruby documentation of the library
60
66
  # stats Print the code statistics (library and test suite)
@@ -64,12 +70,24 @@ all:
64
70
  # shell Run an interactive shell on the container
65
71
  # shell-irb Run an interactive IRB shell on the container
66
72
 
73
+ .interactive:
74
+ @$(eval BASH_RUN_SHELL_FLAGS = --login)
75
+
67
76
  install:
68
77
  # Install the dependencies
69
78
  @$(MKDIR) -p $(VENDOR_DIR)
70
79
  @$(call run-shell,$(BUNDLE) check || $(BUNDLE) install --path $(VENDOR_DIR))
71
- @$(call run-shell,GEM_HOME=vendor/bundle/ruby/$${RUBY_MAJOR}.0 \
72
- $(GEM) install bundler -v "~> 1.0")
80
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) install)
81
+
82
+ update:
83
+ # Install the dependencies
84
+ @$(MKDIR) -p $(VENDOR_DIR)
85
+ @$(call run-shell,$(BUNDLE) update)
86
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) update)
87
+
88
+ watch: install .interactive
89
+ # Watch for code changes and rerun the test suite
90
+ @$(call run-shell,$(BUNDLE) exec $(GUARD))
73
91
 
74
92
  test: \
75
93
  test-specs \
@@ -79,6 +97,11 @@ test-specs:
79
97
  # Run the whole test suite
80
98
  @$(call run-shell,$(BUNDLE) exec $(RAKE) stats spec)
81
99
 
100
+ $(TEST_GEMFILES): GEMFILE=$(@:test-%=%)
101
+ $(TEST_GEMFILES):
102
+ # Run the whole test suite ($(GEMFILE))
103
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) $(GEMFILE) $(RSPEC))
104
+
82
105
  test-style: \
83
106
  test-style-ruby
84
107
 
@@ -90,8 +113,8 @@ clean:
90
113
  # Clean the dependencies
91
114
  @$(RM) -rf $(VENDOR_DIR)
92
115
  @$(RM) -rf $(VENDOR_DIR)/Gemfile.lock
93
- @$(RM) -rf pkg
94
- @$(RM) -rf coverage
116
+ @$(RM) -rf .bundle .yardoc coverage pkg Gemfile.lock doc/api \
117
+ .rspec_status
95
118
 
96
119
  clean-containers:
97
120
  # Clean running containers
@@ -102,7 +125,7 @@ endif
102
125
  clean-images:
103
126
  # Clean build images
104
127
  ifeq ($(MAKE_ENV),docker)
105
- @-$(DOCKER) images | $(GREP) rimless \
128
+ @-$(DOCKER) images | $(GREP) $(shell basename "`pwd`") \
106
129
  | $(AWK) '{ print $$3 }' \
107
130
  | $(XARGS) -rn1 $(DOCKER) rmi -f
108
131
  endif
data/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  This gem is dedicated to easily integrate a JWT authentication to your
10
10
  [Grape](https://github.com/ruby-grape/grape) API. The real authentication
11
- functionality must be provided by the user and this makes this gem highy
11
+ functionality must be provided by the user and this makes this gem highly
12
12
  flexible on the JWT verification level.
13
13
 
14
14
  - [Installation](#installation)
@@ -31,7 +31,9 @@ flexible on the JWT verification level.
31
31
  - [Per-API configuration](#per-api-configuration)
32
32
  - [Full RSA256 example](#full-rsa256-example)
33
33
  - [Development](#development)
34
+ - [Code of Conduct](#code-of-conduct)
34
35
  - [Contributing](#contributing)
36
+ - [Releasing](#releasing)
35
37
 
36
38
  ## Installation
37
39
 
@@ -154,7 +156,7 @@ end
154
156
 
155
157
  #### Failed authentication handling
156
158
 
157
- When the client sends a corrected formatted JSON Web Token with the Bearer
159
+ When the client sends a correctly formatted JSON Web Token with the Bearer
158
160
  authentication scheme within the `Authorization` header and your authenticator
159
161
  fails for some reason (token claims, wrong audience, bad subject, expired
160
162
  token, wrong cryptographic signing etc), this function is called to handle the
@@ -175,8 +177,8 @@ end
175
177
  #### RSA public key helper
176
178
 
177
179
  We provide a straightforward solution to deal with the provision of RSA public
178
- keys. Somethimes you want to distribute them by file to each machine and have
179
- a local access, and somethimes you provide an endpoint on your identity
180
+ keys. Sometimes you want to distribute them by file to each machine and have
181
+ a local access, and sometimes you provide an endpoint on your identity
180
182
  provider to fetch the RSA public key via HTTP/HTTPS. The `RsaPublicKey` class
181
183
  helps you to fulfill this task easily.
182
184
 
@@ -413,17 +415,28 @@ end
413
415
 
414
416
  ## Development
415
417
 
416
- After checking out the repo, run `bin/setup` to install dependencies. Then, run
417
- `bundle exec rake spec` to run the tests. You can also run `bin/console` for an
418
+ After checking out the repo, run `make install` to install dependencies. Then,
419
+ run `make test` to run the tests. You can also run `make shell-irb` for an
418
420
  interactive prompt that will allow you to experiment.
419
421
 
420
- To install this gem onto your local machine, run `bundle exec rake install`. To
421
- release a new version, update the version number in `version.rb`, and then run
422
- `bundle exec rake release`, which will create a git tag for the version, push
423
- git commits and tags, and push the `.gem` file to
424
- [rubygems.org](https://rubygems.org).
422
+ ## Code of Conduct
423
+
424
+ Everyone interacting in the project codebase, issue tracker, chat
425
+ rooms and mailing lists is expected to follow the [code of
426
+ conduct](./CODE_OF_CONDUCT.md).
425
427
 
426
428
  ## Contributing
427
429
 
428
430
  Bug reports and pull requests are welcome on GitHub at
429
- https://github.com/hausgold/grape-jwt-authentication.
431
+ https://github.com/hausgold/grape-jwt-authentication. Make sure that every pull request adds
432
+ a bullet point to the [changelog](./CHANGELOG.md) file with a reference to the
433
+ actual pull request.
434
+
435
+ ## Releasing
436
+
437
+ The release process of this Gem is fully automated. You just need to open the
438
+ Github Actions [Release
439
+ Workflow](https://github.com/hausgold/grape-jwt-authentication/actions/workflows/release.yml)
440
+ and trigger a new run via the **Run workflow** button. Insert the new version
441
+ number (check the [changelog](./CHANGELOG.md) first for the latest release) and
442
+ you're done.
data/Rakefile CHANGED
@@ -2,71 +2,18 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
  require 'rspec/core/rake_task'
5
- require 'rails/code_statistics'
6
- require 'pp'
5
+ require 'countless/rake_tasks'
7
6
 
8
7
  RSpec::Core::RakeTask.new(:spec)
9
8
 
10
9
  task default: :spec
11
10
 
12
- # Load some railties tasks
13
- load 'rails/tasks/statistics.rake'
14
- load 'rails/tasks/annotations.rake'
15
-
16
- # Clear the default statistics directory constant
17
- #
18
- # rubocop:disable Style/MutableConstant because we define it
19
- Object.send(:remove_const, :STATS_DIRECTORIES)
20
- ::STATS_DIRECTORIES = []
21
- # rubocop:enable Style/MutableConstant
22
-
23
- # Monkey patch the Rails +CodeStatistics+ class to support configurable
24
- # patterns per path. This is reuqired to support top-level only file matches.
25
- class CodeStatistics
26
- DEFAULT_PATTERN = /^(?!\.).*?\.(rb|js|coffee|rake)$/.freeze
27
-
28
- # Pass the possible +pattern+ argument down to the
29
- # +calculate_directory_statistics+ method call.
30
- def calculate_statistics
31
- Hash[@pairs.map do |pair|
32
- [pair.first, calculate_directory_statistics(*pair[1..-1])]
33
- end]
34
- end
35
-
36
- # Match the pattern against the individual file name and the relative file
37
- # path. This allows top-level only matches.
38
- def calculate_directory_statistics(directory, pattern = DEFAULT_PATTERN)
39
- stats = CodeStatisticsCalculator.new
40
-
41
- Dir.foreach(directory) do |file_name|
42
- path = "#{directory}/#{file_name}"
43
-
44
- if File.directory?(path) && (/^\./ !~ file_name)
45
- stats.add(calculate_directory_statistics(path, pattern))
46
- elsif file_name =~ pattern || path =~ pattern
47
- stats.add_by_file_path(path)
48
- end
49
- end
50
-
51
- stats
52
- end
53
- end
54
-
55
11
  # Configure all code statistics directories
56
- vendors = [
57
- [:unshift, 'Top-levels', 'lib'],
58
- [:unshift, 'Top-levels specs', 'spec/grape']
59
- ].reverse
60
-
61
- vendors.each do |method, type, dir, pattern|
62
- ::STATS_DIRECTORIES.send(method, [type, dir, pattern].compact)
63
- ::CodeStatistics::TEST_TYPES << type if type.include? 'specs'
64
- end
65
-
66
- # Setup annotations
67
- ENV['SOURCE_ANNOTATION_DIRECTORIES'] = 'spec,doc'
68
-
69
- desc 'Enumerate all annotations'
70
- task :notes do
71
- SourceAnnotationExtractor.enumerate '@?OPTIMIZE|@?FIXME|@?TODO', tag: true
12
+ Countless.configure do |config|
13
+ config.stats_base_directories = [
14
+ { name: 'Top-levels',
15
+ pattern: 'lib/**/*.rb' },
16
+ { name: 'Top-levels specs', test: true,
17
+ pattern: 'spec/grape/**/*.rb' }
18
+ ]
72
19
  end
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activejob", "~> 5.2.0"
6
+ gem "activerecord", "~> 5.2.0"
7
+ gem "activesupport", "~> 5.2.0"
8
+
9
+ gemspec path: "../"
@@ -5,41 +5,57 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'grape/jwt/authentication/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = 'grape-jwt-authentication'
9
- spec.version = Grape::Jwt::Authentication::VERSION
10
- spec.authors = ['Hermann Mayer']
11
- spec.email = ['hermann.mayer92@gmail.com']
8
+ spec.name = 'grape-jwt-authentication'
9
+ spec.version = Grape::Jwt::Authentication::VERSION
10
+ spec.authors = ['Hermann Mayer']
11
+ spec.email = ['hermann.mayer92@gmail.com']
12
12
 
13
- spec.summary = 'A reusable Grape JWT authentication concern'
14
- spec.description = 'A reusable Grape JWT authentication concern'
15
- spec.homepage = 'https://github.com/hausgold/grape-jwt-authentication'
13
+ spec.license = 'MIT'
14
+ spec.summary = 'A reusable Grape JWT authentication concern'
15
+ spec.description = 'A reusable Grape JWT authentication concern'
16
+
17
+ base_uri = "https://github.com/hausgold/#{spec.name}"
18
+ spec.metadata = {
19
+ 'homepage_uri' => base_uri,
20
+ 'source_code_uri' => base_uri,
21
+ 'changelog_uri' => "#{base_uri}/blob/master/CHANGELOG.md",
22
+ 'bug_tracker_uri' => "#{base_uri}/issues",
23
+ 'documentation_uri' => "https://www.rubydoc.info/gems/#{spec.name}"
24
+ }
16
25
 
17
26
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
27
  f.match(%r{^(test|spec|features)/})
19
28
  end
20
- spec.bindir = 'exe'
21
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+
30
+ spec.bindir = 'exe'
31
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
32
  spec.require_paths = ['lib']
23
33
 
24
- spec.add_runtime_dependency 'activesupport', '>= 3.2.0'
34
+ spec.required_ruby_version = '>= 2.5'
35
+
36
+ spec.add_runtime_dependency 'activesupport', '>= 5.2'
25
37
  spec.add_runtime_dependency 'grape', '~> 1.0'
26
- spec.add_runtime_dependency 'httparty'
27
- spec.add_runtime_dependency 'jwt', '~> 2.1'
28
- spec.add_runtime_dependency 'keyless', '~> 1.0'
29
- spec.add_runtime_dependency 'recursive-open-struct', '~> 1.0'
30
-
31
- spec.add_development_dependency 'bundler', '>= 1.16', '< 3'
32
- spec.add_development_dependency 'rack', '~> 2.0'
33
- spec.add_development_dependency 'rack-test', '~> 0.8.2'
34
- spec.add_development_dependency 'railties', '>= 4.2.0', '< 6.1'
35
- spec.add_development_dependency 'rake', '~> 10.0'
36
- spec.add_development_dependency 'rspec', '~> 3.9'
37
- spec.add_development_dependency 'rubocop', '~> 0.63.1'
38
- spec.add_development_dependency 'rubocop-rspec', '~> 1.31'
39
- spec.add_development_dependency 'simplecov', '< 0.18'
40
- spec.add_development_dependency 'timecop', '~> 0.9.1'
41
- spec.add_development_dependency 'vcr', '~> 3.0'
42
- spec.add_development_dependency 'webmock', '~> 3.1'
43
- spec.add_development_dependency 'yard', '~> 0.9.18'
44
- spec.add_development_dependency 'yard-activesupport-concern', '~> 0.0.1'
38
+ spec.add_runtime_dependency 'httparty', '>= 0.21'
39
+ spec.add_runtime_dependency 'jwt', '~> 2.6'
40
+ spec.add_runtime_dependency 'keyless', '~> 1.1'
41
+ spec.add_runtime_dependency 'recursive-open-struct', '~> 1.1'
42
+
43
+ spec.add_development_dependency 'appraisal', '~> 2.4'
44
+ spec.add_development_dependency 'bundler', '~> 2.3'
45
+ spec.add_development_dependency 'countless', '~> 1.1'
46
+ spec.add_development_dependency 'guard-rspec', '~> 4.7'
47
+ spec.add_development_dependency 'rack', '~> 2.2'
48
+ spec.add_development_dependency 'rack-test', '~> 2.0'
49
+ spec.add_development_dependency 'railties', '>= 5.2'
50
+ spec.add_development_dependency 'rake', '~> 13.0'
51
+ spec.add_development_dependency 'rspec', '~> 3.12'
52
+ spec.add_development_dependency 'rubocop', '~> 1.28'
53
+ spec.add_development_dependency 'rubocop-rails', '~> 2.14'
54
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.10'
55
+ spec.add_development_dependency 'simplecov', '>= 0.22'
56
+ spec.add_development_dependency 'timecop', '>= 0.9.6'
57
+ spec.add_development_dependency 'vcr', '~> 6.0'
58
+ spec.add_development_dependency 'webmock', '~> 3.18'
59
+ spec.add_development_dependency 'yard', '>= 0.9.28'
60
+ spec.add_development_dependency 'yard-activesupport-concern', '>= 0.0.1'
45
61
  end
@@ -102,10 +102,8 @@ module Grape
102
102
  # interface.
103
103
  #
104
104
  # @param env [Hash{String => Mixed}] the Rack environment
105
- #
106
- # rubocop:disable Metrics/AbcSize because thats the auth handling core
105
+ # because thats the auth handling core
107
106
  # :reek:TooManyStatements because reek counts exception
108
- # handling as statements
109
107
  def call(env)
110
108
  # Unfortunately Grape's middleware stack orders the error
111
109
  # handling higher than the formatter. So when a error is
@@ -139,7 +137,6 @@ module Grape
139
137
  # Call the user defined failed authentication handler.
140
138
  failed_handler.call(token, @app)
141
139
  end
142
- # rubocop:enable Metrics/AbcSize
143
140
  end
144
141
  end
145
142
  end
@@ -2,8 +2,26 @@
2
2
 
3
3
  module Grape
4
4
  module Jwt
5
+ # The gem version details.
5
6
  module Authentication
6
- VERSION = '2.0.4'
7
+ # The version of the +grape-jwt-authentication+ gem
8
+ VERSION = '2.2.0'
9
+
10
+ class << self
11
+ # Returns the version of gem as a string.
12
+ #
13
+ # @return [String] the gem version as string
14
+ def version
15
+ VERSION
16
+ end
17
+
18
+ # Returns the version of the gem as a +Gem::Version+.
19
+ #
20
+ # @return [Gem::Version] the gem version as object
21
+ def gem_version
22
+ Gem::Version.new VERSION
23
+ end
24
+ end
7
25
  end
8
26
  end
9
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-jwt-authentication
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hermann Mayer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-15 00:00:00.000000000 Z
11
+ date: 2023-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.0
19
+ version: '5.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.0
26
+ version: '5.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: grape
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,262 +44,306 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.21'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.21'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: jwt
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.1'
61
+ version: '2.6'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.1'
68
+ version: '2.6'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: keyless
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.0'
75
+ version: '1.1'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.0'
82
+ version: '1.1'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: recursive-open-struct
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.0'
89
+ version: '1.1'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.0'
96
+ version: '1.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: appraisal
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.4'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.4'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: bundler
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
102
123
  - !ruby/object:Gem::Version
103
- version: '1.16'
104
- - - "<"
124
+ version: '2.3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: countless
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
105
130
  - !ruby/object:Gem::Version
106
- version: '3'
131
+ version: '1.1'
107
132
  type: :development
108
133
  prerelease: false
109
134
  version_requirements: !ruby/object:Gem::Requirement
110
135
  requirements:
111
- - - ">="
136
+ - - "~>"
112
137
  - !ruby/object:Gem::Version
113
- version: '1.16'
114
- - - "<"
138
+ version: '1.1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: guard-rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
115
144
  - !ruby/object:Gem::Version
116
- version: '3'
145
+ version: '4.7'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '4.7'
117
153
  - !ruby/object:Gem::Dependency
118
154
  name: rack
119
155
  requirement: !ruby/object:Gem::Requirement
120
156
  requirements:
121
157
  - - "~>"
122
158
  - !ruby/object:Gem::Version
123
- version: '2.0'
159
+ version: '2.2'
124
160
  type: :development
125
161
  prerelease: false
126
162
  version_requirements: !ruby/object:Gem::Requirement
127
163
  requirements:
128
164
  - - "~>"
129
165
  - !ruby/object:Gem::Version
130
- version: '2.0'
166
+ version: '2.2'
131
167
  - !ruby/object:Gem::Dependency
132
168
  name: rack-test
133
169
  requirement: !ruby/object:Gem::Requirement
134
170
  requirements:
135
171
  - - "~>"
136
172
  - !ruby/object:Gem::Version
137
- version: 0.8.2
173
+ version: '2.0'
138
174
  type: :development
139
175
  prerelease: false
140
176
  version_requirements: !ruby/object:Gem::Requirement
141
177
  requirements:
142
178
  - - "~>"
143
179
  - !ruby/object:Gem::Version
144
- version: 0.8.2
180
+ version: '2.0'
145
181
  - !ruby/object:Gem::Dependency
146
182
  name: railties
147
183
  requirement: !ruby/object:Gem::Requirement
148
184
  requirements:
149
185
  - - ">="
150
186
  - !ruby/object:Gem::Version
151
- version: 4.2.0
152
- - - "<"
153
- - !ruby/object:Gem::Version
154
- version: '6.1'
187
+ version: '5.2'
155
188
  type: :development
156
189
  prerelease: false
157
190
  version_requirements: !ruby/object:Gem::Requirement
158
191
  requirements:
159
192
  - - ">="
160
193
  - !ruby/object:Gem::Version
161
- version: 4.2.0
162
- - - "<"
163
- - !ruby/object:Gem::Version
164
- version: '6.1'
194
+ version: '5.2'
165
195
  - !ruby/object:Gem::Dependency
166
196
  name: rake
167
197
  requirement: !ruby/object:Gem::Requirement
168
198
  requirements:
169
199
  - - "~>"
170
200
  - !ruby/object:Gem::Version
171
- version: '10.0'
201
+ version: '13.0'
172
202
  type: :development
173
203
  prerelease: false
174
204
  version_requirements: !ruby/object:Gem::Requirement
175
205
  requirements:
176
206
  - - "~>"
177
207
  - !ruby/object:Gem::Version
178
- version: '10.0'
208
+ version: '13.0'
179
209
  - !ruby/object:Gem::Dependency
180
210
  name: rspec
181
211
  requirement: !ruby/object:Gem::Requirement
182
212
  requirements:
183
213
  - - "~>"
184
214
  - !ruby/object:Gem::Version
185
- version: '3.9'
215
+ version: '3.12'
186
216
  type: :development
187
217
  prerelease: false
188
218
  version_requirements: !ruby/object:Gem::Requirement
189
219
  requirements:
190
220
  - - "~>"
191
221
  - !ruby/object:Gem::Version
192
- version: '3.9'
222
+ version: '3.12'
193
223
  - !ruby/object:Gem::Dependency
194
224
  name: rubocop
195
225
  requirement: !ruby/object:Gem::Requirement
196
226
  requirements:
197
227
  - - "~>"
198
228
  - !ruby/object:Gem::Version
199
- version: 0.63.1
229
+ version: '1.28'
200
230
  type: :development
201
231
  prerelease: false
202
232
  version_requirements: !ruby/object:Gem::Requirement
203
233
  requirements:
204
234
  - - "~>"
205
235
  - !ruby/object:Gem::Version
206
- version: 0.63.1
236
+ version: '1.28'
237
+ - !ruby/object:Gem::Dependency
238
+ name: rubocop-rails
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '2.14'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '2.14'
207
251
  - !ruby/object:Gem::Dependency
208
252
  name: rubocop-rspec
209
253
  requirement: !ruby/object:Gem::Requirement
210
254
  requirements:
211
255
  - - "~>"
212
256
  - !ruby/object:Gem::Version
213
- version: '1.31'
257
+ version: '2.10'
214
258
  type: :development
215
259
  prerelease: false
216
260
  version_requirements: !ruby/object:Gem::Requirement
217
261
  requirements:
218
262
  - - "~>"
219
263
  - !ruby/object:Gem::Version
220
- version: '1.31'
264
+ version: '2.10'
221
265
  - !ruby/object:Gem::Dependency
222
266
  name: simplecov
223
267
  requirement: !ruby/object:Gem::Requirement
224
268
  requirements:
225
- - - "<"
269
+ - - ">="
226
270
  - !ruby/object:Gem::Version
227
- version: '0.18'
271
+ version: '0.22'
228
272
  type: :development
229
273
  prerelease: false
230
274
  version_requirements: !ruby/object:Gem::Requirement
231
275
  requirements:
232
- - - "<"
276
+ - - ">="
233
277
  - !ruby/object:Gem::Version
234
- version: '0.18'
278
+ version: '0.22'
235
279
  - !ruby/object:Gem::Dependency
236
280
  name: timecop
237
281
  requirement: !ruby/object:Gem::Requirement
238
282
  requirements:
239
- - - "~>"
283
+ - - ">="
240
284
  - !ruby/object:Gem::Version
241
- version: 0.9.1
285
+ version: 0.9.6
242
286
  type: :development
243
287
  prerelease: false
244
288
  version_requirements: !ruby/object:Gem::Requirement
245
289
  requirements:
246
- - - "~>"
290
+ - - ">="
247
291
  - !ruby/object:Gem::Version
248
- version: 0.9.1
292
+ version: 0.9.6
249
293
  - !ruby/object:Gem::Dependency
250
294
  name: vcr
251
295
  requirement: !ruby/object:Gem::Requirement
252
296
  requirements:
253
297
  - - "~>"
254
298
  - !ruby/object:Gem::Version
255
- version: '3.0'
299
+ version: '6.0'
256
300
  type: :development
257
301
  prerelease: false
258
302
  version_requirements: !ruby/object:Gem::Requirement
259
303
  requirements:
260
304
  - - "~>"
261
305
  - !ruby/object:Gem::Version
262
- version: '3.0'
306
+ version: '6.0'
263
307
  - !ruby/object:Gem::Dependency
264
308
  name: webmock
265
309
  requirement: !ruby/object:Gem::Requirement
266
310
  requirements:
267
311
  - - "~>"
268
312
  - !ruby/object:Gem::Version
269
- version: '3.1'
313
+ version: '3.18'
270
314
  type: :development
271
315
  prerelease: false
272
316
  version_requirements: !ruby/object:Gem::Requirement
273
317
  requirements:
274
318
  - - "~>"
275
319
  - !ruby/object:Gem::Version
276
- version: '3.1'
320
+ version: '3.18'
277
321
  - !ruby/object:Gem::Dependency
278
322
  name: yard
279
323
  requirement: !ruby/object:Gem::Requirement
280
324
  requirements:
281
- - - "~>"
325
+ - - ">="
282
326
  - !ruby/object:Gem::Version
283
- version: 0.9.18
327
+ version: 0.9.28
284
328
  type: :development
285
329
  prerelease: false
286
330
  version_requirements: !ruby/object:Gem::Requirement
287
331
  requirements:
288
- - - "~>"
332
+ - - ">="
289
333
  - !ruby/object:Gem::Version
290
- version: 0.9.18
334
+ version: 0.9.28
291
335
  - !ruby/object:Gem::Dependency
292
336
  name: yard-activesupport-concern
293
337
  requirement: !ruby/object:Gem::Requirement
294
338
  requirements:
295
- - - "~>"
339
+ - - ">="
296
340
  - !ruby/object:Gem::Version
297
341
  version: 0.0.1
298
342
  type: :development
299
343
  prerelease: false
300
344
  version_requirements: !ruby/object:Gem::Requirement
301
345
  requirements:
302
- - - "~>"
346
+ - - ">="
303
347
  - !ruby/object:Gem::Version
304
348
  version: 0.0.1
305
349
  description: A reusable Grape JWT authentication concern
@@ -311,16 +355,20 @@ extra_rdoc_files: []
311
355
  files:
312
356
  - ".editorconfig"
313
357
  - ".github/workflows/documentation.yml"
358
+ - ".github/workflows/release.yml"
314
359
  - ".github/workflows/test.yml"
315
360
  - ".gitignore"
316
361
  - ".rspec"
317
362
  - ".rubocop.yml"
318
363
  - ".simplecov"
319
364
  - ".yardopts"
365
+ - Appraisals
320
366
  - CHANGELOG.md
367
+ - CODE_OF_CONDUCT.md
321
368
  - Dockerfile
322
369
  - Envfile
323
370
  - Gemfile
371
+ - Guardfile
324
372
  - LICENSE
325
373
  - Makefile
326
374
  - README.md
@@ -332,16 +380,23 @@ files:
332
380
  - config/docker/.inputrc
333
381
  - doc/assets/project.svg
334
382
  - docker-compose.yml
383
+ - gemfiles/rails_5.2.gemfile
335
384
  - grape-jwt-authentication.gemspec
336
385
  - lib/grape/jwt/authentication.rb
337
386
  - lib/grape/jwt/authentication/configuration.rb
338
387
  - lib/grape/jwt/authentication/dependencies.rb
339
388
  - lib/grape/jwt/authentication/jwt_handler.rb
340
389
  - lib/grape/jwt/authentication/version.rb
341
- homepage: https://github.com/hausgold/grape-jwt-authentication
342
- licenses: []
343
- metadata: {}
344
- post_install_message:
390
+ homepage:
391
+ licenses:
392
+ - MIT
393
+ metadata:
394
+ homepage_uri: https://github.com/hausgold/grape-jwt-authentication
395
+ source_code_uri: https://github.com/hausgold/grape-jwt-authentication
396
+ changelog_uri: https://github.com/hausgold/grape-jwt-authentication/blob/master/CHANGELOG.md
397
+ bug_tracker_uri: https://github.com/hausgold/grape-jwt-authentication/issues
398
+ documentation_uri: https://www.rubydoc.info/gems/grape-jwt-authentication
399
+ post_install_message:
345
400
  rdoc_options: []
346
401
  require_paths:
347
402
  - lib
@@ -349,15 +404,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
349
404
  requirements:
350
405
  - - ">="
351
406
  - !ruby/object:Gem::Version
352
- version: '0'
407
+ version: '2.5'
353
408
  required_rubygems_version: !ruby/object:Gem::Requirement
354
409
  requirements:
355
410
  - - ">="
356
411
  - !ruby/object:Gem::Version
357
412
  version: '0'
358
413
  requirements: []
359
- rubygems_version: 3.2.16
360
- signing_key:
414
+ rubygems_version: 3.3.26
415
+ signing_key:
361
416
  specification_version: 4
362
417
  summary: A reusable Grape JWT authentication concern
363
418
  test_files: []