js-routes 1.4.2 → 1.4.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7f2b764ad8b2e830d272dae6c27c5d5ffd7d62ff
4
- data.tar.gz: 0919ef9b1b2b835badcfc149ef2c98b5e9cff8f4
3
+ metadata.gz: e2c1645c670a1b3417f9bac488213b59772d6e8a
4
+ data.tar.gz: c24fc47bafda9d30316f217cc056c40a06400b25
5
5
  SHA512:
6
- metadata.gz: 91aec6308159d5b88096a57ab461bd0f5db939778d3deffc915f846da1deb17e3506837119f8f77eab6d21270f50167da9809ebf6b9183357b7a666fd6bda523
7
- data.tar.gz: 0492743727d0493de6ea1480255659f7cd53efcd289d3a4c78e9d1781c95123afe700d57bb2acda76f6f953a60b5580ae3b65944e4b05e3d08837f2659123aca
6
+ metadata.gz: fae588fedc1ead98cd02f9bee3157d33044f788486137ae261195121bd020169f765fa82d14aced99db170a97c78b54c918f000a369c20f881b928acece283f5
7
+ data.tar.gz: e19c02689bb0c08eaa4ce6a47fb480020f2e00d1fb09daef4ff82593ef7a831fecda97999d817443b42bab8397f50985f239fc693822a0721032ec95621f2540
data/Rakefile CHANGED
@@ -22,6 +22,7 @@ task :default => :spec
22
22
 
23
23
 
24
24
  namespace :spec do
25
+ desc "Print all routes defined in test env"
25
26
  task :routes do
26
27
  require './spec/spec_helper'
27
28
  require 'action_dispatch/routing/inspector'
data/Readme.md CHANGED
@@ -53,7 +53,7 @@ Available options:
53
53
 
54
54
  * `default_url_options` - default parameters used when generating URLs
55
55
  * Option is configurable at JS level with `Routes.configure()`
56
- * Example: {:format => "json", :trailing\_slash => true, :protocol => "https", :host => "example.com", :port => 3000}
56
+ * Example: {:format => "json", :trailing\_slash => true, :protocol => "https", :subdomain => "api", :host => "example.com", :port => 3000}
57
57
  * Default: {}
58
58
  * `exclude` - Array of regexps to exclude from js routes.
59
59
  * Default: []
@@ -37,7 +37,7 @@ class JsRoutes
37
37
  }
38
38
 
39
39
  LAST_OPTIONS_KEY = "options".freeze
40
- FILTERED_DEFAULT_PARTS = [:controller, :action, :subdomain]
40
+ FILTERED_DEFAULT_PARTS = [:controller, :action]
41
41
  URL_OPTIONS = [:protocol, :domain, :host, :port, :subdomain]
42
42
 
43
43
  class Configuration < Struct.new(*DEFAULTS.keys)
@@ -1,3 +1,3 @@
1
1
  class JsRoutes
2
- VERSION = "1.4.2"
2
+ VERSION = "1.4.3"
3
3
  end
@@ -22,7 +22,7 @@ Based on Rails routes of APP_CLASS
22
22
 
23
23
  DeprecatedBehavior = DEPRECATED_BEHAVIOR;
24
24
 
25
- ReservedOptions = ['anchor', 'trailing_slash', 'host', 'port', 'protocol'];
25
+ ReservedOptions = ['anchor', 'trailing_slash', 'subdomain', 'host', 'port', 'protocol'];
26
26
 
