class CineworldUk::Internal::Parser::Api::Film

Parses a hash to produce film information

Attributes

id[R]

the cineworld id for the film

Public Class Methods

new(data) click to toggle source

@param [Hash] data parsed from performances JSON @return [ CineworldUk::Internal::Parser::Api::Film]

# File lib/cineworld_uk/internal/parser/api/film.rb, line 13
def initialize(data)
  @data = data
  @id = @data['edi']
end

Public Instance Methods

dimension() click to toggle source

Do you need your 3D glasses? @return [String] either '2d' or '3d'

# File lib/cineworld_uk/internal/parser/api/film.rb, line 20
def dimension
  @data['format'] =~ /3D/i ? '3d' : '2d'
end
name() click to toggle source

Sanitized film name @return [String]

# File lib/cineworld_uk/internal/parser/api/film.rb, line 26
def name
  TitleSanitizer.new(@data['originalTitle'] || '').sanitized
end
variant() click to toggle source

List of strings representing different kinds of performance, such as autism, kids, imax, members or q&a @return [Array<String>] or an empty array

# File lib/cineworld_uk/internal/parser/api/film.rb, line 33
def variant
  [
    @data['title'] =~ /Autism Friendly/i ? 'autism_friendly' : nil,
    @data.fetch('format', '') =~ /IMAX/i ? 'imax' : nil,
    @data['title'] =~ /Movies for Juniors/i ? 'kids' : nil,
    @data['title'] =~ /Unlimited Screening/i ? 'members' : nil,
    @data['title'] =~ /Q (and|&) A/i ? 'q&a' : nil
  ].compact
end