routes_lazy_routes 0.3.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +24 -22
- data/Gemfile +5 -1
- data/README.md +11 -0
- data/lib/routes_lazy_routes/application.rb +1 -1
- data/lib/routes_lazy_routes/command/routes_command.rb +14 -0
- data/lib/routes_lazy_routes/railtie.rb +6 -1
- data/lib/routes_lazy_routes/routes_reloader_wrapper.rb +7 -1
- data/lib/routes_lazy_routes/tasks/routes_lazy_routes.rake +7 -5
- data/lib/routes_lazy_routes/version.rb +1 -1
- data/routes_lazy_routes.gemspec +2 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e85956f13f735f04905cdde0cb540b18d8f79064d8b5931e7cf73cf5f5c16158
|
4
|
+
data.tar.gz: cac1dea4e88483c46924cfc072e4feb0186f7a5acdcfceba34b7b8b642709172
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6d029f33d69f554a9047d2d74bd97c74e23c42351cb66ee6072346b7c78648d36c5951c033666759736904e7e5dc75f7aa46b0f9df12f903c69a515486d6509
|
7
|
+
data.tar.gz: 6b51f22fc94b59e007d65c7809dc0648fd4e877e064cc433e310f1cb981c11e91db3453ab0dd8a99d5d9f6b4aab69f2489798eefcc5801fdae9b17df3555e11e
|
data/.github/workflows/main.yml
CHANGED
@@ -1,33 +1,35 @@
|
|
1
1
|
name: Ruby
|
2
2
|
|
3
|
-
on: [push,pull_request]
|
3
|
+
on: [push, pull_request]
|
4
4
|
|
5
5
|
jobs:
|
6
6
|
build:
|
7
7
|
strategy:
|
8
8
|
matrix:
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
9
|
+
ruby_version: [ruby-head, '3.0', '2.7', '2.6']
|
10
|
+
rails_version: ['edge', '6.1', '6.0', '5.2']
|
11
|
+
|
12
|
+
exclude:
|
13
|
+
- ruby_version: ruby-head
|
14
|
+
rails_version: '6.0'
|
15
|
+
- ruby_version: ruby-head
|
16
|
+
rails_version: '5.2'
|
17
|
+
- ruby_version: '3.0'
|
18
|
+
rails_version: '5.2'
|
19
|
+
- ruby_version: '2.6'
|
20
|
+
rails_version: 'edge'
|
21
|
+
|
20
22
|
runs-on: ubuntu-latest
|
23
|
+
|
24
|
+
env:
|
25
|
+
RAILS_VERSION: ${{ matrix.rails_version }}
|
26
|
+
|
21
27
|
steps:
|
22
28
|
- uses: actions/checkout@v2
|
23
|
-
|
24
|
-
|
29
|
+
|
30
|
+
- uses: ruby/setup-ruby@v1
|
25
31
|
with:
|
26
|
-
ruby-version: ${{ matrix.
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
bundle install
|
31
|
-
bundle exec rake
|
32
|
-
env:
|
33
|
-
RAILS_VERSION: ${{ matrix.rails-version }}
|
32
|
+
ruby-version: ${{ matrix.ruby_version }}
|
33
|
+
bundler-cache: true
|
34
|
+
|
35
|
+
- run: bundle exec rake
|
data/Gemfile
CHANGED
@@ -5,7 +5,11 @@ source "https://rubygems.org"
|
|
5
5
|
# Specify your gem's dependencies in routes_lazy_routes.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
|
8
|
+
if ENV['RAILS_VERSION'] == 'edge'
|
9
|
+
gem 'rails', git: 'https://github.com/rails/rails.git'
|
10
|
+
elsif ENV['RAILS_VERSION']
|
11
|
+
gem 'rails', "~> #{ENV['RAILS_VERSION']}.0"
|
12
|
+
end
|
9
13
|
|
10
14
|
gem "rake", "~> 13.0"
|
11
15
|
|
data/README.md
CHANGED
@@ -44,6 +44,17 @@ If you're bundling this in the production server, it'd be a good idea to throw a
|
|
44
44
|
|
45
45
|
- And, as already explained, sending a request to the Rails server automatically runs `RoutesLazyRoutes.eager_load!` on the server.
|
46
46
|
|
47
|
+
- On the other hand, you need manually calling `RoutesLazyRoutes.eager_load!` inside your worker process (e.g. Sidekiq) to resolve named routes like the following:
|
48
|
+
``` ruby
|
49
|
+
# config/initializers/sidekiq.rb
|
50
|
+
Sidekiq.configure_server do |config|
|
51
|
+
if defined?(RoutesLazyRoutes)
|
52
|
+
Rails.application.config.after_initialize do
|
53
|
+
RoutesLazyRoutes.eager_load!
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
```
|
47
58
|
|
48
59
|
## Contributing
|
49
60
|
|
@@ -12,7 +12,7 @@ module RoutesLazyRoutes
|
|
12
12
|
end
|
13
13
|
|
14
14
|
module TaskLoader
|
15
|
-
# A monkey-patch that loads our Rake task for enhancing `
|
15
|
+
# A monkey-patch that loads our Rake task for enhancing `rake routes` after Rails loads all other tasks.
|
16
16
|
# Just declaring our own `rake_tasks` in the railtie cannot achieve this, since calling each railtie's `rake_tasks` is done before requiring "rails/tasks",
|
17
17
|
# so enhancing Rails' Rake task from a gem this way seems impossible.
|
18
18
|
def load_tasks(*)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RoutesLazyRoutes
|
4
|
+
module Command
|
5
|
+
module RoutesCommand
|
6
|
+
# A monkey-patch that eager_loads the routes right before running the `rails routes` command.
|
7
|
+
def require_environment!
|
8
|
+
super
|
9
|
+
|
10
|
+
RoutesLazyRoutes.eager_load!
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -4,9 +4,14 @@ require_relative 'application'
|
|
4
4
|
|
5
5
|
module RoutesLazyRoutes
|
6
6
|
class Railtie < ::Rails::Railtie
|
7
|
-
# Extending
|
7
|
+
# Extending the following modules have to be done very early, like before executing any initializer, so here it is
|
8
8
|
Rails::Application.prepend RoutesLazyRoutes::Application::TaskLoader
|
9
9
|
|
10
|
+
if defined? Rails::Command::RoutesCommand
|
11
|
+
require_relative 'command/routes_command'
|
12
|
+
Rails::Command::RoutesCommand.prepend RoutesLazyRoutes::Command::RoutesCommand
|
13
|
+
end
|
14
|
+
|
10
15
|
initializer :routes_lazy_routes, before: :add_routing_paths do
|
11
16
|
RoutesLazyRoutes.arise!
|
12
17
|
|
@@ -2,7 +2,13 @@
|
|
2
2
|
|
3
3
|
module RoutesLazyRoutes
|
4
4
|
class RoutesReloaderWrapper
|
5
|
-
delegate :paths,
|
5
|
+
delegate :paths,
|
6
|
+
:eager_load=,
|
7
|
+
:run_after_load_paths=,
|
8
|
+
:updated?,
|
9
|
+
:route_sets,
|
10
|
+
:external_routes,
|
11
|
+
to: :@original_routes_reloader
|
6
12
|
|
7
13
|
def initialize(original_routes_reloader)
|
8
14
|
@original_routes_reloader = original_routes_reloader
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
if Rake::Task.task_defined?('routes')
|
4
|
+
namespace :routes_lazy_routes do
|
5
|
+
task :eager_load do
|
6
|
+
RoutesLazyRoutes.eager_load!
|
7
|
+
end
|
6
8
|
end
|
7
|
-
end
|
8
9
|
|
9
|
-
Rake::Task['routes'].enhance ['routes_lazy_routes:eager_load']
|
10
|
+
Rake::Task['routes'].enhance ['routes_lazy_routes:eager_load']
|
11
|
+
end
|
data/routes_lazy_routes.gemspec
CHANGED
metadata
CHANGED
@@ -1,17 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: routes_lazy_routes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Matsuda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: railties
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: actionpack
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - ">="
|
@@ -56,6 +70,7 @@ files:
|
|
56
70
|
- bin/setup
|
57
71
|
- lib/routes_lazy_routes.rb
|
58
72
|
- lib/routes_lazy_routes/application.rb
|
73
|
+
- lib/routes_lazy_routes/command/routes_command.rb
|
59
74
|
- lib/routes_lazy_routes/lazy_routes_middleware.rb
|
60
75
|
- lib/routes_lazy_routes/railtie.rb
|
61
76
|
- lib/routes_lazy_routes/routes_reloader_wrapper.rb
|
@@ -83,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
98
|
- !ruby/object:Gem::Version
|
84
99
|
version: '0'
|
85
100
|
requirements: []
|
86
|
-
rubygems_version: 3.
|
101
|
+
rubygems_version: 3.3.0.dev
|
87
102
|
signing_key:
|
88
103
|
specification_version: 4
|
89
104
|
summary: A Rails routes lazy loader
|