class ShareProgress::VariantParser

Public Class Methods

parse(hash_to_parse) click to toggle source
# File lib/share_progress/variant_parser.rb, line 10
def self.parse(hash_to_parse)
  keys = hash_to_parse.keys.map(&:to_sym)
  match = nil
  [FacebookVariant, EmailVariant, TwitterVariant].each do |variant_class|
    if (keys & variant_class.fields).size > 0 # & is array intersection
      raise CouldNotParseVariant unless match.nil? # only match one class
      match = variant_class
    end
  end
  raise CouldNotParseVariant if match.nil?
  match
end