cineworld_uk 4.4.0 → 4.5.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
  SHA256:
3
- metadata.gz: 4e62d1334bdbbf8245b15cf2ad3558bc2fa7c73bc6da75833fdb5ab81a07268c
4
- data.tar.gz: 238ce901634b7fc73d9767e485d9efe56492ebe3499d2a33d769c954b9ea7824
3
+ metadata.gz: 32a0468747af4cbd358050fab82f72bc3a2147622c17b27ca3d475e1e5b78c23
4
+ data.tar.gz: ce49438db281702eee0e8b5639b6481b9b04e02f7aa9cd3622a8a5587dd704a3
5
5
  SHA512:
6
- metadata.gz: 8698e79bb8ea23e6684ded3d576843433eed8feda63c57f11fe6e5ac76956987052bf4f241b90e5d4594a969b998f71c32600b656e5441e2ff026d332263b88f
7
- data.tar.gz: 17a48259e1314d2a30a728aad1bed0f4c00d536901e6296cdfe7f8b3626e07bbc817393d8b02a33d5028fb978ff8a0dc88e8f531637c37ac68360592015d7e74
6
+ metadata.gz: 9fdd4db3f76e45a60194458d367483038406309d776725784f0c6f7e84ffbbce080f62b50c28941ef84ebf08af556cf6fdf1fb9ffb04b78e591a788e273f7d24
7
+ data.tar.gz: b831436d5a8f9dd5136abccd85c38550b7bff564378b387a2a7f2d4d629a1a2340d310fe7dedc09886f3563a09ab6e7a58bbc6789e13706eb0882d706f30109d
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
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
+ ## [4.5.0] - 2026-11-03
6
+
7
+ ### Changed
8
+ - Uses cinebase 5.9: performances take the raw `title:`, so audience labels become variants, and series prefixes such as `Met Opera:` become the performance's `event`.
9
+ - National Theatre Live screenings are named `National Theatre Live: `, not `National Theatre: `, before cinebase moves the series to `event`.
10
+
11
+ ### Fixed
12
+ - `Met Opera - Cosi Fan Tutte (Mozart)` is now `Cosi Fan Tutte`: a Met Opera title loses a trailing bracketed composer.
13
+
5
14
  ## 4.4.0 - 2026-10-31
6
15
 
7
16
  ### Added
data/cineworld_uk.gemspec CHANGED
@@ -25,6 +25,6 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency 'simplecov', '< 1'
26
26
  spec.add_development_dependency 'webmock'
27
27
 
28
- spec.add_runtime_dependency 'cinebase', '~> 5.6'
28
+ spec.add_runtime_dependency 'cinebase', '~> 5.9'
29
29
  spec.add_runtime_dependency 'nokogiri', '>= 1.11'
30
30
  end
@@ -24,21 +24,25 @@ module CineworldUk
24
24
  # @param [Integer] year edition when the title gives none
25
25
  # @return [Cinebase::Festival, nil]
26
26
  def festival(year)
27
- Cinebase::Festival.from_title(@data['name'] || '', year: year)
27
+ Cinebase::Festival.from_title(title, year: year)
28
28
  end
29
29
 
30
30
  # @return [Integer, nil] the year at the end of the title
31
31
  def film_year
32
- Cinebase::TitleSanitizer.film_year(@data['name'] || '')
32
+ Cinebase::TitleSanitizer.film_year(title)
33
33
  end
34
34
 
35
35
  # Sanitized film name
36
36
  # @return [String]
37
37
  def name
38
- title = @data['name'] || ''
39
38
  TitleSanitizer.new(title).sanitized
40
39
  end
41
40
 
41
+ # @return [String] the title as listed
42
+ def title
43
+ @data['name'] || ''
44
+ end
45
+
42
46
  # List of strings representing different kinds of performance, such
43
47
  # as autism, kids, imax, members or q&a
44
48
  # @return [Array<String>] or an empty array
@@ -34,7 +34,8 @@ module CineworldUk
34
34
  'SciScreen: ', # SciScreen
