Files
sure/config/initializers/simplefin.rb
2026-01-20 07:44:12 +01:00

34 lines
1.4 KiB
Ruby

Rails.application.configure do
truthy = %w[1 true yes on]
falsy = %w[0 false no off]
config.x.simplefin ||= ActiveSupport::OrderedOptions.new
# Default to true - always fetch pending transactions so they can be:
# - Displayed with a "Pending" badge
# - Excluded from budgets (but included in net worth)
# - Reconciled when posted versions arrive (avoiding duplicates)
# - Auto-excluded after 8 days if they remain stale
# Set SIMPLEFIN_INCLUDE_PENDING=0 to disable if a bank's integration causes issues
pending_env = ENV["SIMPLEFIN_INCLUDE_PENDING"].to_s.strip.downcase
config.x.simplefin.include_pending = pending_env.blank? ? true : !falsy.include?(pending_env)
config.x.simplefin.debug_raw = truthy.include?(ENV["SIMPLEFIN_DEBUG_RAW"].to_s.strip.downcase)
# Common money market fund tickers that should be treated as cash equivalents
# These are settlement funds that users consider "cash available to invest"
# SimpleFIN doesn't provide is_cash_equivalent metadata like Plaid does,
# so we detect by ticker symbol and description patterns
config.x.simplefin.money_market_tickers = %w[
VMFXX VMMXX VMRXX VUSXX
SPAXX FDRXX SPRXX FZFXX FDLXX
SWVXX SNVXX SNOXX
TTTXX PRTXX
].freeze
# Patterns that indicate money market funds (case-insensitive)
config.x.simplefin.money_market_patterns = [
/money\s*market/i,
/settlement\s*fund/i,
/cash\s*reserve/i
].freeze
end