Sha256: 65b5b0f0794bb530cf62a0ec5bc2f7a8af2139a2c4c0dd074db7cea818e6d2b8

Contents?: true

Size: 870 Bytes

Versions: 2

Compression:

Stored size: 870 Bytes

Contents

require 'tinynews/feed'
require 'yaml'

module TinyNews

  class Feeds

    def initialize
      sources_file = File.open('sources.yml', 'r').read
      @sources = YAML::load( sources_file ) 
    end

    def generate source_symbol
      feeds = []
      case source_symbol
      when :all
        @sources.keys.each do |symbol|
          feeds << generate_feed_object_for( symbol )
        end
      when *@sources.keys
        feeds << generate_feed_object_for( source_symbol )
      else
        source_unavailable source_symbol
      end
      feeds
    end

    private

    def source_unavailable source_symbol
      puts "Sorry, specified source: '#{source_symbol}' is unavailable"
    end

    def generate_feed_object_for feed_symbol
      source = @sources[feed_symbol]
      source == nil ? nil : Feed.new( source[:title], source[:url] )
    end

  end 

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tinynews-1.0.1 lib/tinynews/feeds.rb
tinynews-1.0.0 lib/tinynews/feeds.rb