Module: Obfuscatable::ClassMethods

Defined in:
lib/obfuscatable.rb

Instance Method Summary collapse

Instance Method Details

#deobfuscatable(obfuscated_id) ⇒ Object



39
40
41
# File 'lib/obfuscatable.rb', line 39

def deobfuscatable(obfuscated_id)
  Obfuscatable.show(obfuscated_id, self.obfuscatable_spin)
end

#find_obfuscated(*args) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/obfuscatable.rb', line 22

def find_obfuscated(*args)
  scope = args.slice!(0)
  options = args.slice!(0) || {}
  if has_obfuscated_id?
    if scope.is_a?(Array)
      scope.map! {|a| deobfuscatable(a).to_i}
    else
      scope = deobfuscatable(scope).to_i
    end
  end
  find(scope)
end

#has_obfuscated_id?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/obfuscatable.rb', line 35

def has_obfuscated_id?
  true
end

#obfuscatable_default_spinObject

Generate a default spin from the Model name This makes it easy to drop obfuscatable onto any model and produce different obfuscated ids for different models



46
47
48
49
50
51
52
# File 'lib/obfuscatable.rb', line 46

def obfuscatable_default_spin
  alphabet = Array("a".."z")
  number = name.split("").collect do |char|
    alphabet.index(char)
  end
  number.shift(12).join.to_i
end