class RorVsWild::Installer

def self.create_rails_config(api_key)

def self.create_rails_config(api_key)
  if File.directory?("config")
    if !File.exist?(PATH)
      File.write(PATH, template(api_key))
      puts "File #{PATH} has been created. Restart / deploy your app to start collecting data."
    else
      puts "File #{PATH} already exists."
    end
  else
    puts "There is no config directory to create #{PATH}."
  end
end

def self.template(api_key)

def self.template(api_key)
  <<YAML
lopment:
Widget position
widget: top-left, top-right, bottom-left, bottom-right or hidden
Open files in your text editor by clicking from the local widget.
VSCode: vscode://file${path}:${line}
Sublime: subl://${path}:${line}
It should be set with an env variable when developers are not using the same editor.
itor_url: <%= ENV.fetch("RORVSWILD_EDITOR_URL", "vscode://file${path}:${line}") %>
uction:
i_key: #{api_key}
ignore_requests: # Do not monitor the following actions
  - SecretController#index
ignore_jobs: # Do not monitor the following jobs
  - SecretJob
ignore_exceptions: # Do not record the following exceptions
  - ActionController::RoutingError  # By default to ignore 404
ignore_plugins:
  - ActionController
  - ActionMailer
  - ActionView
  - ActiveJob
  - ActiveRecord
  - DelayedJob
  - Elasticsearch
  - Mongo
  - NetHttp
  - Redis
  - Resque
  - Sidekiq
logger: log/rorvswild.log # By default it uses Rails.logger or Logger.new(STDOUT)
# Deployment tracking is working without any actions from your part if the Rails app
# is inside a Git repositoriy, is deployed via Capistrano.
# In the other cases, you can provide the following details.
deployment:
  revision: <%= "Anything that will return the deployment version" %> # Mandatory
  description: <%= "Eventually if you have a description such as a Git message" %>
  author: <%= "Author's name of the deployment" %>
  email: <%= "emailOf@theAuthor.example" %>
Sampling allows to send a fraction of jobs and requests.
If your app is sending hundred of millions of requests per month,
you will probably get the same precision if you send only a fraction of it.
Thus, it decreases the bill at the end of the month. It's also a mitigation if
your app is a target of a DoS. There are 2 parameters to dissociate requests and jobs.
Indeed, for an app handling a lot of request but very few jobs, it makes sens to sample
the former but not the latter.
request_sampling_rate: 0.25 # 25% of requests are sent
job_sampling_rate: 0.5 # 50% of jobs are sent

end