js-routes 2.2.8 → 2.2.10

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -9
  3. data/Readme.md +60 -45
  4. data/lib/js_routes/configuration.rb +80 -34
  5. data/lib/js_routes/engine.rb +2 -0
  6. data/lib/js_routes/generators/base.rb +19 -0
  7. data/lib/js_routes/generators/middleware.rb +6 -8
  8. data/lib/js_routes/generators/webpacker.rb +1 -3
  9. data/lib/js_routes/instance.rb +50 -15
  10. data/lib/js_routes/middleware.rb +16 -3
  11. data/lib/js_routes/route.rb +60 -17
  12. data/lib/js_routes/types.rb +38 -0
  13. data/lib/js_routes/version.rb +2 -1
  14. data/lib/js_routes.rb +25 -7
  15. metadata +28 -45
  16. data/.document +0 -5
  17. data/.eslintrc.js +0 -15
  18. data/.github/workflows/ci.yml +0 -36
  19. data/.gitignore +0 -65
  20. data/.nvmrc +0 -1
  21. data/.rspec +0 -1
  22. data/Appraisals +0 -17
  23. data/Gemfile +0 -4
  24. data/Rakefile +0 -37
  25. data/VERSION_2_UPGRADE.md +0 -66
  26. data/gemfiles/rails50_sprockets_3.gemfile +0 -8
  27. data/gemfiles/rails51_sprockets_3.gemfile +0 -8
  28. data/gemfiles/rails52_sprockets_3.gemfile +0 -8
  29. data/gemfiles/rails70_sprockets_4.gemfile +0 -8
  30. data/js-routes.gemspec +0 -39
  31. data/package.json +0 -38
  32. data/spec/dummy/app/assets/config/manifest.js +0 -2
  33. data/spec/dummy/app/assets/javascripts/.gitkeep +0 -0
  34. data/spec/dummy/config/routes.rb +0 -55
  35. data/spec/js_routes/default_serializer_spec.rb +0 -31
  36. data/spec/js_routes/module_types/amd_spec.rb +0 -35
  37. data/spec/js_routes/module_types/cjs_spec.rb +0 -15
  38. data/spec/js_routes/module_types/dts/routes.spec.d.ts +0 -115
  39. data/spec/js_routes/module_types/dts/test.spec.ts +0 -56
  40. data/spec/js_routes/module_types/dts_spec.rb +0 -111
  41. data/spec/js_routes/module_types/esm_spec.rb +0 -45
  42. data/spec/js_routes/module_types/nil_spec.rb +0 -87
  43. data/spec/js_routes/module_types/umd_spec.rb +0 -85
  44. data/spec/js_routes/options_spec.rb +0 -508
  45. data/spec/js_routes/rails_routes_compatibility_spec.rb +0 -473
  46. data/spec/js_routes/route_specification_spec.rb +0 -37
  47. data/spec/js_routes/zzz_sprockets_spec.rb +0 -152
  48. data/spec/spec_helper.rb +0 -135
  49. data/spec/support/routes.rb +0 -81
  50. data/spec/tsconfig.json +0 -4
  51. data/tsconfig.json +0 -28
  52. data/yarn.lock +0 -2457
