Sha256: d2797cfdcf752f0927a4f2d433c3ee133a0037a9c4436eaa65a6ddb77759da61
Contents?: true
Size: 1.52 KB
Versions: 30
Compression:
Stored size: 1.52 KB
Contents
module Rubicure # Precure All Stars Movie # # this is record of "config/movies.yml" class Movie < Hash include Hashie::Extensions::MethodAccess class << self # @return [Array<Symbol>] def names config.keys end # @return [Array<Symbol>] def uniq_names uniq_names = [] config.each do |name, series| uniq_names << name unless uniq_names.any? { |uniq_name| config[uniq_name][:title] == series[:title] } end uniq_names end # @return [Hash] content of config/movies.yml def config unless @config config_file = "#{File.dirname(__FILE__)}/../../config/movies.yml" @config = YAML.load_file(config_file).deep_symbolize_keys end @config end # @return [Hash] content of config/movies.yml def reload_config! @cache = {} @config = nil config end # @param [Symbol] series_name def valid?(series_name) names.include?(series_name) end # @param movie_name [Symbol] # @return [Rubicure::Movie] # @raise arg is invalid def find(movie_name) raise UnknownMovieError, "unknown movie: #{movie_name}" unless valid?(movie_name) @cache ||= {} unless @cache[movie_name] movie_config = config[movie_name] || {} movie_config.reject! { |_k, v| v.nil? } @cache[movie_name] = Rubicure::Movie[movie_config] end @cache[movie_name] end end end end
Version data entries
30 entries across 30 versions & 1 rubygems