# frozen_string_literal: true

require_relative "lib/<%=config[:namespaced_path]%>/version"

Gem::Specification.new do |spec|
  spec.name = <%= config[:name].inspect %>
  spec.version = <%= config[:constant_name] %>::VERSION
  spec.authors = [<%= config[:author].inspect %>]
  spec.email = [<%= config[:email].inspect %>]

  spec.summary = "TODO: Write a short summary, because RubyGems requires one."
  spec.description = "TODO: Write a longer description or delete this line."
  spec.homepage = "<%= config[:homepage_uri] %>"
<%- if config[:mit] -%>
  spec.license = "MIT"
<%- end -%>
  spec.required_ruby_version = ">= <%= config[:required_ruby_version] %>"
<%- if config[:ext] == 'rust' -%>
  spec.required_rubygems_version = ">= <%= config[:rust_builder_required_rubygems_version] %>"
<%- end -%>

  spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
  spec.metadata["homepage_uri"] = spec.homepage
  spec.metadata["source_code_uri"] = "<%= config[:source_code_uri] %>"
  <%- if config[:changelog] -%>
    spec.metadata["changelog_uri"] = "<%= config[:changelog_uri] %>"
  <%- end -%>

  # Specify which files should be added to the gem when it is released.
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
  gemspec = File.basename(__FILE__)
  spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls|
    ls.readlines("\x0", chomp: true).reject do |f|
      (f == gemspec) ||
        f.start_with?(*%w[<%= config[:ignore_paths].join(" ") %>])
    end
  end
  spec.bindir = "exe"
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
  spec.require_paths = ["lib"]
<%- if config[:ext] == 'c' || config[:ext] == 'rust' -%>
  spec.extensions = ["ext/<%= config[:underscored_name] %>/extconf.rb"]
<%- end -%>

  # Uncomment to register a new dependency of your gem
  # spec.add_dependency "example-gem", "~> 1.0"
<%- if config[:ext] == 'rust' -%>
  spec.add_dependency "rb_sys", "~> 0.9.91"
<%- end -%>

  # For more information and examples about making a new gem, check out our
  # guide at: https://bundler.io/guides/creating_gem.html
end
