Module: DefaultKey

Includes:
ActiveSupport::Concern
Included in:
Memory
Defined in:
app/models/concern/default_key.rb

Defined Under Namespace

Modules: InstanceMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(klass) ⇒ Object



35
36
# File 'app/models/concern/default_key.rb', line 35

def self.extended klass
klass.include( InstanceMethods ) ;end

Instance Method Details

#default_keyObject



4
5
# File 'app/models/concern/default_key.rb', line 4

def default_key
@@default_key ;end

#default_key=(key) ⇒ Object



7
8
# File 'app/models/concern/default_key.rb', line 7

def default_key= key
@@default_key = key ;end

#find(*args) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/models/concern/default_key.rb', line 13

def find *args
      if self.respond_to?( :default_key )
new_args = args.flatten.reject { |a| a.blank? }
rel = self.where(self.default_key => new_args)
if rel.size < new_args.size
   rel = self.where(self.primary_key => new_args)
   if rel.size < new_args.size
      raise ::ActiveRecord::RecordNotFound
   else
      new_args.size > 1 && rel || rel.first ;end
else
   new_args.size > 1 && rel || rel.first ;end
      else
super ;end ;end

#has_default_key(key) ⇒ Object



10
11
# File 'app/models/concern/default_key.rb', line 10

def has_default_key key
self.default_key = key ;end