activerecord-overflow_signalizer 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ba6c23bc654d000115059141378f0eff5e8e640
4
- data.tar.gz: b31460bfb549d6b973a2e33c734fe8873dbf4e7f
3
+ metadata.gz: c758da52b5a1ca2e01acaca51575575e1a5f9b0b
4
+ data.tar.gz: 46e307fb0fb06eef155e0820d83a1874a536454a
5
5
  SHA512:
6
- metadata.gz: c056a27d200ee3cb5b0122cbec8329aef60bb38f8861193865c75ccef8e014eac89e3d3a9f7aaea0211a8b0276d596f9e74afac7a27a69f98df4d9744f789a3d
7
- data.tar.gz: a895f0608d9335a65bd966ff455fdbb001b3188ecf8faeb5ef3c3b2e87c3b3b570845540ac9de62c3678d1aa6dbd261df326695c3c4e54229a0b66e1b2f15b43
6
+ metadata.gz: 89a1ba0120a8f88953ed9037cb6344f7d3153aa0200f486123d318549d0d721514b320f0c68d98544bee77ba388898174bc03038e44927baf3092ae8fd472b6a
7
+ data.tar.gz: a737bdde1217643433e357980be3942bed85898b5665d0ef32983cb23835a7947970fe6f2b8248597c5eccc7fb8ba35270fad059f18946b77d4ed668d8b01704
@@ -22,17 +22,19 @@ module ActiveRecord
22
22
  end
23
23
 
24
24
  def analyse!
25
+ overflowed_tables = []
25
26
  @models.group_by(&:table_name).each do |table, models|
26
27
  model = models.first
27
28
  next if model.abstract_class? || model.last.nil?
28
29
  pk = model.columns.select { |c| c.name == model.primary_key }.first
29
30
  max = MAX_VALUE.fetch(pk.sql_type) do |type|
30
- raise UnsupportedType, "Model #{model} has primary_key #{model.primary_key} with unsupported type #{type}"
31
+ @logger.warn "Model #{model} has primary_key #{model.primary_key} with unsupported type #{type}"
31
32
  end
32
33
  if overflow_soon?(max, model)
33
- raise Overflow, overflow_message(table, model.last.public_send(pk.name), max)
34
+ overflowed_tables << [table, model.last.public_send(pk.name), max]
34
35
  end
35
36
  end
37
+ raise Overflow, overflow_message(overflowed_tables) if overflowed_tables.any?
36
38
  end
37
39
 
38
40
  def analyse
@@ -61,12 +63,17 @@ module ActiveRecord
61
63
  week_records.reduce(:+) / week_records.keep_if { |v| v > 0 }.size
62
64
  end
63
65
 
64
- def overflow_message(table, current_value, max_value)
65
- if current_value == max_value
66
- "Primary key in table #{table} overflowed! #{current_value} from #{max_value}"
67
- else
68
- "Primary key in table #{table} will overflow soon! #{current_value} from #{max_value}"
66
+ def overflow_message(overflowed_tables)
67
+ overflowed = []
68
+ overflow_soon = []
69
+ overflowed_tables.each do |table, current_value, max_value|
70
+ if current_value == max_value
71
+ overflowed << table
72
+ else
73
+ overflow_soon << table
74
+ end
69
75
  end
76
+ "Owerflowed tables: #{overflowed}. Overflow soon tables: #{overflow_soon}"
70
77
  end
71
78
 
72
79
  def signalize(msg)
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  class OverflowSignalizer
3
- VERSION = '1.1.0'.freeze
3
+ VERSION = '2.0.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-overflow_signalizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - v.promzelev