Module: Obfuscatable::ClassMethods

Defined in:
lib/obfuscatable.rb

Instance Method Summary collapse

Instance Method Details

#deobfuscatable(obfuscated_id) ⇒ Object



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

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

#find_obfuscated(*args) ⇒ Object



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

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)


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

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



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

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