-
Notifications
You must be signed in to change notification settings - Fork 0
/
company_check.rb
88 lines (74 loc) · 2.17 KB
/
company_check.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
GENERIC_KEYWORDS=["Iron","Hill","Lake","Mount","and","Group","Creek",
"North","West","Corp","Ltd","Silver","Resources","Areas","South","Eastern",
"Minerals"]
ACRONYMS={"FMG"=>"Fortescue"}
require 'rubygems'
gem 'activerecord'
require 'yaml'
require 'active_record'
require 'csv'
require File.join('.', 'connection.rb')
require File.join('./lib', 'entity.rb')
require File.join('./lib', 'deposit.rb')
require File.join('./lib', 'company.rb')
def find_names
deposits = Deposit.all
deposits.each do |deposit|
name = deposit.name
name =~ /.*\((.*)\)/ #Find text between parentheses
company_name = $1
unless company_name.blank?
puts "Searching for companies associated with deposit '#{deposit.name}' (eno: #{deposit.eno})"
companies = check_company_name(company_name)
end
unless companies.nil?
companies.each do |company|
associate_ownership(deposit, company)
end
end
end
end
def check_company_name(name)
ACRONYMS.keys.include?(name) ? name = ACRONYMS[name] :
if name.length < 3
puts "Name '#{name}' too short to query"
return
end
if GENERIC_KEYWORDS.include?(name)
puts "Name '#{name}' too generic to query"
return
end
puts "Looking for company with name \"#{name}\" ..."
companies=Company.by_name(name)
case companies.size
when 0
companies = Array.new
if name.include?("JV")
puts "Company #{name} is a joint venture"
name = name.split(/JV/).map{|s| s.strip}
else
name = name.split(/ /)
end
if name.size > 1
name.each do |n|
companies << check_company_name(n)
end
else
puts "No companies found"
return companies
end
return companies.compact # compact removes nils returned from recursive searches
when 1
puts "Found #{companies.first.company_name} for #{name}"
return companies
else
puts "Company: #{name} returns two or more companies"
companies.each_with_index do |company,i|
puts "(#{i}) #{company.company_name}"
end
return companies
end
end
def associate_ownership(deposit, company)
end
find_names