35
35
  /\s(-\s)*(With)*\sLive Q And A/i, # Live Q&A
36
36
  /(\s+\-\s+)?MOVIES FOR JUNIORS/i, # movies for juniors
37
- %r{\s20\d{2}[\/-]20\d{2} Season\b}
37
+ %r{\s20\d{2}[\/-]20\d{2} Season\b},
38
+ /\A(?i:Met Opera)\b.*\K\s*\(\p{Lu}[\p{L}-]+\)\z/ # Met Opera composer
38
39
  ] + COMMON_REMOVE
39
40
  end
40
41
 
@@ -87,6 +87,7 @@ module CineworldUk
87
87
  film_year: film.film_year,
88
88
  language: performance.language,
89
89
  starting_at: starting_at,
90
+ title: film.title,
90
91
  variant: (performance.variant + film.variant).sort
91
92
  }
92
93
  end
@@ -1,6 +1,6 @@
1
1
  # Ruby interface for http://www.cineworld.co.uk
2
- # @version 4.4.0
2
+ # @version 4.5.0
3
3
  module CineworldUk
4
4
  # Gem version
5
- VERSION = "4.4.0".freeze
5
+ VERSION = "4.5.0".freeze
6
6
  end
@@ -42,17 +42,21 @@ class CineworldUk::Internal::TitleSanitizerTest < Minitest::Test
42
42
  assert_sanitized 'Met Opera: Le Nozze Di Figaro', 'MET Opera - Le Nozze Di Figaro'
43
43
  end
44
44
 
45
+ def test_met_opera_drops_composer
46
+ assert_sanitized 'Met Opera: Cosi Fan Tutte', 'Met Opera - Cosi Fan Tutte (Mozart)'
47
+ end
48
+
45
49
  def test_nt_live_encore
46
- assert_sanitized 'National Theatre: Frankenstein (starring Benedict Cumberbatch)',
50
+ assert_sanitized 'National Theatre Live: Frankenstein (starring Benedict Cumberbatch)',
47
51
  'NT Live Encore: Frankenstein (starring Benedict Cumberbatch)'
48
52
  end
49
53
 
50
54
  def test_nt_live
51
- assert_sanitized 'National Theatre: Treasure Island', 'NT Live: Treasure Island'
55
+ assert_sanitized 'National Theatre Live: Treasure Island', 'NT Live: Treasure Island'
52
56
  end
53
57
 
54
58
  def test_nt_live_with_encore_suffix
55
- assert_sanitized 'National Theatre: A Streetcar Named Desire (Young Vic)',
59
+ assert_sanitized 'National Theatre Live: A Streetcar Named Desire (Young Vic)',
56
60
  'NT Live: A Streetcar Named Desire (Young Vic) - Encore'
57
61
  end
58
62
 
@@ -70,6 +70,16 @@ class CineworldUk::PerformanceTest < Minitest::Test
70
70
  assert_equal Cinebase::Festival.new(name: 'Cine-Excess', year: 2026), performance.festival
71
71
  end
72
72
 
73
+ def test_at_names_event_from_title
74
+ stub_showtimes(DATE, showtimes_json.sub('The Example Film', 'Met Opera - Cosi Fan Tutte (Mozart)'))
75
+ performance = CineworldUk::Performance.at(14, from: DATE, to: DATE).first
76
+
77
+ assert_equal 'Met Opera - Cosi Fan Tutte (Mozart)', performance.title
78
+ assert_equal 'Cosi Fan Tutte', performance.film_name
79
+ assert_equal Cinebase::Event.new(name: 'Met Opera'), performance.event
80
+ assert_equal %w(arts audio_described), performance.variant
81
+ end
82
+
73
83
  def test_at_parses_format_and_film_year
74
84
  performance = performances_on_date[5]
75
85
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cineworld_uk
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.0
4
+ version: 4.5.0
5
5
  platform: ruby
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.6'
116
+ version: '5.9'
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.6'
123
+ version: '5.9'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: nokogiri
126
126
  requirement: !ruby/object:Gem::Requirement