Module: LookupBy::Lookup::ClassMethods
- Defined in:
- lib/lookup_by/lookup.rb
Instance Method Summary collapse
- #[](*args) ⇒ Object
-
#all(*args) ⇒ Object
TODO: Rails 4 needs to return a proxy object here.
- #count(column_name = nil, options = {}) ⇒ Object
- #pluck(*column_names) ⇒ Object
- #seed(*args) ⇒ Object
Instance Method Details
#[](*args) ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/lookup_by/lookup.rb', line 92 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(*args) ⇒ Object
TODO: Rails 4 needs to return a proxy object here
67 68 69 70 71 72 73 74 |
# File 'lib/lookup_by/lookup.rb', line 67 def all(*args) return super if Rails::VERSION::MAJOR >= 4 return super if @lookup.read_through? return super if @lookup.disabled? return super if args.any? @lookup.cache.values end |
#count(column_name = nil, options = {}) ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/lookup_by/lookup.rb', line 76 def count(column_name = nil, = {}) return super if @lookup.read_through? return super if @lookup.disabled? return super if column_name @lookup.cache.size end |
#pluck(*column_names) ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/lookup_by/lookup.rb', line 84 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
110 111 112 113 114 115 |
# File 'lib/lookup_by/lookup.rb', line 110 def seed(*args) super if defined?(super) @lookup.seed *args @lookup.reload end |