Sha256: 2135833b97065922899f38b504e3112117ccdb5761252ac7087bce9b10905afd
Contents?: true
Size: 799 Bytes
Versions: 4
Compression:
Stored size: 799 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" require "apple-news/components/container" 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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
apple-news-0.5.1 | lib/apple-news/component.rb |
apple-news-0.5.0 | lib/apple-news/component.rb |
apple-news-0.4.2 | lib/apple-news/component.rb |
apple-news-0.4.1 | lib/apple-news/component.rb |