Module: LookupBy::Lookup::ClassMethods
- Defined in:
- lib/lookup_by/lookup.rb
Instance Method Summary collapse
- #[](*args) ⇒ Object
-
#all ⇒ Object
Rails 4.1, 4.2, 5.0.
-
#count(column_name = nil) ⇒ Object
Rails 5.0.
- #pluck(*column_names) ⇒ Object
- #seed(*args) ⇒ Object
Instance Method Details
#[](*args) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# 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 ⇒ Object
Rails 4.1, 4.2, 5.0
67 68 69 70 71 72 73 74 75 76 77 78 |
# 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) ⇒ Object
Rails 5.0
82 83 84 85 86 87 |
# File 'lib/lookup_by/lookup.rb', line 82 def count(column_name = nil, = {}) return super if @lookup.read_through? return super if column_name @lookup.cache.size end |
#pluck(*column_names) ⇒ Object
98 99 100 101 102 103 104 |
# 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) ⇒ Object
124 125 126 127 128 129 |
# File 'lib/lookup_by/lookup.rb', line 124 def seed(*args) super if defined?(super) @lookup.seed *args @lookup.reload end |