lib/rorvswild/rails_loader.rb



module RorVsWild
  class RailsLoader
    def self.start_on_rails_initialization
      return if !defined?(Rails)
      Rails::Railtie.initializer "rorvswild.detect_config_file" do
        RorVsWild::RailsLoader.start
      end
    end

    def self.start
      return if RorVsWild.agent

      if (config = load_config) && config[:api_key]
        RorVsWild.start(config)
      elsif Rails.env.development?
        require "rorvswild/local"
        RorVsWild::Local.start(config || {})
      end
    end

    def self.load_config
      if (path = Rails.root.join("config/rorvswild.yml")).exist?
        yaml = ERB.new(path.read).result
        hash = YAML.safe_load(yaml, permitted_classes: [Regexp])
        hash[Rails.env] && hash[Rails.env].deep_symbolize_keys
      end
    end
  end
end