Sha256: 1c08755b36cddcebe21f568020cd2bde8725c834b1af9ea6300d9910b1eba724

Contents?: true

Size: 714 Bytes

Versions: 3

Compression:

Stored size: 714 Bytes

Contents

# frozen_string_literal: true

module Aranha
  class DefaultProcessor
    attr_reader :source_uri

    def initialize(source_uri)
      unless source_uri.is_a?(Addressable::URI)
        source_uri = source_uri.to_s.gsub(%r{\A/}, 'file:///')
      end
      @source_uri = Addressable::URI.parse(source_uri)
    end

    def process
      raise 'Implement method process'
    end

    protected

    def target_uri
      source_uri
    end

    def data
      @data ||= parser_class.new(target_uri).data
    end

    def parser_class
      r = self.class.name.gsub('::Processors::', '::Parsers::').constantize
      return r unless is_a?(r)

      raise "Parser can be not the process class: #{r}"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
aranha-0.2.1 lib/aranha/default_processor.rb
aranha-0.2.0 lib/aranha/default_processor.rb
aranha-0.1.0 lib/aranha/default_processor.rb