odeon_uk 5.0.0-x86_64-linux-gnu → 5.1.0-x86_64-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 +4 -4
- data/.github/workflows/release.yml +73 -0
- data/CHANGELOG.md +8 -0
- data/README.md +10 -0
- data/lib/odeon_uk/internal/parser/api/showtime.rb +1 -0
- data/lib/odeon_uk/version.rb +2 -2
- data/odeon_uk.gemspec +1 -1
- data/test/fixtures/api/showtimes-824.json +1 -1
- data/test/lib/odeon_uk/internal/parser/api/showtime_test.rb +10 -1
- data/test/lib/odeon_uk/performance_test.rb +5 -0
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: df7e70ac9101d3179d3cdab3eeab09901467e4aa1b533bf89b58ffb53d8ba68e
|
|
4
|
+
data.tar.gz: 37227f7d72bfe612ba547c9e9f25161eafe3c67a5ca17233f34d02f2cf67c95a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 07045e1494f453f53c7921810000a298c4b111092e9b0057f8fd030af798d4d692d82117f8182464db58c6752ec9c510243ac939284a041f9155f6e0e7fe9e30
|
|
7
|
+
data.tar.gz: 4da28a4096ea2213d61b9e69f84a8427c6472e1365fe4b4ab4b28b6ba1d326f0865eb015aa39e8d149f423e760e9c7f19fb73b22cf7a9df07af8e695106cbf52
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
name: Release Gem
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
package:
|
|
8
|
+
strategy:
|
|
9
|
+
matrix:
|
|
10
|
+
include:
|
|
11
|
+
- runner: ubuntu-latest
|
|
12
|
+
platform: x86_64-linux-gnu
|
|
13
|
+
- runner: ubuntu-24.04-arm
|
|
14
|
+
platform: aarch64-linux-gnu
|
|
15
|
+
- runner: macos-15
|
|
16
|
+
platform: arm64-darwin
|
|
17
|
+
- runner: macos-15-intel
|
|
18
|
+
platform: x86_64-darwin
|
|
19
|
+
runs-on: ${{ matrix.runner }}
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
|
+
- uses: ruby/setup-ruby@v1
|
|
23
|
+
with:
|
|
24
|
+
ruby-version: '4.0'
|
|
25
|
+
bundler-cache: true
|
|
26
|
+
- run: bundle exec rake 'package:native[${{ matrix.platform }}]'
|
|
27
|
+
- run: ODEON_PACKAGE="$(echo pkg/*.gem)" bundle exec ruby test/package_test.rb
|
|
28
|
+
- uses: actions/upload-artifact@v4
|
|
29
|
+
with:
|
|
30
|
+
name: gem-${{ matrix.platform }}
|
|
31
|
+
path: pkg/*.gem
|
|
32
|
+
|
|
33
|
+
release:
|
|
34
|
+
needs: package
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
permissions:
|
|
37
|
+
id-token: write
|
|
38
|
+
contents: write
|
|
39
|
+
steps:
|
|
40
|
+
- uses: actions/checkout@v4
|
|
41
|
+
- uses: ruby/setup-ruby@v1
|
|
42
|
+
with:
|
|
43
|
+
ruby-version: '4.0'
|
|
44
|
+
bundler-cache: true
|
|
45
|
+
- run: bundle exec rake test
|
|
46
|
+
- run: bundle exec rake build
|
|
47
|
+
- uses: actions/download-artifact@v4
|
|
48
|
+
with:
|
|
49
|
+
path: pkg
|
|
50
|
+
pattern: gem-*
|
|
51
|
+
merge-multiple: true
|
|
52
|
+
- uses: rubygems/configure-rubygems-credentials@v1.0.0
|
|
53
|
+
- name: Push the source and platform gems
|
|
54
|
+
run: |
|
|
55
|
+
for gem in pkg/*.gem; do
|
|
56
|
+
if output=$(gem push "$gem" 2>&1); then
|
|
57
|
+
echo "$output"
|
|
58
|
+
elif echo "$output" | grep -q "Repushing of gem versions is not allowed"; then
|
|
59
|
+
echo "Already published: $gem"
|
|
60
|
+
else
|
|
61
|
+
echo "$output"
|
|
62
|
+
exit 1
|
|
63
|
+
fi
|
|
64
|
+
done
|
|
65
|
+
- name: Tag the release
|
|
66
|
+
run: |
|
|
67
|
+
tag="v$(ruby -e 'print Gem::Specification.load(Dir["*.gemspec"].first).version')"
|
|
68
|
+
if git ls-remote --exit-code --tags origin "$tag" >/dev/null; then
|
|
69
|
+
echo "$tag already exists"
|
|
70
|
+
else
|
|
71
|
+
git tag "$tag"
|
|
72
|
+
git push origin "$tag"
|
|
73
|
+
fi
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
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.0 - 2026-10-22
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- `Performance#film_year`, read from a trailing `(1996)` in the title.
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Require cinebase 5.4. Film titles lose their year suffix, `(Re-release)` and Lithuanian markers, `+ ... Q&A` and `+ Discussion` add-ons, `(35mm)`, `(70mm)` and `4K` markers; `Horror Season` and `CFF:` prefixes become festivals.
|
|
12
|
+
|
|
5
13
|
## 5.0.0 - 2026-10-22
|
|
6
14
|
|
|
7
15
|
### Changed
|
data/README.md
CHANGED
|
@@ -122,6 +122,9 @@ performance.dimension
|
|
|
122
122
|
performance.variant
|
|
123
123
|
#=> ['audio_described', 'imax']
|
|
124
124
|
|
|
125
|
+
performance.film_year
|
|
126
|
+
#=> 1996 # from the title, nil when it has no year
|
|
127
|
+
|
|
125
128
|
performance.language
|
|
126
129
|
#=> 'Korean' # audio language, nil when the cinema does not tag one
|
|
127
130
|
|
|
@@ -163,6 +166,13 @@ addresses in the shape of Vista responses, never recorded API output.
|
|
|
163
166
|
checks the fixtures against it and the live suite checks real responses, held
|
|
164
167
|
only in memory. When the API changes, update the shape first, then the fixtures.
|
|
165
168
|
|
|
169
|
+
## Releasing
|
|
170
|
+
|
|
171
|
+
To release, bump the version, merge, then run the **Release Gem** workflow in
|
|
172
|
+
GitHub Actions. It builds the source and four platform gems, publishes them
|
|
173
|
+
through RubyGems trusted publishing (no MFA code needed) and tags the release.
|
|
174
|
+
Versions already on RubyGems are skipped, so a failed run can be rerun.
|
|
175
|
+
|
|
166
176
|
## Contributing
|
|
167
177
|
|
|
168
178
|
1. Fork it
|
|
@@ -40,6 +40,7 @@ module OdeonUk
|
|
|
40
40
|
dimension: @data["requires3dGlasses"] ? "3d" : "2d",
|
|
41
41
|
festival: Cinebase::Festival.from_title(title, year: starting_at.year),
|
|
42
42
|
film_name: film_name,
|
|
43
|
+
film_year: Cinebase::TitleSanitizer.film_year(title),
|
|
43
44
|
language: language,
|
|
44
45
|
starting_at: starting_at,
|
|
45
46
|
variant: variant
|
data/lib/odeon_uk/version.rb
CHANGED
data/odeon_uk.gemspec
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"films": [
|
|
49
49
|
{ "id": "FILM-1", "title": { "text": "The Example Film 3D" } },
|
|
50
50
|
{ "id": "FILM-2", "title": { "text": "Made Up Concert: Live" } },
|
|
51
|
-
{ "id": "FILM-3", "title": { "text": "Imaginary Picture (Tamil)" } },
|
|
51
|
+
{ "id": "FILM-3", "title": { "text": "Imaginary Picture (2025) (Tamil)" } },
|
|
52
52
|
{ "id": "FILM-4", "title": { "text": "Pretend Pups" } }
|
|
53
53
|
],
|
|
54
54
|
"attributes": [
|
|
@@ -3,7 +3,8 @@ require_relative '../../../../../test_helper'
|
|
|
3
3
|
class OdeonUk::Internal::Parser::Api::ShowtimeTest < Minitest::Test
|
|
4
4
|
FILMS = {
|
|
5
5
|
'HO1' => { 'title' => { 'text' => 'Jailer 2 (Tamil)' } },
|
|
6
|
-
'HO2' => { 'title' => { 'text' => 'Cine-Excess 2026: Scum Of The Earth' } }
|
|
6
|
+
'HO2' => { 'title' => { 'text' => 'Cine-Excess 2026: Scum Of The Earth' } },
|
|
7
|
+
'HO3' => { 'title' => { 'text' => 'From Dusk Till Dawn (1996)' } }
|
|
7
8
|
}.freeze
|
|
8
9
|
|
|
9
10
|
ATTRIBUTES = {
|
|
@@ -20,6 +21,7 @@ class OdeonUk::Internal::Parser::Api::ShowtimeTest < Minitest::Test
|
|
|
20
21
|
dimension: '2d',
|
|
21
22
|
festival: nil,
|
|
22
23
|
film_name: 'Jailer 2',
|
|
24
|
+
film_year: nil,
|
|
23
25
|
language: nil,
|
|
24
26
|
starting_at: Time.utc(2026, 10, 24, 17, 30),
|
|
25
27
|
variant: []
|
|
@@ -47,6 +49,13 @@ class OdeonUk::Internal::Parser::Api::ShowtimeTest < Minitest::Test
|
|
|
47
49
|
assert_equal 'Scum Of The Earth', showtime[:film_name]
|
|
48
50
|
end
|
|
49
51
|
|
|
52
|
+
def test_film_year_moves_from_title_to_attribute
|
|
53
|
+
showtime = parse(film_id: 'HO3')
|
|
54
|
+
|
|
55
|
+
assert_equal 1996, showtime[:film_year]
|
|
56
|
+
assert_equal 'From Dusk Till Dawn', showtime[:film_name]
|
|
57
|
+
end
|
|
58
|
+
|
|
50
59
|
def test_open_captions_and_subtitles_are_one_variant
|
|
51
60
|
assert_equal %w(subtitled), parse(attribute_ids: %w(2 4))[:variant]
|
|
52
61
|
end
|
|
@@ -49,6 +49,7 @@ class OdeonUk::PerformanceTest < Minitest::Test
|
|
|
49
49
|
korean = performances[2]
|
|
50
50
|
|
|
51
51
|
assert_equal 'Imaginary Picture', tamil.film_name
|
|
52
|
+
assert_equal 2025, tamil.film_year
|
|
52
53
|
assert_equal 'Tamil', tamil.language
|
|
53
54
|
assert tamil.subtitled?
|
|
54
55
|
assert_equal 'Korean', korean.language
|
|
@@ -110,6 +111,10 @@ class OdeonUk::PerformanceTest < Minitest::Test
|
|
|
110
111
|
assert_equal festival, performance.festival
|
|
111
112
|
end
|
|
112
113
|
|
|
114
|
+
def test_film_year
|
|
115
|
+
assert_equal 1996, OdeonUk::Performance.new(options(film_year: 1996)).film_year
|
|
116
|
+
end
|
|
117
|
+
|
|
113
118
|
def test_subtitled
|
|
114
119
|
assert OdeonUk::Performance.new(options(variant: %w(subtitled))).subtitled?
|
|
115
120
|
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.
|
|
4
|
+
version: 5.1.0
|
|
5
5
|
platform: x86_64-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.
|
|
116
|
+
version: '5.4'
|
|
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.
|
|
123
|
+
version: '5.4'
|
|
124
124
|
description: Pull movie & cinema information from the ODEON Vista API
|
|
125
125
|
email:
|
|
126
126
|
- andy@goodscary.com
|
|
@@ -128,6 +128,7 @@ executables: []
|
|
|
128
128
|
extensions: []
|
|
129
129
|
extra_rdoc_files: []
|
|
130
130
|
files:
|
|
131
|
+
- ".github/workflows/release.yml"
|
|
131
132
|
- ".github/workflows/test.yml"
|
|
132
133
|
- ".gitignore"
|
|
133
134
|
- ".ruby-version"
|