Class: Apipie::Extractor::ActionDescriptionUpdater

Inherits:
Object
  • Object
show all
Defined in:
lib/apipie/extractor/writer.rb

Defined Under Namespace

Classes: ActionNotFound, ControllerNotFound

Instance Method Summary collapse

Constructor Details

#initialize(controller, action) ⇒ ActionDescriptionUpdater

Returns a new instance of ActionDescriptionUpdater.



212
213
214
215
# File 'lib/apipie/extractor/writer.rb', line 212

def initialize(controller, action)
  @controller = controller
  @action = action
end

Instance Method Details

#generated?Boolean

Returns:

  • (Boolean)


217
218
219
# File 'lib/apipie/extractor/writer.rb', line 217

def generated?
  old_header.include?(Apipie.configuration.generated_doc_disclaimer)
end

#old_headerObject



243
244
245
246
247
248
249
250
# File 'lib/apipie/extractor/writer.rb', line 243

def old_header
  return @old_header if defined? @old_header
  @old_header = lines_above_method[/^\s*?#{Regexp.escape(Apipie.configuration.generated_doc_disclaimer)}.*/m]
  @old_header ||= lines_above_method[/^\s*?\b(api|params|error|example)\b.*/m]
  @old_header ||= ""
  @old_header.sub!(/\A\s*\n/,"")
  @old_header = align_indented(@old_header)
end

#update(new_header) ⇒ Object



239
240
241
# File 'lib/apipie/extractor/writer.rb', line 239

def update(new_header)
  overwrite_header(new_header)
end

#update_apis(apis) ⇒ Object



221
222
223
224
225
226
227
228
229
230
# File 'lib/apipie/extractor/writer.rb', line 221

def update_apis(apis)
  new_header = ""
  new_header << Apipie.configuration.generated_doc_disclaimer << "\n" if generated?
  new_header << generate_apis_code(apis)
  new_header << ensure_line_breaks(old_header.lines).reject do |line|
    line.include?(Apipie.configuration.generated_doc_disclaimer) ||
      line =~ /^api/
  end.join
  overwrite_header(new_header)
end

#update_generated_description(desc) ⇒ Object



232
233
234
235
236
237
# File 'lib/apipie/extractor/writer.rb', line 232

def update_generated_description(desc)
  if generated? || old_header.empty?
    new_header = generate_code(desc)
    overwrite_header(new_header)
  end
end

#write!Object



252
253
254
255
# File 'lib/apipie/extractor/writer.rb', line 252

def write!
  File.open(controller_path, "w") { |f| f << @controller_content }
  @changed=false
end