picturehouse_uk 4.0.0 → 5.0.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.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +26 -0
  3. data/.github/workflows/release.yml +26 -0
  4. data/.gitignore +1 -0
  5. data/.ruby-version +1 -0
  6. data/CHANGELOG.md +25 -0
  7. data/Rakefile +2 -2
  8. data/lib/picturehouse_uk/cinema.rb +30 -14
  9. data/lib/picturehouse_uk/internal/api.rb +42 -0
  10. data/lib/picturehouse_uk/internal/parser/address.rb +21 -6
  11. data/lib/picturehouse_uk/internal/parser/screenings.rb +85 -133
  12. data/lib/picturehouse_uk/internal/website.rb +10 -12
  13. data/lib/picturehouse_uk/version.rb +2 -2
  14. data/lib/picturehouse_uk.rb +1 -0
  15. data/picturehouse_uk.gemspec +2 -3
  16. data/rake/fixture_creator.rb +21 -1
  17. data/test/fixtures/cinemas.html +4262 -0
  18. data/test/fixtures/duke-of-york-s-picturehouse/cinema.html +6187 -0
  19. data/test/fixtures/duke-of-york-s-picturehouse/get_movies.json +120552 -0
  20. data/test/fixtures/duke-of-york-s-picturehouse/information.html +3725 -0
  21. data/test/fixtures/duke-s-at-komedia/cinema.html +6138 -0
  22. data/test/fixtures/duke-s-at-komedia/get_movies.json +112 -0
  23. data/test/fixtures/duke-s-at-komedia/information.html +3690 -0
  24. data/test/fixtures/home.html +6235 -555
  25. data/test/fixtures/phoenix-picturehouse/cinema.html +6089 -0
  26. data/test/fixtures/phoenix-picturehouse/get_movies.json +120552 -0
  27. data/test/fixtures/phoenix-picturehouse/information.html +3630 -0
  28. data/test/lib/picturehouse_uk/cinema_test.rb +34 -34
  29. data/test/lib/picturehouse_uk/internal/api_test.rb +92 -0
  30. data/test/lib/picturehouse_uk/internal/parser/address_test.rb +8 -8
  31. data/test/lib/picturehouse_uk/internal/parser/screenings_test.rb +99 -45
  32. data/test/lib/picturehouse_uk/internal/title_sanitizer_test.rb +48 -48
  33. data/test/lib/picturehouse_uk/internal/website_test.rb +12 -31
  34. data/test/lib/picturehouse_uk/performance_test.rb +63 -23
  35. data/test/lib/picturehouse_uk/version_test.rb +1 -1
  36. data/test/live/integration_test.rb +8 -8
  37. data/test/support/fake_api.rb +16 -0
  38. data/test/support/fake_website.rb +6 -6
  39. data/test/test_helper.rb +3 -2
  40. metadata +34 -50
  41. data/.travis.yml +0 -8
  42. data/test/fixtures/Duke_Of_Yorks/cinema.html +0 -3408
  43. data/test/fixtures/Duke_Of_Yorks/info.html +0 -556
  44. data/test/fixtures/Duke_Of_Yorks/whats_on.html +0 -3159
  45. data/test/fixtures/Dukes_At_Komedia/cinema.html +0 -4764
  46. data/test/fixtures/Dukes_At_Komedia/info.html +0 -526
  47. data/test/fixtures/Dukes_At_Komedia/whats_on.html +0 -4429
  48. data/test/fixtures/National_Media_Museum/cinema.html +0 -9200
  49. data/test/fixtures/National_Media_Museum/info.html +0 -606
  50. data/test/fixtures/National_Media_Museum/whats_on.html +0 -8850
  51. data/test/fixtures/Phoenix_Picturehouse/cinema.html +0 -8274
  52. data/test/fixtures/Phoenix_Picturehouse/info.html +0 -542
  53. data/test/fixtures/Phoenix_Picturehouse/whats_on.html +0 -7986
@@ -0,0 +1,112 @@
1
+ {
2
+ "response": "success",
3
+ "movies": [
4
+ {
5
+ "Title": "The Holdovers",
6
+ "ScheduledFilmId": "12345",
7
+ "FilmHOCode": "HO00012345",
8
+ "OpeningDate": "2024-01-15",
9
+ "Rating": "15",
10
+ "RunTime": "133",
11
+ "image_url": "https://example.com/holdovers.jpg",
12
+ "image_alt": "The Holdovers poster",
13
+ "TrailerUrl": "https://example.com/trailer",
14
+ "filter_class_names": "drama comedy",
15
+ "show_times": [
16
+ {
17
+ "date_f": "2024-11-01",
18
+ "time": "14:30",
19
+ "SessionId": "789001",
20
+ "ScreenName": "Screen 1",
21
+ "SessionAttributesNames": [],
22
+ "SoldoutStatus": 0
23
+ },
24
+ {
25
+ "date_f": "2024-11-01",
26
+ "time": "17:45",
27
+ "SessionId": "789002",
28
+ "ScreenName": "Screen 1",
29
+ "SessionAttributesNames": ["Subtitled"],
30
+ "SoldoutStatus": 1
31
+ },
32
+ {
33
+ "date_f": "2024-11-01",
34
+ "time": "20:15",
35
+ "SessionId": "789003",
36
+ "ScreenName": "Screen 2",
37
+ "SessionAttributesNames": [],
38
+ "SoldoutStatus": 0
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "Title": "The Marvels 3D",
44
+ "ScheduledFilmId": "12346",
45
+ "FilmHOCode": "HO00012346",
46
+ "OpeningDate": "2024-11-01",
47
+ "Rating": "12A",
48
+ "RunTime": "105",
49
+ "image_url": "https://example.com/marvels.jpg",
50
+ "show_times": [
51
+ {
52
+ "date_f": "2024-11-01",
53
+ "time": "15:00",
54
+ "SessionId": "789004",
55
+ "ScreenName": "Screen 2",
56
+ "SessionAttributesNames": ["3D"],
57
+ "SoldoutStatus": 0
58
+ },
59
+ {
60
+ "date_f": "2024-11-02",
61
+ "time": "18:30",
62
+ "SessionId": "789005",
63
+ "ScreenName": "Screen 1",
64
+ "SessionAttributesNames": ["3D"],
65
+ "SoldoutStatus": 0
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "Title": "Kids Club: Paddington",
71
+ "ScheduledFilmId": "12347",
72
+ "show_times": [
73
+ {
74
+ "date_f": "2024-11-02",
75
+ "time": "11:00",
76
+ "SessionId": "789006",
77
+ "ScreenName": "Screen 1",
78
+ "SessionAttributesNames": ["Kids Club"],
79
+ "SoldoutStatus": 0
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "Title": "Silver Screen: The Great Escaper",
85
+ "ScheduledFilmId": "12348",
86
+ "show_times": [
87
+ {
88
+ "date_f": "2024-11-02",
89
+ "time": "14:00",
90
+ "SessionId": "789007",
91
+ "ScreenName": "Screen 2",
92
+ "SessionAttributesNames": ["Silver Screen"],
93
+ "SoldoutStatus": 0
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ "Title": "NT Live: The Crucible",
99
+ "ScheduledFilmId": "12349",
100
+ "show_times": [
101
+ {
102
+ "date_f": "2024-11-03",
103
+ "time": "19:00",
104
+ "SessionId": "789008",
105
+ "ScreenName": "Screen 1",
106
+ "SessionAttributesNames": ["NT Live"],
107
+ "SoldoutStatus": 0
108
+ }
109
+ ]
110
+ }
111
+ ]
112
+ }