Sha256: 157534a97cda5ca9a7ea7cfd0c1b61868c9668be4104f923d4b3bd4988fde258
Contents?: true
Size: 757 Bytes
Versions: 9
Compression:
Stored size: 757 Bytes
Contents
require "apple-news/components/base" require "apple-news/components/text" require "apple-news/components/audio" require "apple-news/components/image" require "apple-news/components/scalable_image" Dir["#{File.dirname(__FILE__)}/components/*.rb"].each { |path| require path } module AppleNews module Component extend self def factory(data) return if data.nil? components.each do |component| if component.role == data[:role] return component.new(data) end end nil end private def components @components ||= self.constants. map { |const| self.const_get(const) }. select { |const| const.name.demodulize != "Base" && const.is_a?(Class) } end end end
Version data entries
9 entries across 9 versions & 1 rubygems