module Keytar

Constants

DEFAULTS

Public Class Methods

define_key_class_method_on(base, options = {}) click to toggle source
# File lib/keytar.rb, line 41
def self.define_key_class_method_on(base, options = {})
  (class << base;self ;end).instance_eval do
    define_method("#{options[:name]}_key") do |*args|
      build_key(options.merge(:args => args))
    end
  end
end
define_key_instance_method_on(base, options) click to toggle source
# File lib/keytar.rb, line 49
def self.define_key_instance_method_on(base, options)
  base.class_eval do
    define_method("#{options[:name]}_key") do |*args|
      build_key(options.merge(:args => args))
    end
  end
end

Public Instance Methods

build_key(options = {}) click to toggle source

build_key method for instances by default class is pluralized to create different key

# File lib/keytar.rb, line 89
def build_key(options = {})
  options.reverse_merge!(self.class.key_config)
  unique            = method(options[:unique].to_sym).call if respond_to?(options[:unique].to_sym)
  options[:base]    = options[:base].to_s.pluralize unless options[:pluralize_instances].blank?
  options[:unique]  = unique && unique == object_id ?  nil  : unique
  Key.build(options)
end