| 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