attribute_examples.rb 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. class Sequencer
  2. class Unit
  3. module Import
  4. module Exchange
  5. class AttributeExamples < Sequencer::Unit::Base
  6. include ::Sequencer::Unit::Exchange::Folders::Mixin::Folder
  7. uses :ews_folder_ids
  8. provides :ews_attributes_examples
  9. def process
  10. state.provide(:ews_attributes_examples) do
  11. ::Import::Helper::AttributesExamples.new do |extractor|
  12. ews_folder_ids.collect do |folder_id|
  13. ews_folder.find(folder_id).items.each do |resource|
  14. attributes = ::Import::Exchange::ItemAttributes.extract(resource)
  15. extractor.extract(attributes)
  16. break if extractor.enough
  17. end
  18. rescue NoMethodError => e
  19. raise if !e.message.include?('Viewpoint::EWS::')
  20. logger.error e
  21. logger.error "Skipping folder_id '#{folder_id}' due to unsupported entries."
  22. end
  23. end.examples
  24. end
  25. end
  26. end
  27. end
  28. end
  29. end
  30. end