Sha256: ef93319d476e7a2b684b0c15a4d4746f5d7e69bd5881f04a9ddd247174af99ed

Contents?: true

Size: 830 Bytes

Versions: 5

Compression:

Stored size: 830 Bytes

Contents

module Gemfury
  class Client
    module Filters

    private
      def ensure_ready!(*args)
        # Ensure authorization
        if args.include?(:authorization)
          raise Unauthorized unless authenticated?
        end

        # Check version requirement
        ensure_gem_compatibility! if self.check_gem_version
      end

      def authenticated?
        self.user_api_key && !self.user_api_key.empty?
      end

      def ensure_gem_compatibility!
        response = connection.get('status/version')
        ensure_successful_response!(response)

        current = Gem::Version.new(Gemfury::VERSION)
        version = Gem::Requirement.new(response.body['version'])

        unless version.satisfied_by?(current)
          raise InvalidGemVersion.new('Please update your gem')
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gemfury-0.3.1 lib/gemfury/client/filters.rb
gemfury-0.3.0 lib/gemfury/client/filters.rb
gemfury-0.2.0 lib/gemfury/client/filters.rb
gemfury-0.2.0.beta3 lib/gemfury/client/filters.rb
gemfury-0.2.0.beta2 lib/gemfury/client/filters.rb