Class: PreloadedDataHash
- Defined in:
- lib/factory_data_preloader/preloaded_data_hash.rb
Instance Attribute Summary collapse
-
#preloader ⇒ Object
readonly
Returns the value of attribute preloader.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, record) ⇒ Object
- #add(key) ⇒ Object
-
#initialize(preloader) ⇒ PreloadedDataHash
constructor
A new instance of PreloadedDataHash.
- #record_ids ⇒ Object
Constructor Details
#initialize(preloader) ⇒ PreloadedDataHash
Returns a new instance of PreloadedDataHash.
4 5 6 |
# File 'lib/factory_data_preloader/preloaded_data_hash.rb', line 4 def initialize(preloader) @preloader, @backing_hash = preloader, {} end |
Instance Attribute Details
#preloader ⇒ Object (readonly)
Returns the value of attribute preloader.
2 3 4 |
# File 'lib/factory_data_preloader/preloaded_data_hash.rb', line 2 def preloader @preloader end |
Instance Method Details
#[](key) ⇒ Object
13 14 15 |
# File 'lib/factory_data_preloader/preloaded_data_hash.rb', line 13 def [](key) @backing_hash[key] end |
#[]=(key, record) ⇒ Object
8 9 10 11 |
# File 'lib/factory_data_preloader/preloaded_data_hash.rb', line 8 def []=(key, record) puts "DEPRECATION WARNING: Instead of 'data[:#{key}] = record' please use 'data.add(:#{key}) { record }'" add_to_backing_hash(key, record) end |
#add(key) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/factory_data_preloader/preloaded_data_hash.rb', line 21 def add(key) raise "You must pass a block to PreloaderDataHash#add. You forgot to use the block in your #{preloader.model_type} prelodaer for the #{key.inspect} record." unless block_given? begin add_to_backing_hash(key, yield) rescue => e puts "WARNING: an error occurred while preloading the #{preloader.model_type.to_s}(:#{key}) record: #{e.class.to_s}: #{e.}" add_to_backing_hash(key, nil, e) end end |
#record_ids ⇒ Object
17 18 19 |
# File 'lib/factory_data_preloader/preloaded_data_hash.rb', line 17 def record_ids @backing_hash.values.select { |value| value.is_a?(Fixnum) } end |