Sha256: 5e072b6808fdd1a6a838a60586aee1c4e968ce05d69aaa11a5e0ee2e6ad7d0da
Contents?: true
Size: 1.29 KB
Versions: 3
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true require 'active_support/core_ext/module/delegation' require 'eac_ruby_utils/core_ext' require 'yaml' module Aranha module Parsers class SourceAddress require_sub __FILE__ class << self SUBS = [ ::Aranha::Parsers::SourceAddress::HashHttpGet, ::Aranha::Parsers::SourceAddress::HashHttpPost, ::Aranha::Parsers::SourceAddress::HttpGet, ::Aranha::Parsers::SourceAddress::File ].freeze def detect_sub(source) return source.sub if source.is_a?(self) SUBS.each do |sub| return sub.new(source) if sub.valid_source?(source) end raise "No content fetcher found for source \"#{source}\"" end def deserialize(string) new(string =~ %r{\A[a-z]+://} ? string.strip : ::YAML.load(string)) # rubocop:disable Security/YAMLLoad end def from_file(path) deserialize(::File.read(path)) end end enable_simple_cache common_constructor :source delegate :content, :url, to: :sub def to_s sub.url end def serialize "#{sub.serialize.strip}\n" end private def sub_uncached self.class.detect_sub(source) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
aranha-parsers-0.23.1 | lib/aranha/parsers/source_address.rb |
aranha-parsers-0.23.0 | lib/aranha/parsers/source_address.rb |
aranha-parsers-0.22.0 | lib/aranha/parsers/source_address.rb |