Class: SmartIgnoredColumns::IgnoredColumn

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_ignored_columns/ignored_column.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, remove_after) ⇒ IgnoredColumn

Returns a new instance of IgnoredColumn.



35
36
37
38
39
40
41
42
43
44
# File 'lib/smart_ignored_columns/ignored_column.rb', line 35

def initialize(name, remove_after)
  @name = name.to_s

  @remove_after =
    if remove_after.is_a?(String)
      Date.parse(remove_after)
    else
      remove_after
    end
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



33
34
35
# File 'lib/smart_ignored_columns/ignored_column.rb', line 33

def name
  @name
end

#remove_afterObject (readonly)

Returns the value of attribute remove_after.



33
34
35
# File 'lib/smart_ignored_columns/ignored_column.rb', line 33

def remove_after
  @remove_after
end

Class Method Details

.allObject



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/smart_ignored_columns/ignored_column.rb', line 6

def self.all
  list = []

  ActiveRecord::Base.descendants.each do |klass|
    next if klass.abstract_class?

    if klass.smart_ignored_columns.any?
      list << [klass, klass.smart_ignored_columns]
    end
  end

  list
end

.obsoleteObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/smart_ignored_columns/ignored_column.rb', line 20

def self.obsolete
  list = []

  all.each do |klass, columns|
    obsolete_columns = columns.select(&:obsolete?)
    if obsolete_columns.any?
      list << [klass, obsolete_columns]
    end
  end

  list
end

Instance Method Details

#obsolete?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/smart_ignored_columns/ignored_column.rb', line 46

def obsolete?
  @remove_after < Date.today
end