js-routes 2.2.8 → 2.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -9
- data/Readme.md +60 -45
- data/lib/js_routes/configuration.rb +80 -34
- data/lib/js_routes/engine.rb +2 -0
- data/lib/js_routes/generators/base.rb +19 -0
- data/lib/js_routes/generators/middleware.rb +6 -8
- data/lib/js_routes/generators/webpacker.rb +1 -3
- data/lib/js_routes/instance.rb +50 -15
- data/lib/js_routes/middleware.rb +16 -3
- data/lib/js_routes/route.rb +60 -17
- data/lib/js_routes/types.rb +38 -0
- data/lib/js_routes/version.rb +2 -1
- data/lib/js_routes.rb +25 -7
- metadata +28 -45
- data/.document +0 -5
- data/.eslintrc.js +0 -15
- data/.github/workflows/ci.yml +0 -36
- data/.gitignore +0 -65
- data/.nvmrc +0 -1
- data/.rspec +0 -1
- data/Appraisals +0 -17
- data/Gemfile +0 -4
- data/Rakefile +0 -37
- data/VERSION_2_UPGRADE.md +0 -66
- data/gemfiles/rails50_sprockets_3.gemfile +0 -8
- data/gemfiles/rails51_sprockets_3.gemfile +0 -8
- data/gemfiles/rails52_sprockets_3.gemfile +0 -8
- data/gemfiles/rails70_sprockets_4.gemfile +0 -8
- data/js-routes.gemspec +0 -39
- data/package.json +0 -38
- data/spec/dummy/app/assets/config/manifest.js +0 -2
- data/spec/dummy/app/assets/javascripts/.gitkeep +0 -0
- data/spec/dummy/config/routes.rb +0 -55
- data/spec/js_routes/default_serializer_spec.rb +0 -31
- data/spec/js_routes/module_types/amd_spec.rb +0 -35
- data/spec/js_routes/module_types/cjs_spec.rb +0 -15
- data/spec/js_routes/module_types/dts/routes.spec.d.ts +0 -115
- data/spec/js_routes/module_types/dts/test.spec.ts +0 -56
- data/spec/js_routes/module_types/dts_spec.rb +0 -111
- data/spec/js_routes/module_types/esm_spec.rb +0 -45
- data/spec/js_routes/module_types/nil_spec.rb +0 -87
- data/spec/js_routes/module_types/umd_spec.rb +0 -85
- data/spec/js_routes/options_spec.rb +0 -508
- data/spec/js_routes/rails_routes_compatibility_spec.rb +0 -473
- data/spec/js_routes/route_specification_spec.rb +0 -37
- data/spec/js_routes/zzz_sprockets_spec.rb +0 -152
- data/spec/spec_helper.rb +0 -135
- data/spec/support/routes.rb +0 -81
- data/spec/tsconfig.json +0 -4
- data/tsconfig.json +0 -28
- 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
|
data/spec/support/routes.rb
DELETED
@@ -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
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
|
-
}
|