imgix 2.0.0 → 2.1.0

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: c065af1834dc3934c519fffe6ade364cae32993e
4
- data.tar.gz: 96ea6ed38526442c99b6ff62a655ba75f8e44992
3
+ metadata.gz: 2aca4978f5332c3f2df154b78d11ce06a9a0936a
4
+ data.tar.gz: adfa18dbcd36b7604c145774b3303c4da1757f76
5
5
  SHA512:
6
- metadata.gz: c0272a45ae8ce8e0d496c345aa97228807f38aff0858aac459ffae0d1a166222f2dafc608c6e4f6a4bdc605e792795c89aded140fb56f9c38689de54f10868d3
7
- data.tar.gz: 7c56ae3fd51c9d45dc2b37ca5d917ca9e3787e3101b43d169e6948d1437ef23fca425ce81b3d0176cd906125397a342d9c91aa2977531c0c864a4fec25aa93d6
6
+ metadata.gz: 138320aa8a36f436a552cb9fbebd4cd85381ad319a260fc3994e6769c926d871303946bc86a9df2a23f1cd7c9c61d2504ce7a414067a57da29ef061c1f563257
7
+ data.tar.gz: 79d3e0c87dede9a851dcaed577d1069b75855be885fe72bbac210e94001a8ef7962c8c6cb88c1f6991cd3400023355a5b626a9eb18faf0a3f4066c884abe506d
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [2.1.0](https://github.com/imgix/imgix-rb/compare/2.0.0...2.1.0) - May 7, 2019
7
+
8
+ * Deprecate domain sharding ([#43](https://github.com/imgix/imgix-rb/pull/43)) ([#45](https://github.com/imgix/imgix-rb/pull/45))
9
+
6
10
  ## [2.0.0] - February 25, 2019
7
11
 
8
12
  * Add domain validation during Client initialization [#42](https://github.com/imgix/imgix-rb/pull/42)
data/README.md CHANGED
@@ -48,6 +48,8 @@ path.rect(x: 0, y: 50, width: 200, height: 300).to_url # Rect helper
48
48
 
49
49
 
50
50
  ## Domain Sharded URLs
51
+ **Warning: Domain Sharding has been deprecated and will be removed in the next major release**<br>
52
+ To find out more, see our [blog post](https://blog.imgix.com/2019/05/03/deprecating-domain-sharding) explaining the decision to remove this feature.
51
53
 
52
54
  Domain sharding enables you to spread image requests across multiple domains. This allows you to bypass the requests-per-host limits of browsers. We recommend 2-3 domain shards maximum if you are going to use domain sharding.
53
55
 
@@ -13,6 +13,7 @@ module Imgix
13
13
  def initialize(options = {})
14
14
  options = DEFAULTS.merge(options)
15
15
 
16
+ deprecate_warning!(options[:host],options[:hosts])
16
17
  @hosts = Array(options[:host]) + Array(options[:hosts]) and validate_hosts!
17
18
  @secure_url_token = options[:secure_url_token]
18
19
  @api_key = options[:api_key]
@@ -59,7 +60,9 @@ module Imgix
59
60
  end
60
61
 
61
62
  def host_for_cycle
62
- @hosts_cycle = @hosts.cycle unless @hosts_cycle
63
+ if not defined? @hosts_cycle
64
+ @hosts_cycle = @hosts.cycle
65
+ end
63
66
  @hosts_cycle.next
64
67
  end
65
68
 
@@ -82,5 +85,11 @@ module Imgix
82
85
  end
83
86
  end
84
87
 
88
+ def deprecate_warning!(host, hosts)
89
+ has_many_domains = (host.kind_of?(Array) && host.length > 1 ) || (hosts.kind_of?(Array) && hosts.length > 1)
90
+ if has_many_domains
91
+ warn "Warning: Domain sharding has been deprecated and will be removed in the next major version."
92
+ end
93
+ end
85
94
  end
86
95
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Imgix
4
- VERSION = '2.0.0'
4
+ VERSION = '2.1.0'
5
5
  end
@@ -4,67 +4,86 @@ require 'test_helper'
4
4
 
5
5
  class DomainsTest < Imgix::Test
6
6
  def test_deterministically_choosing_a_path
7
- client = Imgix::Client.new(hosts: [
8
- "demos-1.imgix.net",
9
- "demos-2.imgix.net",
10
- "demos-3.imgix.net",
11
- ],
12
- secure_url_token: '10adc394',
13
- include_library_param: false)
14
-
15
- path = client.path('/bridge.png')
16
- assert_equal 'https://demos-1.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
17
-
18
- path = client.path('/flower.png')
19
- assert_equal 'https://demos-2.imgix.net/flower.png?s=02105961388864f85c04121ea7b50e08', path.to_url
7
+ assert_output(nil, "Warning: Domain sharding has been deprecated and will be removed in the next major version.\n"){
8
+ client = Imgix::Client.new(hosts: [
9
+ "demos-1.imgix.net",
10
+ "demos-2.imgix.net",
11
+ "demos-3.imgix.net",
12
+ ],
13
+ secure_url_token: '10adc394',
14
+ include_library_param: false)
15
+
16
+ path = client.path('/bridge.png')
17
+ assert_equal 'https://demos-1.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
18
+
19
+ path = client.path('/flower.png')
20
+ assert_equal 'https://demos-2.imgix.net/flower.png?s=02105961388864f85c04121ea7b50e08', path.to_url
21
+ }
20
22
  end
21
23
 
22
24
  def test_cycling_choosing_domain_in_order
23
- client = Imgix::Client.new(hosts: [
24
- "demos-1.imgix.net",
25
- "demos-2.imgix.net",
26
- "demos-3.imgix.net",
27
- ],
28
- secure_url_token: '10adc394',
29
- shard_strategy: :cycle,
30
- include_library_param: false)
31
-
32
- path = client.path('/bridge.png')
33
- assert_equal 'https://demos-1.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
34
-
35
- path = client.path('/bridge.png')
36
- assert_equal 'https://demos-2.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
37
-
38
- path = client.path('/bridge.png')
39
- assert_equal 'https://demos-3.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
40
-
41
- path = client.path('/bridge.png')
42
- assert_equal 'https://demos-1.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
25
+ assert_output(nil, "Warning: Domain sharding has been deprecated and will be removed in the next major version.\n"){
26
+ client = Imgix::Client.new(hosts: [
27
+ "demos-1.imgix.net",
28
+ "demos-2.imgix.net",
29
+ "demos-3.imgix.net",
30
+ ],
31
+ secure_url_token: '10adc394',
32
+ shard_strategy: :cycle,
33
+ include_library_param: false)
34
+
35
+ path = client.path('/bridge.png')
36
+ assert_equal 'https://demos-1.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
37
+
38
+ path = client.path('/bridge.png')
39
+ assert_equal 'https://demos-2.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
40
+
41
+ path = client.path('/bridge.png')
42
+ assert_equal 'https://demos-3.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
43
+
44
+ path = client.path('/bridge.png')
45
+ assert_equal 'https://demos-1.imgix.net/bridge.png?s=0233fd6de51f20f11cff6b452b7a9a05', path.to_url
46
+ }
43
47
  end
44
48
 
45
49
  def test_with_full_paths
46
- client = Imgix::Client.new(hosts: [
47
- "demos-1.imgix.net",
48
- "demos-2.imgix.net",
49
- "demos-3.imgix.net",
50
- ],
51
- secure_url_token: '10adc394',
52
- shard_strategy: :cycle,
53
- include_library_param: false)
54
-
55
- path = 'https://google.com/cats.gif'
56
- assert_equal "https://demos-1.imgix.net/#{CGI.escape(path)}?s=e686099fbba86fc2b8141d3c1ff60605", client.path(path).to_url
50
+ assert_output(nil, "Warning: Domain sharding has been deprecated and will be removed in the next major version.\n"){
51
+ client = Imgix::Client.new(hosts: [
52
+ "demos-1.imgix.net",
53
+ "demos-2.imgix.net",
54
+ "demos-3.imgix.net",
55
+ ],
56
+ secure_url_token: '10adc394',
57
+ shard_strategy: :cycle,
58
+ include_library_param: false)
59
+
60
+ path = 'https://google.com/cats.gif'
61
+ assert_equal "https://demos-1.imgix.net/#{CGI.escape(path)}?s=e686099fbba86fc2b8141d3c1ff60605", client.path(path).to_url
62
+ }
57
63
  end
58
64
 
59
65
  def test_invalid_domain_append_slash
60
- assert_raises(ArgumentError) {Imgix::Client.new(hosts: ["assets.imgix.net/"])}
66
+ assert_raises(ArgumentError) {Imgix::Client.new(hosts: "assets.imgix.net/")}
61
67
  end
62
68
 
63
69
  def test_invalid_domain_prepend_scheme
64
- assert_raises(ArgumentError) {Imgix::Client.new(hosts: ["https://assets.imgix.net"])}
70
+ assert_raises(ArgumentError) {Imgix::Client.new(hosts: "https://assets.imgix.net")}
65
71
  end
66
72
 
67
73
  def test_invalid_domain_append_dash
68
- assert_raises(ArgumentError) {Imgix::Client.new(hosts: ["assets.imgix.net-"])}
74
+ assert_raises(ArgumentError) {Imgix::Client.new(hosts: "assets.imgix.net-")}
75
+ end
76
+
77
+ def test_domain_sharding_deprecation_host
78
+
79
+ assert_output(nil, "Warning: Domain sharding has been deprecated and will be removed in the next major version.\n"){
80
+ Imgix::Client.new(host: ["assets1.imgix.net", "assets2.imgix.net"])
81
+ }
82
+ end
83
+
84
+ def test_domain_sharding_deprecation_hosts
85
+ assert_output(nil, "Warning: Domain sharding has been deprecated and will be removed in the next major version.\n"){
86
+ Imgix::Client.new(hosts: ["assets1.imgix.net", "assets2.imgix.net"])
87
+ }
69
88
  end
70
89
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imgix
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kelly Sutton
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2019-02-25 00:00:00.000000000 Z
16
+ date: 2019-05-08 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: addressable