Class: ShieldPressTracker::Config
- Inherits:
-
Object
- Object
- ShieldPressTracker::Config
- Defined in:
- lib/shieldpress_tracker/config.rb
Constant Summary collapse
- DEFAULTS =
{ api_url: "https://api.shieldpress.net", report_interval: 60, system_metrics: true, http_tracking: true, error_tracking: true, security_tracking: true, dep_audit: true, dep_audit_interval: 3600, runtime_metrics: true, env_security: true, heartbeat: true, app_name: "ruby-app", app_version: "0.0.0", environment: "production", tags: {}, ignore_paths: ["/health", "/healthz", "/ready", "/favicon.ico", "/assets/*"], max_error_buffer: 100, max_security_buffer: 500, debug: false }.freeze
Instance Method Summary collapse
-
#initialize(values = {}) ⇒ Config
constructor
A new instance of Config.
Constructor Details
#initialize(values = {}) ⇒ Config
Returns a new instance of Config.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/shieldpress_tracker/config.rb', line 14 def initialize(values = {}) values = values.transform_keys(&:to_sym) @api_key = values[:api_key] || ENV["SHIELDPRESS_API_KEY"] || ENV["SHIELDPRESS_SECRET"] @site_id = values[:site_id] || ENV["SHIELDPRESS_SITE_ID"] || ENV["SHIELDPRESS_APP_ID"] raise ArgumentError, "[ShieldPress] api_key is required" if @api_key.to_s.empty? raise ArgumentError, "[ShieldPress] site_id is required" if @site_id.to_s.empty? DEFAULTS.each do |key, default| env = { api_url: "SHIELDPRESS_API_URL", app_name: "SHIELDPRESS_APP_NAME", app_version: "SHIELDPRESS_APP_VERSION" }[key] value = values.key?(key) ? values[key] : (env && ENV[env]) || default instance_variable_set("@#{key}", value) end @api_url = @api_url.sub(%r{/$}, "") @environment = values[:environment] || ENV["APP_ENV"] || ENV["RACK_ENV"] || "production" end |