Sha256: dff6ca4f422a854254aefd13cd36ec158c86f427daf1a6d7bb30024418c03daa
Contents?: true
Size: 1.37 KB
Versions: 2
Compression:
Stored size: 1.37 KB
Contents
module Bidu module Mercy class Report class Error < Report::ActiveRecord ALLOWED_PARAMETERS=[:period, :threshold] DEFAULT_OPTION = { external_key: :id, threshold: 0.02, period: 1.day, scope: :with_error, base_scope: :all, uniq: false } json_parse :threshold, type: :float json_parse :scope, :external_key, :uniq, :limit, case: :snake def initialize(options) super(self.class::DEFAULT_OPTION.merge(options)) end def percentage @percentage ||= fetch_percentage end def scoped @scoped ||= fetch_scoped(last_entries, scope) end def error? @error ||= percentage > threshold end def as_json { ids: ids, percentage: percentage, status: status } end private def ids relation = scoped relation = relation.distinct if uniq relation = relation.limit(limit) if limit relation.pluck(external_key) end def fetch_percentage if (scope.is_a?(Symbol)) last_entries.percentage(*(scope.to_s.split('.').map(&:to_sym))) else last_entries.percentage(scope) end end end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
mercy-1.3.0 | lib/bidu/mercy/report/error.rb |
bidu-mercy-1.3.0 | lib/bidu/mercy/report/error.rb |