Module: NoBrainer::Criteria::Pluck

Extended by:
ActiveSupport::Concern
Defined in:
lib/no_brainer/criteria/pluck.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.merge_missing_attributes(a, b) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/no_brainer/criteria/pluck.rb', line 23

def self.merge_missing_attributes(a, b)
  return nil if b.nil? || b == :remove

  a = a ? a.dup : {}
  b.each do |type, attrs|
    old_attrs = a[type] || {}.with_indifferent_access
    new_attrs = old_attrs.deep_merge(attrs)
    a[type] = new_attrs
  end
  a
end

Instance Method Details

#lazy_fetch(*attrs) ⇒ Object



15
16
17
# File 'lib/no_brainer/criteria/pluck.rb', line 15

def lazy_fetch(*attrs)
  _missing_attributes_criteria(:lazy_fetch, attrs)
end

#pluck(*attrs) ⇒ Object



7
8
9
# File 'lib/no_brainer/criteria/pluck.rb', line 7

def pluck(*attrs)
  _missing_attributes_criteria(:pluck, attrs)
end

#without(*attrs) ⇒ Object



11
12
13
# File 'lib/no_brainer/criteria/pluck.rb', line 11

def without(*attrs)
  _missing_attributes_criteria(:without, attrs)
end

#without_pluckingObject



19
20
21
# File 'lib/no_brainer/criteria/pluck.rb', line 19

def without_plucking
  chain(:missing_attributes => :remove)
end