class Doc::Configurator::Gems
Public Instance Methods
configure(update)
click to toggle source
# File lib/doc/configurator/gems.rb, line 6 def configure(update) config.check_options!([], [[:only, :except], :versions, :prerelease]) [:only, :except].each do |key| config[key] = Array(config[key]).flatten.map(&:to_s) if config[key] end @prerelease = !!config[:prerelease] @specs = config[:versions] && config[:versions].to_sym == :all ? all_specs(@prerelease) : latest_specs(@prerelease) if config[:only] absent = config[:only] - @specs.map(&:name) unless absent.empty? raise ConfigError.new(self, "can't find gems: #{absent.join(', ')}") end end if config[:only] @specs = @specs.select{ |spec| config[:only].include?(spec.name) } elsif config[:except] @specs = @specs.reject{ |spec| config[:except].include?(spec.name) } end @specs = @specs.sort_by{ |spec| [spec.name.downcase, spec.sort_obj] } end
tasks()
click to toggle source
# File lib/doc/configurator/gems.rb, line 31 def tasks @specs.map do |spec| main = spec.rdoc_options.each_cons(2).select{ |key, value| %w[--main -m].include?(key) }.map(&:last).first next if spec.respond_to?(:default_gem?) && spec.default_gem? Dir.chdir(spec.full_gem_path) do file_list = FileList.new file_list.include *spec.extra_rdoc_files file_list.include *spec.require_paths builder({ :title => "gem #{spec.full_name}", :source_dir => spec.full_gem_path, :dir_name => "gem.#{spec.full_name}", :paths => file_list, :main => main, }) end end.compact end
Private Instance Methods
all_specs(prerelease)
click to toggle source
# File lib/doc/configurator/gems.rb, line 57 def all_specs(prerelease) if prerelease Gem::Specification.to_a else Gem::Specification.select{ |spec| !spec.version.prerelease? } end end
latest_specs(prerelease)
click to toggle source
# File lib/doc/configurator/gems.rb, line 53 def latest_specs(prerelease) Gem::Specification.latest_specs(prerelease) end
sort_specs(specs)
click to toggle source
# File lib/doc/configurator/gems.rb, line 65 def sort_specs(specs) specs.sort_by{ |spec| [spec.name.downcase, spec.name, spec.version] } end