72: def featuredocs
73: str = ""
74: @features ||= {}
75: return nil if @features.empty?
76: names = @features.keys.sort { |a,b| a.to_s <=> b.to_s }
77: names.each do |name|
78: doc = @features[name].docs.gsub(/\n\s+/, " ")
79: str += "- **%s**: %s\n" % [name, doc]
80: end
81:
82: if providers.length > 0
83: headers = ["Provider", names].flatten
84: data = {}
85: providers.each do |provname|
86: data[provname] = []
87: prov = provider(provname)
88: names.each do |name|
89: if prov.feature?(name)
90: data[provname] << "**X**"
91: else
92: data[provname] << ""
93: end
94: end
95: end
96: str += doctable(headers, data)
97: end
98: str
99: end