module UserDocs
User Documentation module
Extends Capybara's Actions to create end user documentation
:nocov:
Constants
- VERSION
Public Instance Methods
before_setup()
click to toggle source
Calls superclass method
# File lib/user_docs/capybara_extension.rb, line 9 def before_setup super check_installation @class_name = class_name.chomp("Procedure") @method = name.sub("test_", "") make_version_data_directory make_version_index Capybara.save_path = Rails.root.join(".docs/assets/#{version}/#{klass_name}/#{@method}") @json = { name: @method.humanize, steps: [] } end
before_teardown()
click to toggle source
Calls superclass method
# File lib/user_docs/capybara_extension.rb, line 24 def before_teardown path = ".docs/_data/versions/#{version}/#{klass_name}/#{@method}.json" File.write(Rails.root.join(path), @json.to_json) super end
Private Instance Methods
accept_alert()
click to toggle source
# File lib/user_docs/capybara_extension.rb, line 91 def accept_alert page.accept_alert @json[:steps] << "Click **OK**." end
check_installation()
click to toggle source
# File lib/user_docs/capybara_extension.rb, line 33 def check_installation return if Dir.exist?(Rails.root.join("docs")) # :nocov: abort("ERROR: Run 'rails g user_docs:install.'") # :nocov: end
choose(label)
click to toggle source
Calls superclass method
# File lib/user_docs/capybara_extension.rb, line 86 def choose(label) super @json[:steps] << "Select radio button with *#{label}*." end
click_on(link)
click to toggle source
rubocop:enable Metrics/MethodLength
Calls superclass method
# File lib/user_docs/capybara_extension.rb, line 76 def click_on(link) super @json[:steps] << "Click on **#{link}**." end
comment(string)
click to toggle source
# File lib/user_docs/capybara_extension.rb, line 104 def comment(string) @json[:steps] << string end
fill_in(text, with:)
click to toggle source
Calls superclass method
# File lib/user_docs/capybara_extension.rb, line 81 def fill_in(text, with:) super @json[:steps] << "Fill in **#{text}** with *#{with}*." end
klass_name()
click to toggle source
# File lib/user_docs/capybara_extension.rb, line 45 def klass_name @class_name.underscore end
make_version_data_directory()
click to toggle source
# File lib/user_docs/capybara_extension.rb, line 49 def make_version_data_directory data_path = Rails.root.join(".docs/_data/versions/#{version}/#{klass_name}") FileUtils.mkdir_p(data_path) end
make_version_index()
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/user_docs/capybara_extension.rb, line 55 def make_version_index directory = Rails.root.join(".docs/versions/#{version}") output_file = directory + "index.html" entry_file = Rails.root.join(".docs/index.html") FileUtils.mkdir_p(directory) File.write( output_file, <<~HTML --- layout: default version: #{version.tr!('_', '.')} --- {% include index.html %} HTML ) FileUtils.cp_r(output_file, entry_file, remove_destination: true) end
save_screenshot(image = Time.now.to_i.to_s)
click to toggle source
Calls superclass method
# File lib/user_docs/capybara_extension.rb, line 96 def save_screenshot(image = Time.now.to_i.to_s) image += ".png" super path = "/docs/assets/#{version}/#{klass_name}/#{@method}/#{image}" @json[:steps] << "<img src='#{path}' class='img-fluid'>" end
version()
click to toggle source
# File lib/user_docs/capybara_extension.rb, line 41 def version Rails.application.class.module_parent::VERSION.tr(".", "_") end