File Coverage

blib/lib/Data/Fake/Company.pm
Criterion Covered Total %
statement 23 23 100.0
branch n/a
condition n/a
subroutine 11 11 100.0
pod 2 2 100.0
total 36 36 100.0


line stmt bran cond sub pod time code
1 2     2   72055 use 5.008001;
  2         16  
2 2     2   12 use strict;
  2         4  
  2         55  
3 2     2   10 use warnings;
  2         3  
  2         168  
4              
5             package Data::Fake::Company;
6             # ABSTRACT: Fake company and job data generators
7              
8             our $VERSION = '0.006';
9              
10 2     2   14 use Exporter 5.57 qw/import/;
  2         45  
  2         133  
11              
12             our @EXPORT = qw(
13             fake_company
14             fake_title
15             );
16              
17 2     2   492 use Data::Fake::Core ();
  2         4  
  2         36  
18 2     2   1133 use Data::Fake::Names ();
  2         6  
  2         673  
19              
20             my ( @job_titles, $job_title_count );
21             my ( @company_suffix, $company_suffix_count );
22              
23 6     6   69 sub _job_title { return $job_titles[ int( rand($job_title_count) ) ] }
24 1     1   10 sub _company_suffix { return $company_suffix[ int( rand($company_suffix_count) ) ] }
25              
26             #pod =func fake_company
27             #pod
28             #pod $generator = fake_company();
29             #pod
30             #pod Takes no arguments and returns a generator that returns a randomly generated
31             #pod fake company name.
32             #pod
33             #pod =cut
34              
35             sub fake_company {
36 6     6 1 4279 my $fake_surname = Data::Fake::Names::fake_surname();
37 6         20 return Data::Fake::Core::fake_pick(
38             Data::Fake::Core::fake_template( "%s, %s", $fake_surname, \&_company_suffix ),
39             Data::Fake::Core::fake_template( "%s-%s", ($fake_surname) x 2 ),
40             Data::Fake::Core::fake_template( "%s, %s and %s", ($fake_surname) x 3 ),
41             );
42             }
43              
44             #pod =func fake_title
45             #pod
46             #pod $generator = fake_title();
47             #pod
48             #pod Takes no arguments and returns a generator that returns a randomly generated
49             #pod job title (drawn from a corpus of ~90 common titles sources from Glassdoor).
50             #pod
51             #pod =cut
52              
53             sub fake_title {
54 6     6   14 return sub { _job_title() }
55 6     6 1 3020 }
56              
57             # list of most common job titles from glassdoor.com with some edits and
58             # amendments
59             @job_titles = (
60             'Account Executive',
61             'Account Manager',
62             'Accountant',
63             'Actuary',
64             'Administrative Assistant',
65             'Analyst',
66             'Applications Engineer',
67             'Architect',
68             'Art Director',
69             'Assistant Manager',
70             'Assistant Store Manager',
71             'Assistant Vice President',
72             'Associate',
73             'Associate Consultant',
74             'Associate Director',
75             'Attorney',
76             'Audit Associate',
77             'Branch Manager',
78             'Business Analyst',
79             'Business Development Manager',
80             'Cashier',
81             'Civil Engineer',
82             'Consultant',
83             'Customer Service',
84             'Customer Service Representative',
85             'Data Analyst',
86             'Design Engineer',
87             'Developer',
88             'Director',
89             'Editor',
90             'Electrical Engineer',
91             'Engineer',
92             'Engineering Manager',
93             'Executive Assistant',
94             'Finance Manager',
95             'Financial Advisor',
96             'Financial Analyst',
97             'Financial Representative',
98             'Flight Attendant',
99             'General Manager',
100             'Graduate Research Assistant',
101             'Graphic Designer',
102             'Hardware Engineer',
103             'Human Resources Manager',
104             'Investment Banking Analyst',
105             'IT Analyst',
106             'It Manager',
107             'IT Specialist',
108             'Law Clerk',
109             'Management Trainee',
110             'Manager',
111             'Marketing Assistant',
112             'Marketing Director',
113             'Marketing Manager',
114             'Mechanical Engineer',
115             'Member of Technical Staff',
116             'Network Engineer',
117             'Office Manager',
118             'Operations Analyst',
119             'Operations Manager',
120             'Personal Banker',
121             'Pharmacist',
122             'Principal Consultant',
123             'Principal Engineer',
124             'Principal Software Engineer',
125             'Process Engineer',
126             'Product Manager',
127             'Program Manager',
128             'Programmer',
129             'Programmer Analyst',
130             'Project Engineer',
131             'Project Manager',
132             'Public Relations',
133             'QA Engineer',
134             'Recruiter',
135             'Registered Nurse',
136             'Research Analyst',
137             'Research Assistant',
138             'Research Associate',
139             'Sales',
140             'Sales Associate',
141             'Sales Engineer',
142             'Sales Manager',
143             'Sales Representative',
144             'Senior Accountant',
145             'Senior Analyst',
146             'Senior Associate',
147             'Senior Business Analyst',
148             'Senior Consultant',
149             'Senior Director',
150             'Senior Engineer',
151             'Senior Financial Analyst',
152             );
153              
154             @company_suffix = qw( Inc. Corp. LP LLP LLC );
155              
156             $job_title_count = @job_titles;
157             $company_suffix_count = @company_suffix;
158              
159              
160             # vim: ts=4 sts=4 sw=4 et tw=75:
161              
162             __END__