Module: OfflineLookup::ActiveRecord::ClassMethods
- Defined in:
- lib/offline_lookup/active_record.rb
Instance Method Summary collapse
- #get_offline_lookup_values ⇒ Object
- #offline_lookup_value(*fields) ⇒ Object
- #use_offline_lookup(*fields, key: "id", identity_methods: false, lookup_methods: false, compact: false, delimiter: " ", name: fields.join(delimiter), transform: nil) ⇒ Object
Instance Method Details
#get_offline_lookup_values ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/offline_lookup/active_record.rb', line 50 def get_offline_lookup_values self.offline_lookup_values = self.all.pluck([:key], *[:fields]).map do |key, *fields| fields.compact! if [:compact] value = [:transform].present? ? [:transform].call(*fields.map(&:to_s)) : fields.map(&:to_s).join([:delimiter]) [key, value.to_s] end.to_h.freeze end |
#offline_lookup_value(*fields) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/offline_lookup/active_record.rb', line 42 def offline_lookup_value(*fields) if [:transform].present? [:transform].call(*fields.map(&:to_s)) else fields.map(&:to_s).join([:delimiter]) end end |
#use_offline_lookup(*fields, key: "id", identity_methods: false, lookup_methods: false, compact: false, delimiter: " ", name: fields.join(delimiter), transform: nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/offline_lookup/active_record.rb', line 24 def use_offline_lookup(*fields, key: "id", identity_methods: false, lookup_methods: false, compact: false, delimiter: " ", name: fields.join(delimiter), transform: nil) class_attribute :offline_lookup_values, :offline_lookup_options self. = { fields: fields.map(&:to_s), key: key.to_s, identity_methods: !!identity_methods, lookup_methods: !!lookup_methods, compact: !!compact, delimiter: delimiter.to_s, name: name, transform: transform }.freeze get_offline_lookup_values include OfflineLookup::Base end |