27
27
  Utils = {
28
28
  configuration: {
@@ -352,7 +352,7 @@ Based on Rails routes of APP_CLASS
352
352
  return path_fn;
353
353
  },
354
354
  route_url: function(route_defaults) {
355
- var hostname, port, protocol;
355
+ var hostname, port, protocol, subdomain;
356
356
  if (typeof route_defaults === 'string') {
357
357
  return route_defaults;
358
358
  }
@@ -360,10 +360,11 @@ Based on Rails routes of APP_CLASS
360
360
  if (!hostname) {
361
361
  return '';
362
362
  }
363
+ subdomain = route_defaults.subdomain ? route_defaults.subdomain + '.' : '';
363
364
  protocol = route_defaults.protocol || Utils.current_protocol();
364
365
  port = route_defaults.port || (!route_defaults.host ? Utils.current_port() : void 0);
365
366
  port = port ? ":" + port : '';
366
- return protocol + "://" + hostname + port;
367
+ return protocol + "://" + subdomain + hostname + port;
367
368
  },
368
369
  has_location: function() {
369
370
  return (typeof window !== "undefined" && window !== null ? window.location : void 0) != null;
@@ -15,6 +15,7 @@ DeprecatedBehavior = DEPRECATED_BEHAVIOR
15
15
  ReservedOptions = [
16
16
  'anchor'
17
17
  'trailing_slash'
18
+ 'subdomain'
18
19
  'host'
19
20
  'port'
20
21
  'protocol'
@@ -281,11 +282,12 @@ Utils =
281
282
 
282
283
  return '' unless hostname
283
284
 
285
+ subdomain = if route_defaults.subdomain then route_defaults.subdomain + '.' else ''
284
286
  protocol = route_defaults.protocol || Utils.current_protocol()
285
287
  port = route_defaults.port || (Utils.current_port() unless route_defaults.host)
286
288
  port = if port then ":#{port}" else ''
287
289
 
288
- protocol + "://" + hostname + port
290
+ protocol + "://" + subdomain + hostname + port
289
291
 
290
292
  has_location: -> window?.location?
291
293
 
@@ -349,8 +349,8 @@ describe JsRoutes, "options" do
349
349
  expect(evaljs("Routes.sso_url()")).to eq("http://sso.example.com:3000" + test_routes.sso_path)
350
350
  end
351
351
 
352
- it "does not override port when specified in route" do
353
- expect(evaljs("Routes.portals_url()")).to eq("http://example.com:8080#{test_routes.portals_path}")
352
+ it "does not override parts when specified in route" do
353
+ expect(evaljs("Routes.secret_root_url()")).to eq(test_routes.secret_root_url)
354
354
  end
355
355
  end
356
356
 
@@ -358,9 +358,6 @@ describe JsRoutes, "options" do
358
358
  let(:_options) { { :camel_case => true, :url_links => true, :default_url_options => {:host => "example.com"} } }
359
359
  it "should generate path and url links" do
360
360
  expect(evaljs("Routes.inboxUrl(1)")).to eq("http://example.com#{test_routes.inbox_path(1)}")
361
- expect(evaljs("Routes.newSessionUrl()")).to eq("https://example.com#{test_routes.new_session_path}")
362
- expect(evaljs("Routes.ssoUrl()")).to eq(test_routes.sso_url)
363
- expect(evaljs("Routes.portalsUrl()")).to eq("http://example.com:8080#{test_routes.portals_path}")
364
361
  end
365
362
  end
366
363
 
@@ -368,9 +365,6 @@ describe JsRoutes, "options" do
368
365
  let(:_options) { { :prefix => "/api", :url_links => true, :default_url_options => {:host => 'example.com'} } }
369
366
  it "should generate path and url links" do
370
367
  expect(evaljs("Routes.inbox_url(1)")).to eq("http://example.com/api#{test_routes.inbox_path(1)}")
371
- expect(evaljs("Routes.new_session_url()")).to eq("https://example.com/api#{test_routes.new_session_path}")
372
- expect(evaljs("Routes.sso_url()")).to eq("http://sso.example.com/api#{test_routes.sso_path}")
373
- expect(evaljs("Routes.portals_url()")).to eq("http://example.com:8080/api#{test_routes.portals_path}")
374
368
  end
375
369
  end
376
370
 
@@ -378,9 +372,6 @@ describe JsRoutes, "options" do
378
372
  let(:_options) { { :compact => true, :url_links => true, :default_url_options => {:host => 'example.com'} } }
379
373
  it "does not affect url helpers" do
380
374
  expect(evaljs("Routes.inbox_url(1)")).to eq("http://example.com#{test_routes.inbox_path(1)}")
381
- expect(evaljs("Routes.new_session_url()")).to eq("https://example.com#{test_routes.new_session_path}")
382
- expect(evaljs("Routes.sso_url()")).to eq(test_routes.sso_url)
383
- expect(evaljs("Routes.portals_url()")).to eq("http://example.com:8080#{test_routes.portals_path}")
384
375
  end
385
376
  end
386
377
  end
@@ -408,20 +399,27 @@ describe JsRoutes, "options" do
408
399
  expect(evaljs("Routes.inbox_url(1)")).to eq("http://current.example.com#{test_routes.inbox_path(1)}")
409
400
  expect(evaljs("Routes.inbox_url(1, { test_key: \"test_val\" })")).to eq("http://current.example.com#{test_routes.inbox_path(1, :test_key => "test_val")}")
410
401
  expect(evaljs("Routes.new_session_url()")).to eq("https://current.example.com#{test_routes.new_session_path}")
411
- expect(evaljs("Routes.sso_url()")).to eq("http://sso.example.com#{test_routes.sso_path}")
412
402
 
413
403
  end
414
404
 
405
+ it "doesn't use current when specified in the route" do
406
+ expect(evaljs("Routes.sso_url()")).to eq(test_routes.sso_url)
407
+ end
408
+
415
409
  it "uses host option as an argument" do
416
- expect(evaljs("Routes.portals_url({host: 'another.com'})")).to eq(test_routes.portals_url(host: 'another.com'))
410
+ expect(evaljs("Routes.secret_root_url({host: 'another.com'})")).to eq(test_routes.secret_root_url(host: 'another.com'))
417
411
  end
418
412
 
419
413
  it "uses port option as an argument" do
420
- expect(evaljs("Routes.portals_url({host: 'localhost', port: 8080})")).to eq(test_routes.portals_url(host: 'localhost', port: 8080))
414
+ expect(evaljs("Routes.secret_root_url({host: 'localhost', port: 8080})")).to eq(test_routes.secret_root_url(host: 'localhost', port: 8080))
421
415
  end
422
416
 
423
417
  it "uses protocol option as an argument" do
424
- expect(evaljs("Routes.portals_url({host: 'localhost', protocol: 'https'})")).to eq(test_routes.portals_url(protocol: 'https', host: 'localhost'))
418
+ expect(evaljs("Routes.secret_root_url({host: 'localhost', protocol: 'https'})")).to eq(test_routes.secret_root_url(protocol: 'https', host: 'localhost'))
419
+ end
420
+
421
+ it "uses subdomain option as an argument" do
422
+ expect(evaljs("Routes.secret_root_url({subdomain: 'custom'})")).to eq(test_routes.secret_root_url(subdomain: 'custom'))
425
423
  end
426
424
  end
427
425
  end
@@ -107,7 +107,7 @@ RSpec.configure do |config|
107
107
  value.to_h.map do |k,v|
108
108
  [k, inspectify(v)]
109
109
  end.to_h
110
- when String, nil, Fixnum, FalseClass, TrueClass
110
+ when String, nil, Integer, FalseClass, TrueClass
111
111
  value
112
112
  else
113
113
  raise "wtf #{value.class}?"
@@ -8,25 +8,24 @@ def draw_routes
8
8
 
9
9
  get 'support(/page/:page)', to: BlogEngine::Engine, as: 'support'
10
10
 
11
- resources :inboxes do
12
- resources :messages do
13
- resources :attachments
11
+ resources :inboxes, only: [:index, :show] do
12
+ resources :messages, only: [:index, :show] do
13
+ resources :attachments, only: [:new, :show]
14
14
  end
15
15
  end
16
16
 
17
17
  root :to => "inboxes#index"
18
18
 
19
19
  namespace :admin do
20
- resources :users
20
+ resources :users, only: [:index]
21
21
  end
22
22
 
23
23
  scope "/returns/:return" do
24
- resources :objects
24
+ resources :objects, only: [:show]
25
25
  end
26
- resources :returns
27
26
 
28
27
  scope "(/optional/:optional_id)" do
29
- resources :things
28
+ resources :things, only: [:show, :index]
30
29
  end
31
30
 
32
31
  get "(/sep1/:first_optional)/sep2/:second_required/sep3/:third_required(/:forth_optional)",
@@ -51,11 +50,11 @@ def draw_routes
51
50
  get '/привет' => "foo#foo", :as => :hello
52
51
  get '(/o/:organization)/search/:q' => "foo#foo", as: :search
53
52
 
54
- resources :sessions, :only => [:new, :create, :destroy], :protocol => 'https'
55
-
53
+ resources :sessions, :only => [:new, :create], :protocol => 'https'
56
54
  get '/' => 'sso#login', host: 'sso.example.com', as: :sso
55
+ get "/" => "a#b", subdomain: 'www', host: 'example.com', port: 88, as: :secret_root
57
56
 
58
- resources :portals, :port => 8080
57
+ resources :portals, :port => 8080, only: [:index]
59
58
 
60
59
  get '/with_defaults' => 'foo#foo', defaults: { bar: 'tested', format: :json }, format: :true
61
60
 
@@ -63,7 +62,7 @@ def draw_routes
63
62
  get "/purchases" => "purchases#index"
64
63
  end
65
64
 
66
- resources :budgies do
65
+ resources :budgies, only: [:show, :index] do
67
66
  get "descendents"
68
67
  end
69
68
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js-routes
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdan Gusiev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-22 00:00:00.000000000 Z
11
+ date: 2017-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -202,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
202
202
  version: '0'
203
203
  requirements: []
204
204
  rubyforge_project:
205
- rubygems_version: 2.6.7
205
+ rubygems_version: 2.6.14
206
206
  signing_key:
207
207
  specification_version: 4
208
208
  summary: Brings Rails named routes to javascript