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