Module: Idy::Extension::ClassMethods
- Defined in:
- lib/idy/extension.rb
Instance Method Summary collapse
- #findy(hash) ⇒ Object
- #findy!(hash) ⇒ Object
- #idy(options = {}) ⇒ Object
- #idy_decode(hash, salt: self.salt) ⇒ Object
- #idy_default_salt ⇒ Object
- #idy_encode(id, salt: self.salt) ⇒ Object
- #idy_options ⇒ Object
- #salt ⇒ Object
Instance Method Details
#findy(hash) ⇒ Object
24 25 26 |
# File 'lib/idy/extension.rb', line 24 def findy(hash) find_by id: idy_decode(hash) end |
#findy!(hash) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/idy/extension.rb', line 28 def findy!(hash) record = find_by(id: idy_decode(hash)) not_found!(hash) if record.nil? record end |
#idy(options = {}) ⇒ Object
36 37 38 39 40 |
# File 'lib/idy/extension.rb', line 36 def idy( = {}) = .reverse_merge(salt: idy_default_salt) define_singleton_method(:idy?) { true } end |
#idy_decode(hash, salt: self.salt) ⇒ Object
42 43 44 |
# File 'lib/idy/extension.rb', line 42 def idy_decode(hash, salt: self.salt) encoder(salt).decode(hash).first end |
#idy_default_salt ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/idy/extension.rb', line 46 def idy_default_salt alphabet = Array('a'..'z') indexes = name.downcase.split('').map do |char| alphabet.index(char) + 1 end indexes.shift(10).join end |
#idy_encode(id, salt: self.salt) ⇒ Object
56 57 58 59 60 |
# File 'lib/idy/extension.rb', line 56 def idy_encode(id, salt: self.salt) return unless id encoder(salt).encode id end |
#idy_options ⇒ Object
62 63 64 |
# File 'lib/idy/extension.rb', line 62 def || { salt: idy_default_salt } end |
#salt ⇒ Object
66 67 68 |
# File 'lib/idy/extension.rb', line 66 def salt [:salt] end |