module LookupBy::Lookup::ClassMethods
Public Instance Methods
[](*args)
click to toggle source
# File lib/lookup_by/lookup.rb, line 106 def [](*args) case args.size when 0 then raise ArgumentError, "#{name}[*args]: at least one argument is required" when 1 case arg = args.first when nil then nil when "" then @lookup.allow_blank? ? @lookup.fetch(arg) : nil when String then @lookup.fetch(arg) when Integer then @lookup.fetch(arg) when Symbol then @lookup.fetch(arg.to_s) when IPAddr then @lookup.fetch(arg.to_s) when self then arg else raise TypeError, "#{name}[*args]: args must be at least one String, Symbol, Integer, IPAddr, nil, or #{name}" end else return args.map { |arg| self[arg] } end end
all()
click to toggle source
Rails 4.1, 4.2, 5.0
Calls superclass method
# File lib/lookup_by/lookup.rb, line 67 def all return super if current_scope return super if @lookup.read_through? return super if @lookup.cache.empty? return super if @lookup.disabled? relation.tap do |rel| rel.instance_variable_set(:@records, @lookup.cache.values) rel.instance_variable_set(:@loaded, true) end end
count(column_name = nil, options = {})
click to toggle source
Rails 4.1, 4.2
Calls superclass method
# File lib/lookup_by/lookup.rb, line 82 def count(column_name = nil, options = {}) return super if @lookup.read_through? return super if column_name @lookup.cache.size end
pluck(*column_names)
click to toggle source
Calls superclass method
# File lib/lookup_by/lookup.rb, line 98 def pluck(*column_names) return super if @lookup.read_through? return super if @lookup.disabled? return super if column_names.size > 1 @lookup.cache.values.map { |o| o.send(column_names.first) } end
seed(*args)
click to toggle source
Calls superclass method
# File lib/lookup_by/lookup.rb, line 124 def seed(*args) super if defined?(super) @lookup.seed *args @lookup.reload end