Module: Miteru::Mixins::URL
- Included in:
- Feeds::Feed
- Defined in:
- lib/miteru/mixin.rb
Constant Summary collapse
- IGNORE_EXTENSIONS =
%w[.htm .html .php .asp .aspx .exe .txt].freeze
Instance Method Summary collapse
-
#breakdown(url, enable_directory_traveling) ⇒ Array<String>
Breakdown a URL into URLs.
-
#invalid_extension?(url) ⇒ Boolean
Validate extension of a URL.
Instance Method Details
#breakdown(url, enable_directory_traveling) ⇒ Array<String>
Breakdown a URL into URLs
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/miteru/mixin.rb', line 25 def breakdown(url, enable_directory_traveling) begin uri = URI.parse(url) rescue URI::InvalidURIError => _e return [] end base = "#{uri.scheme}://#{uri.hostname}" return [base] unless enable_directory_traveling segments = uri.path.split("/") return [base] if segments.length.zero? urls = (0...segments.length).map { |idx| "#{base}#{segments[0..idx].join("/")}" } urls.reject do |breakdowned_url| # Reject a url which ends with specific extension names invalid_extension? breakdowned_url end end |
#invalid_extension?(url) ⇒ Boolean
Validate extension of a URL
13 14 15 |
# File 'lib/miteru/mixin.rb', line 13 def invalid_extension?(url) IGNORE_EXTENSIONS.any? { |ext| url.end_with? ext } end |