Module: AppleNews::Component

Extended by:
Component
Included in:
Component
Defined in:
lib/apple-news/component.rb,
lib/apple-news/components/base.rb,
lib/apple-news/components/body.rb,
lib/apple-news/components/logo.rb,
lib/apple-news/components/text.rb,
lib/apple-news/components/audio.rb,
lib/apple-news/components/image.rb,
lib/apple-news/components/intro.rb,
lib/apple-news/components/music.rb,
lib/apple-news/components/photo.rb,
lib/apple-news/components/quote.rb,
lib/apple-news/components/title.rb,
lib/apple-news/components/tweet.rb,
lib/apple-news/components/video.rb,
lib/apple-news/components/author.rb,
lib/apple-news/components/byline.rb,
lib/apple-news/components/figure.rb,
lib/apple-news/components/header.rb,
lib/apple-news/components/mosaic.rb,
lib/apple-news/components/caption.rb,
lib/apple-news/components/chapter.rb,
lib/apple-news/components/divider.rb,
lib/apple-news/components/gallery.rb,
lib/apple-news/components/heading.rb,
lib/apple-news/components/section.rb,
lib/apple-news/components/portrait.rb,
lib/apple-news/components/container.rb,
lib/apple-news/components/instagram.rb,
lib/apple-news/components/pullquote.rb,
lib/apple-news/components/illustrator.rb,
lib/apple-news/components/photographer.rb,
lib/apple-news/components/scalable_image.rb,
lib/apple-news/components/embed_web_video.rb,
lib/apple-news/components/banner_advertisement.rb,
lib/apple-news/components/medium_rectangle_advertisement.rb

Defined Under Namespace

Modules: Audio, Image, ScalableImage, Text Classes: Author, BannerAdvertisement, Base, Body, Byline, Caption, Chapter, Container, Divider, EmbedWebVideo, Figure, Gallery, Header, Heading, Illustrator, Instagram, Intro, Logo, MediumRectangleAdvertisement, Mosaic, Music, Photo, Photographer, Portrait, Pullquote, Quote, Section, Title, Tweet, Video

Instance Method Summary collapse

Instance Method Details

#factory(data) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/apple-news/component.rb', line 12

def factory(data)
  return if data.nil?
  
  components.each do |component|
    if component.role == data[:role]
      return component.new(data)
    end
  end

  nil
end