Sha256: 8ad5a2158fad6e89a31155e6ac866ae336ba7a4bc3b8f538a7be829a864d4228
Contents?: true
Size: 713 Bytes
Versions: 2
Compression:
Stored size: 713 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) components.each do |component| if component.role == data[:role] return component.new(data) end end 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
apple-news-0.1.1 | lib/apple-news/component.rb |
apple-news-0.1.0 | lib/apple-news/component.rb |