Sha256: 7bd03c981e573e4b0bd5e6027f300878ef2e234e9c79b23d85128c4cf850b428

Contents?: true

Size: 1.21 KB

Versions: 141

Compression:

Stored size: 1.21 KB

Contents

require 'precheck/rule'

module Precheck
  class UnreachableURLRule < URLRule
    def self.key
      :unreachable_urls
    end

    def self.env_name
      "RULE_UNREACHABLE_URLS"
    end

    def self.friendly_name
      "No broken urls"
    end

    def self.description
      "unreachable URLs in app metadata"
    end

    def rule_block
      return lambda { |url|
        url = url.to_s.strip
        return RuleReturn.new(validation_state: Precheck::VALIDATION_STATES[:failed], failure_data: "empty url") if url.empty?

        begin
          request = Faraday.new(URI.encode(url)) do |connection|
            connection.use FaradayMiddleware::FollowRedirects
            connection.adapter :net_http
          end
          return RuleReturn.new(validation_state: Precheck::VALIDATION_STATES[:failed], failure_data: url) unless request.head.status == 200
        rescue
          UI.verbose "URL #{url} not reachable 😵"
          # I can only return :fail here, but I also want to return #{url}
          return RuleReturn.new(validation_state: VALIDATION_STATES[:failed], failure_data: "unreachable: #{url}")
        end

        return RuleReturn.new(validation_state: VALIDATION_STATES[:passed])
      }
    end
  end
end

Version data entries

141 entries across 141 versions & 1 rubygems

Version Path
fastlane-2.64.1 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.65.0.beta.20171113010004 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.65.0.beta.20171112010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.65.0.beta.20171111010004 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.65.0.beta.20171110010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.65.0.beta.20171109010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.65.0.beta.20171108010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.65.0.beta.20171107010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.64.0 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.64.0.beta.20171106010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.64.0.beta.20171105010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.64.0.beta.20171104010004 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.64.0.beta.20171103010004 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.64.0.beta.20171102010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.64.0.beta.20171101010004 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.63.0 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.63.0.beta.20171031010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.63.0.beta.20171030010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.63.0.beta.20171029010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb
fastlane-2.63.0.beta.20171028010003 precheck/lib/precheck/rules/unreachable_urls_rule.rb