class HashComparator::Emails::Analyzer
Attributes
hash_function[RW]
options[RW]
subject_hashed_emails[RW]
subject_plaintext_emails[RW]
target_hashed_emails[RW]
Public Class Methods
find_common_hashes(hash_function:, subject_plaintext_emails:, target_hashed_emails:, options: {})
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 18 def self.find_common_hashes(hash_function:, subject_plaintext_emails:, target_hashed_emails:, options: {}) new( hash_function: hash_function, subject_plaintext_emails: subject_plaintext_emails, target_hashed_emails: target_hashed_emails, options: options ).find_common_hashes end
find_common_plaintext(hash_function:, subject_plaintext_emails:, target_hashed_emails:, options: {})
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 9 def self.find_common_plaintext(hash_function:, subject_plaintext_emails:, target_hashed_emails:, options: {}) new( hash_function: hash_function, subject_plaintext_emails: subject_plaintext_emails, target_hashed_emails: target_hashed_emails, options: options ).find_common_plaintext end
find_full_results(hash_function:, subject_plaintext_emails:, target_hashed_emails:, options: {})
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 27 def self.find_full_results(hash_function:, subject_plaintext_emails:, target_hashed_emails:, options: {}) new( hash_function: hash_function, subject_plaintext_emails: subject_plaintext_emails, target_hashed_emails: target_hashed_emails, options: options ).find_full_results end
new(hash_function:, subject_plaintext_emails:, target_hashed_emails:, options:)
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 36 def initialize(hash_function:, subject_plaintext_emails:, target_hashed_emails:, options:) @hash_function = hash_function @subject_plaintext_emails = subject_plaintext_emails @target_hashed_emails = target_hashed_emails @options = options @subject_hashed_emails = [] end
Public Instance Methods
find_common_hashes()
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 51 def find_common_hashes parse hash compare end
find_common_plaintext()
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 46 def find_common_plaintext common_hashes = find_common_hashes reverse_match(common_hashes) end
find_full_results()
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 57 def find_full_results common_hashed_emails = find_common_hashes common_plaintext_emails = reverse_match(common_hashed_emails) { common_hashed_emails: common_hashed_emails, common_plaintext_emails: common_plaintext_emails } end
Private Instance Methods
compare()
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 78 def compare SetComparator.calculate_overlap( subject_items: subject_hashed_emails, target_items: target_hashed_emails ) end
hash()
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 71 def hash @subject_hashed_emails = Hasher.hash( hash_function: hash_function, plaintext_items: subject_plaintext_emails ) end
parse()
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 65 def parse if options[:parsing] @subject_plaintext_emails = Parser.parse(subject_plaintext_emails, options[:parsing]) end end
reverse_match(common_hashes)
click to toggle source
# File lib/hash_comparator/emails/analyzer.rb, line 85 def reverse_match(common_hashes) ReverseMatcher.execute( hash_function: hash_function, hashed_items: common_hashes, plaintext_items: subject_plaintext_emails ) end