class Object

Public Instance Methods

check_supports_spaces(server_url) click to toggle source
# File lib/octopus_serverspec_extensions.rb, line 77
def check_supports_spaces(server_url)
  begin
    resp = Net::HTTP.get_response(URI.parse("#{server_url}/api/"))
    body = JSON.parse(resp.body)
    version = body['Version']
    return Gem::Version.new(version) > Gem::Version.new('2019.0.0')
  rescue => e
    raise "check_supports_spaces: Unable to connect to #{server_url}: #{e}"
  end
end
get_env_var(name) click to toggle source
# File lib/octopus_serverspec_extensions.rb, line 26
def get_env_var(name)
  raise 'unexpected env var' if name != 'OCTOPUS_CLI_API_KEY' && name != 'OCTOPUS_CLI_SERVER'
  raise "env var #{name} not found" if ENV[name].nil?
  ENV[name]
end
get_octopus_api_key(api_key) click to toggle source
# File lib/octopus_serverspec_extensions.rb, line 41
def get_octopus_api_key(api_key)
  # returns the api key or nil
  if api_key.nil?
    api_key = get_env_var('OCTOPUS_CLI_API_KEY')
  end

  api_key
end
get_octopus_creds(args) click to toggle source
# File lib/octopus_serverspec_extensions.rb, line 50
def get_octopus_creds(args)
  server = args[0]
  api_key = args[1]

  if args.length != 0 && args.length != 2
    raise "Supplied credentials invalid. Expected: [url, api_key] Received: #{args}"
  end

  if server.nil?
    server = get_env_var('OCTOPUS_CLI_SERVER')
  end

  if api_key.nil?
    api_key = get_env_var('OCTOPUS_CLI_API_KEY')
  end

  # are they still nil? raise an error
  if api_key.nil? or server.nil?
    raise "Supplied credentials invalid. One or more of [server, api_key] was null. " +
      "If you intended to use Environment Variables, please check the value of OCTOPUS_CLI_SERVER and OCTOPUS_CLI_API_KEY"
  end

  server = server.chomp("/") # remove the trailing slash if it exists

  [server, api_key]
end
get_octopus_url(server_url) click to toggle source
# File lib/octopus_serverspec_extensions.rb, line 32
def get_octopus_url(server_url)
  # returns the url or nil
  if server_url.nil?
    server_url = get_env_var('OCTOPUS_CLI_SERVER')
  end

  server_url
end
get_version(file) click to toggle source
# File lib/octopus_serverspec_extensions/matcher/have_version.rb, line 15
def get_version(file)
  version_dll = Fiddle.dlopen('version.dll')

  s=''
  vsize = Fiddle::Function.new(version_dll['GetFileVersionInfoSize'],
              [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VOIDP],
              Fiddle::TYPE_LONG).call(file.name, s)

  raise 'Unable to determine the version number' unless vsize > 0

  result = ' '*vsize
  Fiddle::Function.new(version_dll['GetFileVersionInfo'],
                       [Fiddle::TYPE_VOIDP, Fiddle::TYPE_LONG,
                        Fiddle::TYPE_LONG, Fiddle::TYPE_VOIDP],
          Fiddle::TYPE_VOIDP).call(file.name, 0, vsize, result)

  rstring = result.unpack('v*').map{|s| s.chr if s<256}*''
  r = /FileVersion..(.*?)\000/.match(rstring)

  r[1]
end