> Gems are packaged with static data only.

That doesn't seem to be the case, at least for my gems! It appears that
it's down to the author. Here's a random example I picked from my gem
home, highline-1.6.15:

---------
SPEC = Gem::Specification.new do |spec|
  spec.name     = "highline"
  spec.version  = GEM_VERSION
  spec.platform = Gem::Platform::RUBY
  spec.summary  = "HighLine is a high-level command-line IO library."
  spec.files    = `git ls-files`.split("\n")

  spec.test_files       =  `git ls-files -- test/*.rb`.split("\n")
  spec.has_rdoc         =  true
  spec.extra_rdoc_files =  %w[README.rdoc INSTALL TODO CHANGELOG
LICENSE]
  spec.rdoc_options     << '--title' << 'HighLine Documentation' <<
                           '--main'  << 'README'

  spec.require_path      = 'lib'

  spec.author            = "James Edward Gray II"
  spec.email             = "james / graysoftinc.com"
  spec.rubyforge_project = "highline"
  spec.homepage          = "http://highline.rubyforge.org"
  spec.description       = <<END_DESC
A high-level IO library that provides validation, type conversion, and
more for
command-line interfaces. HighLine also includes a complete menu system
that can
crank out anything from simple list selection to complete shells with
just
minutes of work.
END_DESC
end
----------

As you can see, there's a `git ls...` going on in there, and I've seen
plenty of gems that do something similar.

> https://github.com/rubyworks/indexer

That looks like a really interesting project. The only reason I'd say
that it doesn't quite fit this case is that it requires a separate
DSL/syntax/file, rather than the user being able to build a gemspec as a
gemspec, and expand the dynamically generated information as part of the
build.

It would be nice if it could be integrated into `gem build` in some way,
but I'd settle with a separate step for the time being.

-- 
Posted via http://www.ruby-forum.com/.