Module: Permalinkable::ClassMethods

Defined in:
lib/permalinkable/permalinkable.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_permalinkable(options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/permalinkable/permalinkable.rb', line 9

def acts_as_permalinkable(options = {})
  send :cattr_accessor, :permalink_options
  self.permalink_options = { permalinkable_attribute: :name, permalink_field_name: :permalink,
                             length: 200, allow_change: false }
  self.permalink_options.update(options) if options.is_a?(Hash)
  self.permalink_options.freeze

  send :include, InstanceMethods
  send :after_save, :save_permalink
  send :attr_readonly, permalink_options[:permalink_field_name]
  send :validates, permalink_options[:permalinkable_attribute], presence: true, length: { minimum: 0 }
end


22
23
24
25
26
27
# File 'lib/permalinkable/permalinkable.rb', line 22

def permalink_cipher
  cipher = OpenSSL::Cipher.new('RC4-40')
  cipher.encrypt
  cipher.key = Base64.urlsafe_decode64(Configure.secret)
  cipher
end