js-routes 1.4.0 → 1.4.1

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: da4a6b84210ad4604692606b4ea0e5c79fc9ee7a
4
- data.tar.gz: 342a9ab0a4b396aef730e88af2abc782d64db743
3
+ metadata.gz: 50875d687cd46f55c34450970c84faddd4ff970c
4
+ data.tar.gz: cb98a4d6b4feb6a3cb60631c22dc8ac4e7638c10
5
5
  SHA512:
6
- metadata.gz: 34511f3806f9985f569cfca45ead8e4766be104912d851c9e48ffb4ef2b0d25cb0df17d7eeac42c0d681aa847ab72324c4cb4a4046b63d7ad4dfc1ca51ecc915
7
- data.tar.gz: 905284b66bb0e6f8889a6fee1bdbbd521012990d0d69186ccd13b651e10d0a0a202e8b34493290fb1cdc94844d31e087d7883907d75ab95fe6f5d8186446c2cb
6
+ metadata.gz: c49eefb28fc5ad6edb1378b4718397c7996b6f9f7b356a53336c8becfa4d162af71a3dc4606a2fc2a04f958e4b2eec70adbdbcad642e130f662842422edd1357
7
+ data.tar.gz: 49f4bb3f3988f61e7853d7a392b902212715bd3f537cd9bbf3c51b72f8781ee3c9a9d5d9ded33989be35e2269c948f9274caf0f59bc54bb21f207fce33814a7a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## master
2
2
 
3
+ ## v1.4.1
4
+
5
+ * Fixed bug when js-routes is used in envs without window.location #224
6
+
7
+
8
+ ## v1.4.0
9
+
3
10
  * __breaking change!__ Implemented Routes.config() and Routes.configure instead of Routes.defaults
4
11
 
5
12
  New methods support 4 options at the moment:
@@ -11,7 +18,7 @@ Routes.configuration(); // =>
11
18
  prefix: "",
12
19
  default_url_options: {},
13
20
  special_options_key: '_options',
14
- custom_serializer: function(...) { ... }
21
+ serializer: function(...) { ... }
15
22
  }
16
23
  */
17
24
 
@@ -19,7 +26,7 @@ Routes.configure({
19
26
  prefix: '/app',
20
27
  default_url_options: {format: 'json'},
21
28
  special_options_key: '_my_options_key',
22
- custom_serializer: function(...) { ... }
29
+ serializer: function(...) { ... }
23
30
  });
24
31
  ```
25
32
 
@@ -1,3 +1,3 @@
1
1
  class JsRoutes
2
- VERSION = "1.4.0"
2
+ VERSION = "1.4.1"
3
3
  end
data/lib/routes.js CHANGED
@@ -356,14 +356,17 @@ Based on Rails routes of APP_CLASS
356
356
  if (typeof route_defaults === 'string') {
357
357
  return route_defaults;
358
358
  }
359
+ hostname = route_defaults.host || Utils.current_host();
360
+ if (!hostname) {
361
+ return '';
362
+ }
359
363
  protocol = route_defaults.protocol || Utils.current_protocol();
360
- hostname = route_defaults.host || window.location.hostname;
361
364
  port = route_defaults.port || (!route_defaults.host ? Utils.current_port() : void 0);
362
365
  port = port ? ":" + port : '';
363
366
  return protocol + "://" + hostname + port;
364
367
  },
365
368
  has_location: function() {
366
- return typeof window !== 'undefined' && typeof window.location !== 'undefined';
369
+ return (typeof window !== "undefined" && window !== null ? window.location : void 0) != null;
367
370
  },
368
371
  current_host: function() {
369
372
  if (this.has_location()) {
data/lib/routes.js.coffee CHANGED
@@ -276,16 +276,18 @@ Utils =
276
276
 
277
277
  route_url: (route_defaults) ->
278
278
  return route_defaults if typeof route_defaults == 'string'
279
+
280
+ hostname = route_defaults.host || Utils.current_host()
281
+
282
+ return '' unless hostname
283
+
279
284
  protocol = route_defaults.protocol || Utils.current_protocol()
280
- hostname = route_defaults.host || window.location.hostname
281
285
  port = route_defaults.port || (Utils.current_port() unless route_defaults.host)
282
286
  port = if port then ":#{port}" else ''
283
287
 
284
288
  protocol + "://" + hostname + port
285
289
 
286
-
287
- has_location: ->
288
- typeof window != 'undefined' && typeof window.location != 'undefined'
290
+ has_location: -> window?.location?
289
291
 
290
292
  current_host: ->
291
293
  if @has_location() then window.location.hostname else null
@@ -425,6 +425,17 @@ describe JsRoutes, "options" do
425
425
  end
426
426
  end
427
427
  end
428
+
429
+ context 'when window.location is not present' do
430
+ context 'without specifying a default host' do
431
+ let(:_options) { { url_links: true } }
432
+
433
+ it 'generates path' do
434
+ expect(evaljs("Routes.inbox_url(1)")).to eq test_routes.inbox_path(1)
435
+ expect(evaljs("Routes.new_session_url()")).to eq test_routes.new_session_path
436
+ end
437
+ end
438
+ end
428
439
  end
429
440
 
430
441
  describe "when the compact mode is enabled" do
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.0
4
+ version: 1.4.1
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-08-17 00:00:00.000000000 Z
11
+ date: 2017-09-05 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.11
206
206
  signing_key:
207
207
  specification_version: 4
208
208
  summary: Brings Rails named routes to javascript