Sha256: ef95666040526538259d517ea9c034c0a08000fa500df7d4c8da2c09fc8c3bac

Contents?: true

Size: 701 Bytes

Versions: 9

Compression:

Stored size: 701 Bytes

Contents

# frozen_string_literal: true

require "jr/cli/core_ext"

module Mihari
  module Feed
    class Parser
      # @return [Array<Hash>, Array<Array<String>>]
      attr_reader :data

      #
      # @param [Array<Hash>, Array<Array<String>>] data
      #
      def initialize(data)
        @data = data
      end

      #
      # Parse data by selector
      #
      # @param [String] selector
      #
      # @return [Array<String>]
      #
      def parse(selector)
        parsed = data.instance_eval(selector)

        raise FeedParseError unless parsed.is_a?(Array) || parsed.is_a?(Enumerator)
        raise FeedParseError unless parsed.all?(String)

        parsed.to_a
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
mihari-5.4.3 lib/mihari/feed/parser.rb
mihari-5.4.2 lib/mihari/feed/parser.rb
mihari-5.4.1 lib/mihari/feed/parser.rb
mihari-5.4.0 lib/mihari/feed/parser.rb
mihari-5.3.2 lib/mihari/feed/parser.rb
mihari-5.3.1 lib/mihari/feed/parser.rb
mihari-5.3.0 lib/mihari/feed/parser.rb
mihari-5.2.4 lib/mihari/feed/parser.rb
mihari-5.2.3 lib/mihari/feed/parser.rb