odeon_uk 5.1.0-aarch64-linux-gnu → 5.1.1-aarch64-linux-gnu

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
  SHA256:
3
- metadata.gz: f2667e067d60af6c182066d8d41da988cddb7b9cdff768ff038c58ecd9238754
4
- data.tar.gz: 1ff40dc959caf95b8b8cba5c24dfeb3679f2c11603fe32f325c1ec66ac3b1a2f
3
+ metadata.gz: b5a94d85e78d82fcdf946a593e322d2298aa56dc5306d007890b8464e4ab4b07
4
+ data.tar.gz: ed5fe47b76aea7d19069d494b3ebf37ff5c3eac94f7059ff2c0bfe103769aeb5
5
5
  SHA512:
6
- metadata.gz: 55a0428be96e735944c7b6ce36abb43cb173e6aaf148d6485c2842d58675af02bb334be1b2a6735ba50b02f2c1250d03f491eee79da737da1849c46a6c43dc0c
7
- data.tar.gz: 50661d5ea866f07b1707e40622014c5c47ede1511710ed5f2f79aac1c983aa2504099eafa2df9a71f14ef7a4d278f683e9809620bdf311786bfc8345c041b8a1
6
+ metadata.gz: 0164e6e55c6b9775df18c9e5c97be95eb928aadd1fd203e814d666629b44514fddf80ddc04ea61a6a54f5d91ad19db1646c226ebe1d90cedc6a949438b156d97
7
+ data.tar.gz: 2528a86fbce3b73674c62bb679da7da3d5480239a0f36704bdcb1fddd841fddec7bce839b44677700878aeac8b74467626e532d2a6673fce54a8b8b1c69d04e9
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ## 5.1.1 - 2026-10-22
6
+
7
+ ### Changed
8
+ - Reuse one Vista client, and so one kept-alive connection, for all requests until the token changes, instead of opening a TLS connection for every request. Requires cinebase 5.5.
9
+
5
10
  ## 5.1.0 - 2026-10-22
6
11
 
7
12
  ### Added
@@ -27,9 +27,15 @@ module OdeonUk
27
27
 
28
28
  private
29
29
 
30
+ # One client keeps one connection open, so reuse it until the token changes.
30
31
  def client
31
- Cinebase::Vista::Client.new(base_url: BASE_URL, region_code: REGION_CODE,
32
- token: OdeonUk.token)
32
+ token = OdeonUk.token
33
+ if @client.nil? || @client_token != token
34
+ @client_token = token
35
+ @client = Cinebase::Vista::Client.new(base_url: BASE_URL, region_code: REGION_CODE,
36
+ token: token)
37
+ end
38
+ @client
33
39
  end
34
40
  end
35
41
  end
@@ -1,6 +1,6 @@
1
1
  # Ruby interface for https://www.odeon.co.uk
2
- # @version 5.1.0
2
+ # @version 5.1.1
3
3
  module OdeonUk
4
4
  # Gem version
5
- VERSION = '5.1.0'.freeze
5
+ VERSION = '5.1.1'.freeze
6
6
  end
data/odeon_uk.gemspec CHANGED
@@ -27,5 +27,5 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'simplecov', '< 1'
28
28
  spec.add_development_dependency 'webmock'
29
29
 
30
- spec.add_runtime_dependency 'cinebase', '~> 5.4'
30
+ spec.add_runtime_dependency 'cinebase', '~> 5.5'
31
31
  end
@@ -58,8 +58,36 @@ class OdeonUk::Internal::ApiResponseTest < Minitest::Test
58
58
  assert_equal 'Vista HTTP error 500', error.message
59
59
  end
60
60
 
61
+ def test_reuses_one_client_while_the_token_holds
62
+ stub_request(:get, "#{BASE_URL}/sites").to_return(status: 200, body: sites_json)
63
+ shared = api
64
+
65
+ assert_equal 1, count_clients { 3.times { shared.sites } }
66
+ end
67
+
68
+ def test_builds_a_new_client_for_a_new_token
69
+ stub_request(:get, "#{BASE_URL}/sites").to_return(status: 200, body: sites_json)
70
+ shared = api
71
+
72
+ clients = count_clients do
73
+ shared.sites
74
+ OdeonUk.token = 'renewed-jwt'
75
+ shared.sites
76
+ end
77
+
78
+ assert_equal 2, clients
79
+ end
80
+
61
81
  private
62
82
 
83
+ def count_clients
84
+ clients = 0
85
+ original = Cinebase::Vista::Client.method(:new)
86
+ counting = ->(**options) { clients += 1; original.call(**options) }
87
+ Cinebase::Vista::Client.stub(:new, counting) { yield }
88
+ clients
89
+ end
90
+
63
91
  def api
64
92
  OdeonUk::Internal::ApiResponse.new
65
93
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: odeon_uk
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.0
4
+ version: 5.1.1
5
5
  platform: aarch64-linux-gnu
6
6
  authors:
7
7
  - Andy Croll
@@ -113,14 +113,14 @@ dependencies:
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '5.4'
116
+ version: '5.5'
117
117
  type: :runtime
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '5.4'
123
+ version: '5.5'
124
124
  description: Pull movie & cinema information from the ODEON Vista API
125
125
  email:
126
126
  - andy@goodscary.com