環境対応 #954 » 0001-Retriever-URI-URI-uri_filter-refs-954.patch
| core/lib/retriever/uri.rb | ||
|---|---|---|
|
end
|
||
|
def generate_uri_by_string
|
||
|
URI.parse(@uri_string)
|
||
|
rescue URI::InvalidComponentError
|
||
|
Addressable::URI.parse(@uri_string)
|
||
|
uri, = Plugin.filtering(:uri_filter, @uri_string)
|
||
|
case uri
|
||
|
when URI, Addressable::URI
|
||
|
uri
|
||
|
when String
|
||
|
raise Retriever::InvalidURIError, 'The string is not URI.'
|
||
|
else
|
||
|
raise Retriever::InvalidURIError, "Filter `uri_filter' returns instance of `#{uri.class}', but expect URI or Addressable::URI."
|
||
|
end
|
||
|
end
|
||
|
def generate_uri_by_hash
|
||
| core/plugin/photo/model/photo.rb | ||
|---|---|---|
|
case uri
|
||
|
when self
|
||
|
uri
|
||
|
when URI, Addressable::URI, Retriever::URI
|
||
|
when URI, Addressable::URI, Retriever::URI, String
|
||
|
photos[uri.to_s.hash] ||= new(perma_link: uri)
|
||
|
when String
|
||
|
if uri.start_with?('http')
|
||
|
photos[uri.hash] ||= new(perma_link: uri)
|
||
|
elsif uri.start_with?('/')
|
||
|
uri = Retriever::URI.new(scheme: 'file', path: uri)
|
||
|
photos[uri.hash] ||= new(perma_link: uri)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
| core/plugin/photo/photo.rb | ||
|---|---|---|
|
photos << Plugin::Photo::Photo[permalink]
|
||
|
[permalink, photos]
|
||
|
end
|
||
|
# Generic URI
|
||
|
filter_uri_filter do |uri|
|
||
|
if uri.is_a?(String) && uri.match(%r<\A\w+:>)
|
||
|
[Addressable::URI.parse(uri)]
|
||
|
else
|
||
|
[uri]
|
||
|
end
|
||
|
end
|
||
|
# Unix local file path
|
||
|
filter_uri_filter do |uri|
|
||
|
if uri.is_a?(String) && uri.start_with?('/')
|
||
|
[Addressable::URI.new(scheme: 'file', path: uri)]
|
||
|
else
|
||
|
[uri]
|
||
|
end
|
||
|
end
|
||
|
end
|
||