Module: Fingerprintable::Mixin::ClassMethods

Defined in:
lib/fingerprintable/mixin.rb

Instance Method Summary collapse

Instance Method Details

#fingerprint(*attrs, ignore: []) ⇒ Object



9
10
11
12
13
# File 'lib/fingerprintable/mixin.rb', line 9

def fingerprint(*attrs, ignore: [])
  @fingerprintable_attributes = fingerprintable_attributes | attrs
  ignore = [ignore] if ignore.is_a?(String) || ignore.is_a?(Symbol)
  fingerprintable_config[:ignore] |= ignore
end

#fingerprintable_attributesObject



15
16
17
# File 'lib/fingerprintable/mixin.rb', line 15

def fingerprintable_attributes
  @fingerprintable_attributes ||= []
end

#fingerprintable_configObject



19
20
21
22
23
# File 'lib/fingerprintable/mixin.rb', line 19

def fingerprintable_config
  @fingerprintable_config ||= {
    ignore: []
  }
end

#inherited(subclass) ⇒ Object



4
5
6
7
# File 'lib/fingerprintable/mixin.rb', line 4

def inherited(subclass)
  subclass.fingerprint(*fingerprintable_attributes)
  super(subclass)
end