6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# 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
|