Sha256: 120501d334da266dcfa84706cb509e37a01916cd2a6aee72ac76f8a1b4c22a3a

Contents?: true

Size: 973 Bytes

Versions: 6

Compression:

Stored size: 973 Bytes

Contents

module CineworldUk
  # @api private
  module Internal
    module Parser
      module Api
        # Parses a string to derive address
        class FilmLookup
          # @return [Hash{Integer => CineworldUk::Internal::Parser::Api::Film}]
          # contains all films & upcoming films keyed by id
          def to_hash
            @to_hash ||= all_films.each_with_object({}) do |item, lookup|
              next if item['edi'].nil?
              lookup[item['edi']] = Film.new(item)
            end
          end

          private

          def all_films
            films_data + comingsoon_data
          end

          def api
            @api ||= CineworldUk::Internal::ApiResponse.new
          end

          def comingsoon_data
            @comingsoon_data ||= JSON.parse(api.film_list_comingsoon)['films']
          end

          def films_data
            @films_data ||= JSON.parse(api.film_list)['films']
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cineworld_uk-3.1.0 lib/cineworld_uk/internal/parser/api/film_lookup.rb
cineworld_uk-3.0.4 lib/cineworld_uk/internal/parser/api/film_lookup.rb
cineworld_uk-3.0.3 lib/cineworld_uk/internal/parser/api/film_lookup.rb
cineworld_uk-3.0.2 lib/cineworld_uk/internal/parser/api/film_lookup.rb
cineworld_uk-3.0.1 lib/cineworld_uk/internal/parser/api/film_lookup.rb
cineworld_uk-3.0.0 lib/cineworld_uk/internal/parser/api/film_lookup.rb