Module | FeedTools::GenericHelper |
In: |
lib/feed_tools/helpers/generic_helper.rb
|
Generic methods needed in numerous places throughout FeedTools
Nifty little method that takes a block and returns nil if recursion occurs or the block‘s result value if it doesn‘t.
# File lib/feed_tools/helpers/generic_helper.rb, line 40 40: def self.recursion_trap(lock_object, &block) 41: if @lock_ids.nil? 42: @lock_ids = [] 43: end 44: if !@lock_ids.include?(lock_object.object_id) 45: @lock_ids << lock_object.object_id 46: else 47: return nil 48: end 49: begin 50: result = block.call 51: rescue SystemStackError 52: result = nil 53: end 54: @lock_ids.delete(lock_object.object_id) 55: return result 56: end
Raises an exception if an invalid option has been specified to prevent misspellings from slipping through
# File lib/feed_tools/helpers/generic_helper.rb, line 31 31: def self.validate_options(valid_option_keys, supplied_option_keys) 32: unknown_option_keys = supplied_option_keys - valid_option_keys 33: unless unknown_option_keys.empty? 34: raise "Unknown options: #{unknown_option_keys}" 35: end 36: end