@@ -133,13 +133,26 @@ def add_gems
133
133
end
134
134
end
135
135
136
- def add_gems_from_gemfile ( gemfile = nil )
136
+ def add_gems_from_gemfile ( gemfile = nil , dependencies_only = false )
137
137
require 'bundler'
138
138
gemfile ||= "Gemfile"
139
139
if File . exist? ( "#{ gemfile } .lock" )
140
- Bundler ::LockfileParser . new ( File . read ( "#{ gemfile } .lock" ) ) . specs . each do |spec |
141
- libraries [ spec . name ] ||= [ ]
142
- libraries [ spec . name ] |= [ YARD ::Server ::LibraryVersion . new ( spec . name , spec . version . to_s , nil , :gem ) ]
140
+ if dependencies_only
141
+ parsed_gemfile = Bundler ::LockfileParser . new ( File . read ( "#{ gemfile } .lock" ) )
142
+ parsed_gemfile . dependencies . each do |dep |
143
+ libraries [ dep . name ] ||= [ ]
144
+ specs = parsed_gemfile . specs . select do |spec |
145
+ spec . name == dep . name
146
+ end
147
+ specs . each do |spec |
148
+ libraries [ spec . name ] |= [ YARD ::Server ::LibraryVersion . new ( spec . name , spec . version . to_s , nil , :gem ) ]
149
+ end
150
+ end
151
+ else
152
+ Bundler ::LockfileParser . new ( File . read ( "#{ gemfile } .lock" ) ) . specs . each do |spec |
153
+ libraries [ spec . name ] ||= [ ]
154
+ libraries [ spec . name ] |= [ YARD ::Server ::LibraryVersion . new ( spec . name , spec . version . to_s , nil , :gem ) ]
155
+ end
143
156
end
144
157
else
145
158
log . warn "Cannot find #{ gemfile } .lock, ignoring --gemfile option"
@@ -174,6 +187,9 @@ def optparse(*args)
174
187
opts . on ( '-G' , '--gemfile [GEMFILE]' , 'Serves documentation for gems from Gemfile' ) do |gemfile |
175
188
add_gems_from_gemfile ( gemfile )
176
189
end
190
+ opts . on ( '--gemfile-deps [GEMFILE]' , 'Serves documentation for gems from Gemfile (Just dependencies)' ) do |gemfile |
191
+ add_gems_from_gemfile ( gemfile , true )
192
+ end
177
193
opts . on ( '-t' , '--template-path PATH' ,
178
194
'The template path to look for templates in. (used with -t).' ) do |path |
179
195
template_paths << path
0 commit comments