class TestsDoc::File

Public Instance Methods

write_if_changed() click to toggle source
# File lib/tests_doc/file.rb, line 7
def write_if_changed
  ensure_folder

  if write_output?
    ::File.open(path, 'w+') do |f|
      f.write(output)
    end
  end
end

Private Instance Methods

changes_whitelist() click to toggle source
# File lib/tests_doc/file.rb, line 52
def changes_whitelist
  whitelist_option = if TestsDoc.configuration.changes_whitelist_regexes.any?
                       TestsDoc.configuration.changes_whitelist_regexes
                     else
                       TestsDoc.configuration.changes_whitelist_regex
                     end

  Regexp.union([whitelist_option, options[:whitelist]].flatten.compact)
end
ensure_folder() click to toggle source
# File lib/tests_doc/file.rb, line 45
def ensure_folder
  dirname = ::File.dirname(path)
  unless ::File.directory?(dirname)
    ::FileUtils.mkdir_p(dirname)
  end
end
filtered_file_content() click to toggle source
# File lib/tests_doc/file.rb, line 37
def filtered_file_content
  @filtered_file_content ||= ::File.read(path).gsub(changes_whitelist, "")
end
filtered_output() click to toggle source
# File lib/tests_doc/file.rb, line 41
def filtered_output
  @filtered_output       ||= output.gsub(changes_whitelist, "")
end
response_changed?() click to toggle source
# File lib/tests_doc/file.rb, line 25
def response_changed?
  if TestsDoc.configuration.debug
    diff = filtered_file_content.split("\n") - filtered_output.split("\n")

    TestsDoc.configuration.logger.puts("DIFF: #{diff}")

    diff.size > 0
  else
    filtered_file_content != filtered_output
  end
end
write_output?() click to toggle source
# File lib/tests_doc/file.rb, line 19
def write_output?
  return true unless ::File.file?(path)

  response_changed?
end