picturehouse_uk 3.0.14 → 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 (63) 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 +44 -0
  7. data/LICENSE +617 -0
  8. data/README.md +5 -4
  9. data/Rakefile +12 -0
  10. data/lib/picturehouse_uk/cinema.rb +152 -127
  11. data/lib/picturehouse_uk/internal/api.rb +42 -0
  12. data/lib/picturehouse_uk/internal/parser/address.rb +36 -9
  13. data/lib/picturehouse_uk/internal/parser/screenings.rb +89 -95
  14. data/lib/picturehouse_uk/internal/title_sanitizer.rb +61 -65
  15. data/lib/picturehouse_uk/internal/website.rb +10 -12
  16. data/lib/picturehouse_uk/performance.rb +60 -0
  17. data/lib/picturehouse_uk/version.rb +2 -2
  18. data/lib/picturehouse_uk.rb +3 -4
  19. data/picturehouse_uk.gemspec +5 -7
  20. data/rake/fixture_creator.rb +62 -0
  21. data/test/fixtures/cinemas.html +4262 -0
  22. data/test/fixtures/duke-of-york-s-picturehouse/cinema.html +6187 -0
  23. data/test/fixtures/duke-of-york-s-picturehouse/get_movies.json +120552 -0
  24. data/test/fixtures/duke-of-york-s-picturehouse/information.html +3725 -0
  25. data/test/fixtures/duke-s-at-komedia/cinema.html +6138 -0
  26. data/test/fixtures/duke-s-at-komedia/get_movies.json +112 -0
  27. data/test/fixtures/duke-s-at-komedia/information.html +3690 -0
  28. data/test/fixtures/home.html +6236 -565
  29. data/test/fixtures/phoenix-picturehouse/cinema.html +6089 -0
  30. data/test/fixtures/phoenix-picturehouse/get_movies.json +120552 -0
  31. data/test/fixtures/phoenix-picturehouse/information.html +3630 -0
  32. data/test/lib/picturehouse_uk/cinema_test.rb +113 -142
  33. data/test/lib/picturehouse_uk/internal/api_test.rb +92 -0
  34. data/test/lib/picturehouse_uk/internal/parser/{address_parser_test.rb → address_test.rb} +11 -11
  35. data/test/lib/picturehouse_uk/internal/parser/screenings_test.rb +100 -48
  36. data/test/lib/picturehouse_uk/internal/title_sanitizer_test.rb +48 -48
  37. data/test/lib/picturehouse_uk/internal/website_test.rb +15 -31
  38. data/test/lib/picturehouse_uk/performance_test.rb +197 -0
  39. data/test/lib/picturehouse_uk/version_test.rb +1 -1
  40. data/test/live/integration_test.rb +15 -32
  41. data/test/support/fake_api.rb +16 -0
  42. data/test/support/fake_website.rb +24 -0
  43. data/test/test_helper.rb +13 -2
  44. metadata +52 -67
  45. data/.rdoc_options +0 -16
  46. data/.travis.yml +0 -5
  47. data/lib/picturehouse_uk/film.rb +0 -59
  48. data/lib/picturehouse_uk/screening.rb +0 -70
  49. data/test/fixture_updater.rb +0 -73
  50. data/test/fixtures/cinema/Duke_Of_Yorks.html +0 -2984
  51. data/test/fixtures/cinema/Dukes_At_Komedia.html +0 -5518
  52. data/test/fixtures/cinema/National_Media_Museum.html +0 -10266
  53. data/test/fixtures/cinema/Phoenix_Picturehouse.html +0 -5202
  54. data/test/fixtures/info/Duke_Of_Yorks.html +0 -549
  55. data/test/fixtures/info/Dukes_At_Komedia.html +0 -537
  56. data/test/fixtures/info/Phoenix_Picturehouse.html +0 -553
  57. data/test/fixtures/whats_on/Duke_Of_Yorks.html +0 -2737
  58. data/test/fixtures/whats_on/Dukes_At_Komedia.html +0 -5132
  59. data/test/fixtures/whats_on/National_Media_Museum.html +0 -9690
  60. data/test/fixtures/whats_on/Phoenix_Picturehouse.html +0 -4916
  61. data/test/lib/picturehouse_uk/film_test.rb +0 -141
  62. data/test/lib/picturehouse_uk/screening_test.rb +0 -181
  63. /data/{LICENSE.txt → COMM-LICENSE} +0 -0
@@ -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
+ }