# -*- encoding: utf-8 -*-

Gem::Specification.new do |s|
  s.name        = "openwsman"
  s.version     = "@VERSION@"
  s.platform    = Gem::Platform::RUBY
  s.authors     = ["Klaus Kämpf"]
  s.email       = ["kkaempf@suse.de"]
  s.homepage    = "http://openwsman.github.io"
  s.summary = "Ruby client bindings for Openwsman"
  s.description = "The openwsman gem provides a Ruby API to manage
systems using the WS-Management protocol."

  s.required_rubygems_version = ">= 1.3.6"
  s.add_development_dependency("rake-compiler", [">= 0"])
  s.add_development_dependency("mocha", [">= 0.9"])
  s.add_development_dependency("yard", [">= 0.5"])
  if RUBY_VERSION >= "2.1"
    # stdlib test/unit deprecated(broken) with Ruby 2.1 and Minitest 5
    # adding test-unit gem fixes this
    s.add_development_dependency("test-unit")
  end
  s.extensions	<< "ext/openwsman/extconf.rb"

  s.files        = Dir.glob("lib/*.rb") +
                   Dir.glob("lib/**/*.rb") +
                   Dir.glob("ext/*.{h,c}") +
                   Dir.glob("ext/**/*.{h,c}")

#  s.require_path = ''

  s.post_install_message = <<-POST_INSTALL_MESSAGE
  ____
/@    ~-.
\/ __ .- | remember to have fun! 
 // //  @  

  POST_INSTALL_MESSAGE
end

