Sha256: 487a27726025299462a08f8a875de97fe01bc155f1e067f537efafdcf157bcc2

Contents?: true

Size: 683 Bytes

Versions: 5

Compression:

Stored size: 683 Bytes

Contents

# frozen_string_literal: true

module Mako
  class SubscriptionListParser
    include FileOpenUtil

    attr_reader :list

    def initialize(args)
      @list = args.fetch(:list)
    end

    # Parses OPML, JSON, or plain text documents and returns an Array of feed urls.
    #
    # @return [Array]
    def parse
      case File.extname list
      when '.xml' || '.opml'
        Nokogiri::XML(load_list).xpath('//@xmlUrl').map(&:value)
      when '.json'
        JSON.parse(load_list)
      when '.txt'
        load_list.split("\n")
      end
    end

    # Load the subscription list file
    #
    # @return [String]
    def load_list
      load_resource(list)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mako_rss-0.2.5 lib/mako/subscription_list_parser.rb
mako_rss-0.2.3 lib/mako/subscription_list_parser.rb
mako_rss-0.2.2 lib/mako/subscription_list_parser.rb
mako_rss-0.2.1 lib/mako/subscription_list_parser.rb
mako_rss-0.2.0 lib/mako/subscription_list_parser.rb