data/spec/spec_helper.rb DELETED
@@ -1,135 +0,0 @@
1
- # encoding: utf-8
2
-
3
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
- $:.unshift(File.dirname(__FILE__))
5
- require 'rspec'
6
- require 'rails/all'
7
- require 'js-routes'
8
- require 'active_support/core_ext/hash/slice'
9
-
10
- unless ENV['CI']
11
- code = system("yarn build")
12
- unless code
13
- exit(1)
14
- end
15
- end
16
-
17
-
18
- if defined?(JRUBY_VERSION)
19
- require 'rhino'
20
- JS_LIB_CLASS = Rhino
21
- else
22
- require 'mini_racer'
23
- JS_LIB_CLASS = MiniRacer
24
- end
25
-
26
- def jscontext(force = false)
27
- if force
28
- @jscontext = JS_LIB_CLASS::Context.new
29
- else
30
- @jscontext ||= JS_LIB_CLASS::Context.new
31
- end
32
- end
33
-
34
- def js_error_class
35
- if defined?(JRUBY_VERSION)
36
- JS_LIB_CLASS::JSError
37
- else
38
- JS_LIB_CLASS::Error
39
- end
40
- end
41
-
42
- def evaljs(string, force: false, filename: 'context.js')
43
- jscontext(force).eval(string, filename: filename)
44
- rescue MiniRacer::ParseError => e
45
- trace = e.message
46
- _, _, line, _ = trace.split(':')
47
- if line
48
- code = string.split("\n")[line.to_i-1]
49
- raise "#{trace}. Code: #{code.strip}";
50
- else
51
- raise e
52
- end
53
- rescue MiniRacer::RuntimeError => e
54
- raise e
55
- end
56
-
57
- def evallib(**options)
58
- evaljs(JsRoutes.generate(**options), filename: 'lib/routes.js')
59
- end
60
-
61
- def test_routes
62
- ::App.routes.url_helpers
63
- end
64
-
65
- def blog_routes
66
- BlogEngine::Engine.routes.url_helpers
67
- end
68
-
69
- def planner_routes
70
- Planner::Engine.routes.url_helpers
71
- end
72
-
73
- def log(string)
74
- evaljs("console.log(#{string})")
75
- end
76
-
77
- def expectjs(string)
78
- expect(evaljs(string))
79
- end
80
-
81
- ActiveSupport::Inflector.inflections do |inflect|
82
- inflect.irregular "budgie", "budgies"
83
- end
84
-
85
-
86
- module Planner
87
- class Engine < Rails::Engine
88
- isolate_namespace Planner
89
- end
90
- end
91
-
92
- module BlogEngine
93
- class Engine < Rails::Engine
94
- isolate_namespace BlogEngine
95
- end
96
-
97
- end
98
-
99
-
100
- class ::App < Rails::Application
101
- config.paths['config/routes.rb'] << 'spec/config/routes.rb'
102
- config.root = File.expand_path('../dummy', __FILE__)
103
- end
104
-
105
-
106
- # prevent warning
107
- Rails.configuration.active_support.deprecation = :log
108
-
109
- # Requires supporting files with custom matchers and macros, etc,
110
- # in ./support/ and its subdirectories.
111
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
112
-
113
- RSpec.configure do |config|
114
- config.expect_with :rspec do |c|
115
- c.syntax = :expect
116
- end
117
-
118
- config.before(:suite) do
119
- draw_routes
120
- end
121
-
122
- config.before :each do
123
- log = proc do |*values|
124
- puts values.map(&:inspect).join(", ")
125
- end
126
-
127
- if defined?(JRUBY_VERSION)
128
- jscontext[:"console.log"] = lambda do |context, *values|
129
- log(*values)
130
- end
131
- else
132
- jscontext.attach("console.log", log)
133
- end
134
- end
135
- end
@@ -1,81 +0,0 @@
1
- def draw_routes
2
- Planner::Engine.routes.draw do
3
- get "/manage" => 'foo#foo', as: :manage
4
- end
5
-
6
- BlogEngine::Engine.routes.draw do
7
- root to: "application#index"
8
- resources :posts, only: [:show, :index]
9
- end
10
- App.routes.draw do
11
-
12
- mount Planner::Engine, at: "/(locale/:locale)", as: :planner
13
-
14
- mount BlogEngine::Engine => "/blog", as: :blog_app
15
- get 'support(/page/:page)', to: BlogEngine::Engine, as: 'support'
16
-
17
- resources :inboxes, only: [:index, :show] do
18
- resources :messages, only: [:index, :show] do
19
- resources :attachments, only: [:new, :show]
20
- end
21
- end
22
-
23
- get "(/:space)/campaigns" => "foo#foo", as: :campaigns, defaults: {space: nil}
24
-
25
- root :to => "inboxes#index"
26
-
27
- namespace :admin do
28
- resources :users, only: [:index]
29
- end
30
-
31
- scope "/returns/:return" do
32
- resources :objects, only: [:show]
33
- end
34
-
35
- scope "(/optional/:optional_id)" do
36
- resources :things, only: [:show, :index]
37
- end
38
-
39
- get "(/sep1/:first_optional)/sep2/:second_required/sep3/:third_required(/:forth_optional)",
40
- as: :thing_deep, controller: :things, action: :show
41
-
42
- if Rails.version < "5.0.0"
43
- get "/:controller(/:action(/:id))" => "classic#classic", :as => :classic
44
- end
45
-
46
- get "/other_optional/(:optional_id)" => "foo#foo", :as => :foo
47
- get '/other_optional(/*optional_id)' => 'foo#foo', :as => :foo_all
48
-
49
- get 'books/*section/:title' => 'books#show', :as => :book
50
- get 'books/:title/*section' => 'books#show', :as => :book_title
51
-
52
- get '/no_format' => "foo#foo", :format => false, :as => :no_format
53
-
54
- get '/json_only' => "foo#foo", :format => true, :constraints => {:format => /json/}, :as => :json_only
55
-
56
- get '/привет' => "foo#foo", :as => :hello
57
- get '(/o/:organization)/search/:q' => "foo#foo", as: :search
58
-
59
- resources :sessions, :only => [:new, :create], :protocol => 'https'
60
- get '/' => 'sso#login', host: 'sso.example.com', as: :sso
61
- get "/" => "a#b", subdomain: 'www', host: 'example.com', port: 88, as: :secret_root
62
-
63
- resources :portals, :port => 8080, only: [:index]
64
-
65
- get '/with_defaults' => 'foo#foo', defaults: { bar: 'tested', format: :json }, format: true
66
-
67
- namespace :api, format: true, defaults: {format: 'json'} do
68
- get "/purchases" => "purchases#index"
69
- end
70
-
71
- resources :budgies, only: [:show, :index] do
72
- get "descendents"
73
- end
74
-
75
- namespace :backend, path: '', constraints: {subdomain: 'backend'} do
76
- root to: 'backend#index'
77
- end
78
-
79
- end
80
-
81
- end
data/spec/tsconfig.json DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "extends": "../tsconfig.json",
3
- "include": ["./**/*.spec.ts"]
4
- }
data/tsconfig.json DELETED
@@ -1,28 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2019",
4
- "lib": ["es2020", "dom"],
5
- "module": "commonjs",
6
- "sourceMap": false,
7
- "declaration": true,
8
- "allowSyntheticDefaultImports": true,
9
- "resolveJsonModule": false,
10
- "strictNullChecks": true,
11
- "noImplicitAny": true,
12
- "noImplicitThis": true,
13
- "strictBindCallApply": true,
14
- "strictFunctionTypes": true,
15
- "alwaysStrict": false,
16
-
17
- "esModuleInterop": true,
18
- "forceConsistentCasingInFileNames": true,
19
- "emitDecoratorMetadata": true,
20
- "experimentalDecorators": true
21
-
22
- },
23
- "ts-node": {
24
- "files": true,
25
- "transpileOnly": false
26
- },
27
- "include": ["lib/*.ts"]
28
- }