module Refcode::Encodable
Public Class Methods
included(base)
click to toggle source
# File lib/refcode/encodable.rb, line 5 def self.included base base.extend ClassMethods end
Public Instance Methods
generate_refcode(val)
click to toggle source
# File lib/refcode/encodable.rb, line 9 def generate_refcode val check_refcode_options! encoder.encode val end
parse_refcode(code)
click to toggle source
# File lib/refcode/encodable.rb, line 14 def parse_refcode code check_refcode_options! encoder.decode code end
Private Instance Methods
check_refcode_options!()
click to toggle source
# File lib/refcode/encodable.rb, line 40 def check_refcode_options! raise RefcodeInitException.new('You must call the has_refcode method in your class definition') unless self.class.refcode_options end
encoder()
click to toggle source
# File lib/refcode/encodable.rb, line 31 def encoder Refcode::Encoder.new do |r| check_refcode_options! r.secret = get_option_value(self.class.refcode_options[:secret]) r.salt = get_option_value(self.class.refcode_options[:salt]) raise "Value for salt is nil (#{salt_option} given)" if r.salt.nil? end end
get_option_value(option)
click to toggle source
# File lib/refcode/encodable.rb, line 44 def get_option_value option if option.respond_to? :call option.call self elsif option.is_a? Symbol self.send option else option end end