Sha256: 274d7c6c10857e8fd9acba3f773cbdd1b07baca2105b84086c6fbda0b5cf5bb7

Contents?: true

Size: 1.65 KB

Versions: 24

Compression:

Stored size: 1.65 KB

Contents

# frozen_string_literal: true

module OhlohScm
  module Svn
    class Validation < OhlohScm::Validation
      private

      def validate_server_connection
        @errors ||= []
        @errors << head_token_error
        @errors << url_error
        @errors.compact!
      rescue StandardError
        @errors << server_connection_error
      end

      def public_url_regex
        /^(http|https|svn):\/\/[A-Za-z0-9_\-\.]+(:\d+)?(\/[A-Za-z0-9_\-\.\/\+%^~ ]*)?$/
      end

      # Subversion usernames have been relaxed from the abstract rules.
      # We allow email names as usernames.
      def username_errors
        return if scm.username.to_s.empty?

        if scm.username.length > 32
          [:username, 'The username must not be longer than 32 characters.']
        elsif !scm.username.match?(/^\w[\w@\.\+\-]*$/)
          [:username, 'The username contains illegal characters.']
        end
      end

      def head_token_error
        return if activity.head_token

        [:failed, "The server did not respond to a 'svn info' command. Is the URL correct?"]
      end

      def url_error
        root_path = activity.root

        if scm.url[0..root_path.length - 1] != root_path
          [:failed, "The URL did not match the Subversion root #{root_path}. Is the URL correct?"]
        elsif scm.recalc_branch_name && activity.ls.nil?
          [:failed, "The server did not respond to a 'svn ls' command. Is the URL correct?"]
        end
      end

      def server_connection_error
        logger.error { $ERROR_INFO.inspect }
        [:failed,
         'An error occured connecting to the server. Check the URL, username, and password.']
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
ohloh_scm-4.0.5 lib/ohloh_scm/svn/validation.rb
ohloh_scm-4.0.4 lib/ohloh_scm/svn/validation.rb
ohloh_scm-4.0.3 lib/ohloh_scm/svn/validation.rb
ohloh_scm-4.0.2 lib/ohloh_scm/svn/validation.rb
ohloh_scm-4.0.1 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.21 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.19 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.17 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.16 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.15 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.14 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.13 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.12 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.11 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.10 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.9 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.8 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.7 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.6 lib/ohloh_scm/svn/validation.rb
ohloh_scm-3.0.5 lib/ohloh_scm/svn/validation.rb