pseudo_entity 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ed330667433de06f720edbf6c5521158da50a187
4
- data.tar.gz: f6fa6936cf78078cb624047f74015c1cb97dc0bf
2
+ SHA256:
3
+ metadata.gz: 67f8a85e3fe08c09eda5f3100bdc882689afde2c456d9b4ce40689f9da6ddcdb
4
+ data.tar.gz: d40a2dae8ab2fdc9c3fe0128e5fbc4f545a0a25de1addc7ca39bd889da1cbb34
5
5
  SHA512:
6
- metadata.gz: ce9ad2fc3efb2fa8019a202933c87e9c03c034e3df2795dad22f9f35e4c43e4d1f1bce2535572560882a0df9e7050ec55be617016d609660bebc6be12c58176e
7
- data.tar.gz: 379cf79c9cda5989f52eaaa5067d906bfeb99196a03a2943b332d96e3b184b37adf1cfbc02eb989770c83d48fc8c02e494483a6ff0f16d6db48fb8bc271e4a84
6
+ metadata.gz: a46f26e2311b6b91d71acf023eedd9cecaf873beabdce1a4f6ed0788e43944e0041702dcbfd0678642d745d185776d7bb39b5b2ba208a7bcf657aac04b02addf
7
+ data.tar.gz: 1de9d7a489007fd015f0ac28de120ecf190ceced78d152e55b32561d3b3fed86ca3680d4d4e199acd32cb7341bccc4dd95a0e7e7ab68b19055879ef3d98cca31
@@ -19,12 +19,11 @@ class PseudoEntity::Randoms::Location
19
19
  @latitude = options[:latitude].to_f
20
20
  @longitude = options[:longitude].to_f
21
21
  @country_code = options[:country_code]
22
- time_zone = options[:time_zone]
23
- unless time_zone.is_a?(ActiveSupport::TimeZone)
24
- time_zone = ActiveSupport::TimeZone.all.find { |x| x.tzinfo == ActiveSupport::TimeZone.find_tzinfo(time_zone)} if time_zone
25
- time_zone = idealized_time_zone if time_zone.nil?
22
+ @time_zone = options[:time_zone]
23
+ unless @time_zone.is_a?(ActiveSupport::TimeZone)
24
+ tzinfo = ActiveSupport::TimeZone.find_tzinfo(@time_zone.to_s.sub(/^\(.*?\) /, '')) rescue nil
25
+ @time_zone = tzinfo && ActiveSupport::TimeZone.all.find { |x| x.tzinfo == tzinfo } || idealized_time_zone
26
26
  end
27
- @time_zone = time_zone
28
27
  end
29
28
 
30
29
  def to_s
@@ -1,3 +1,3 @@
1
1
  class PseudoEntity
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,127 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pseudo_entity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank Hall
8
- autorequire:
9
- bindir: bin
8
+ autorequire:
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2013-06-13 00:00:00.000000000 Z
11
+ date: 2022-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '2.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
26
+ version: '2.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '13'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '13'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.13'
47
+ version: '3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.13'
54
+ version: '3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: uuidtools
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.1'
61
+ version: '2.2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.1'
68
+ version: '2.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activesupport
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.0'
75
+ version: '7'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.0'
82
+ version: '7'
83
83
  - !ruby/object:Gem::Dependency
84
- name: iconv
84
+ name: tzinfo
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '2'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '2'
97
97
  - !ruby/object:Gem::Dependency
98
- name: tzinfo
98
+ name: tzinfo-data
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '1'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: huge_enumerable
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: '0.1'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: '0.1'
125
125
  description: A class for generating realistic looking data for people, companies,
126
126
  etc.
127
127
  email:
@@ -130,7 +130,6 @@ executables: []
130
130
  extensions: []
131
131
  extra_rdoc_files: []
132
132
  files:
133
- - .gitignore
134
133
  - Gemfile
135
134
  - LICENSE.txt
136
135
  - README.md
@@ -142,35 +141,29 @@ files:
142
141
  - lib/pseudo_entity/randoms/locations_hash.rb
143
142
  - lib/pseudo_entity/randoms/zip_code_database.csv
144
143
  - lib/pseudo_entity/version.rb
145
- - pseudo_entity.gemspec
146
- - spec/lib/pseudo_entity/randoms_spec.rb
147
- - spec/lib/pseudo_entity_spec.rb
148
- - spec/spec_helper.rb
149
- homepage: http://chapterhouse.github.io/pseudo_entity
144
+ homepage: https://github.com/ChapterHouse/pseudo_entity
150
145
  licenses:
151
146
  - MIT
152
- metadata: {}
153
- post_install_message:
147
+ metadata:
148
+ homepage_uri: https://github.com/ChapterHouse/pseudo_entity
149
+ source_code_uri: https://github.com/ChapterHouse/pseudo_entity/tree/v0.1.0
150
+ post_install_message:
154
151
  rdoc_options: []
155
152
  require_paths:
156
153
  - lib
157
154
  required_ruby_version: !ruby/object:Gem::Requirement
158
155
  requirements:
159
- - - '>='
156
+ - - ">="
160
157
  - !ruby/object:Gem::Version
161
- version: '0'
158
+ version: '3.0'
162
159
  required_rubygems_version: !ruby/object:Gem::Requirement
163
160
  requirements:
164
- - - '>='
161
+ - - ">="
165
162
  - !ruby/object:Gem::Version
166
163
  version: '0'
167
164
  requirements: []
168
- rubyforge_project:
169
- rubygems_version: 2.0.3
170
- signing_key:
165
+ rubygems_version: 3.2.32
166
+ signing_key:
171
167
  specification_version: 4
172
168
  summary: A class for generating realistic looking data for people, companies, etc.
173
- test_files:
174
- - spec/lib/pseudo_entity/randoms_spec.rb
175
- - spec/lib/pseudo_entity_spec.rb
176
- - spec/spec_helper.rb
169
+ test_files: []
data/.gitignore DELETED
@@ -1,20 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- Gemfile.lock
6
- InstalledFiles
7
- coverage
8
- InstalledFiles
9
- lib/bundler/man
10
- pkg
11
- rdoc
12
- spec/reports
13
- test/tmp
14
- test/version_tmp
15
- tmp
16
-
17
- # YARD artifacts
18
- .yardoc
19
- _yardoc
20
- doc/
@@ -1,31 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'pseudo_entity/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'pseudo_entity'
8
- spec.version = PseudoEntity::VERSION
9
- spec.authors = ['Frank Hall']
10
- spec.email = ['ChapterHouse.Dune@gmail.com']
11
- spec.description = %q{A class for generating realistic looking data for people, companies, etc.}
12
- spec.summary = %q{A class for generating realistic looking data for people, companies, etc.}
13
- spec.homepage = 'http://chapterhouse.github.io/pseudo_entity'
14
- spec.license = 'MIT'
15
-
16
- spec.files = `git ls-files`.split($/)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ['lib']
20
-
21
- spec.add_development_dependency 'bundler', '~> 1.3'
22
- spec.add_development_dependency 'rake'
23
- spec.add_development_dependency 'rspec', '~> 2.13'
24
-
25
- spec.add_runtime_dependency 'uuidtools', '~> 2.1'
26
- spec.add_runtime_dependency 'activesupport', '>= 2.0'
27
- spec.add_runtime_dependency 'iconv' # This is here only while I support activesupport < 3 which is about as long as I support ruby 1.8.7
28
- spec.add_runtime_dependency 'tzinfo'
29
- spec.add_runtime_dependency 'huge_enumerable'
30
-
31
- end
@@ -1,287 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe PseudoEntity::Randoms do
4
-
5
- RSpec::Matchers.define :be_all_digits do
6
- match do |string|
7
- string.gsub(/[0-9]*/,'').empty?
8
- end
9
- end
10
-
11
- RSpec::Matchers.define :be_all_alphabetic_characters do
12
- match do |string|
13
- string.gsub(/[a-z]|[A-Z]*/,'').empty?
14
- end
15
- end
16
-
17
- RSpec::Matchers.define :be_all_alphanumeric_characters do
18
- match do |string|
19
- string.gsub(/[a-z]|[A-Z][0-9]*/,'').empty?
20
- end
21
- end
22
-
23
-
24
- context "when included" do
25
-
26
- let(:class_a_regex) { /^10\.(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){2}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ }
27
- let(:class_b_regex) { /^172\.(?:(?:1[6-9]|2[0-9]|3[0-1]?)\.)(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ }
28
- let(:class_c_regex) { /^192\.168\.(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ }
29
-
30
- subject(:instance) do
31
- klass = Class.new
32
- klass.send(:include, PseudoEntity::Randoms)
33
- klass.new
34
- end
35
-
36
- it "responds to all RandomValues" do
37
- PseudoEntity::RandomValues.all? { |method| instance.respond_to?(method.to_sym) }.should be_true
38
- end
39
-
40
- it "lists all RandomValues as methods" do
41
- (PseudoEntity::RandomValues.map(&:to_s) - instance.methods.map(&:to_s)).should be_empty
42
- end
43
-
44
- it "responds to ArityValues" do
45
- methods = PseudoEntity::ArityValues.map { |regexp| regexp.to_s.match(/.*\^(.*_)\\d.*/)[1] + rand(100).to_s }
46
- methods.all? { |method| instance.respond_to?(method.to_sym) }.should be_true
47
- end
48
-
49
- it "responds to ArityRandoms" do
50
- methods = PseudoEntity::ArityRandoms.map { |regexp| regexp.to_s.match(/.*\^(.*_)\\d.*/)[1] + rand(100).to_s }
51
- methods.all? { |method| instance.respond_to?(method.to_sym, true) }.should be_true
52
- end
53
-
54
- it "has private ArityRandoms" do
55
- methods = PseudoEntity::ArityRandoms.map { |regexp| regexp.to_s.match(/.*\^(.*_)\\d.*/)[1] + rand(100).to_s }
56
- methods.all? { |method| !instance.respond_to?(method.to_sym) }.should be_true
57
- end
58
-
59
- it "has corresponding private random_X methods for RandomValues" do
60
- (PseudoEntity::RandomValues.map { |method| "random_#{method}".to_sym } - instance.private_methods.map(&:to_sym)).should be_empty
61
- end
62
-
63
- context "#parse_options" do
64
-
65
- it "sets initial values" do
66
- value_names = PseudoEntity::RandomValues
67
- hash = value_names.inject({}) { |hsh, name| hsh[name] = "123 #{name}"; hsh}
68
- instance.send(:parse_options, hash)
69
- value_names.all? { |name| instance.send(name) == "123 #{name}" }.should be_true
70
- end
71
-
72
- end
73
-
74
- context "#random_alpha" do
75
-
76
- it "returns X characters" do
77
- instance.send(:random_alpha, 256).size.should eql(256)
78
- end
79
-
80
- it "only generates alphabetic characters" do
81
- instance.stub(:rand).and_return(*(0..51).to_a)
82
- instance.send(:random_alpha, 256).should be_all_alphanumeric_characters
83
- # If only alphabetic characters are available then nothing should show up at slot 52
84
- instance.stub(:rand).and_return(52)
85
- instance.send(:random_alpha, 1).size.should eq(0)
86
- end
87
-
88
- end
89
-
90
- context "#random_alpha_numeric" do
91
-
92
- it "returns X characters" do
93
- instance.send(:random_alpha_numeric, 256).size.should eql(256)
94
- end
95
-
96
- it "only generates alphabetic characters or digits" do
97
- instance.stub(:rand).and_return(*(0..61).to_a)
98
- instance.send(:random_alpha, 256).should be_all_alphabetic_characters
99
- # If only alphabetic characters and digits are available then nothing should show up at slot 62
100
- instance.stub(:rand).and_return(62)
101
- instance.send(:random_alpha_numeric, 1).size.should eq(0)
102
- end
103
-
104
- end
105
-
106
- context "#random_apartment_number" do
107
-
108
- it "never returns zero or less" do
109
- instance.stub(:rand).and_return(0)
110
- instance.send(:random_apartment_number).should > 0
111
- end
112
-
113
- end
114
-
115
- context "#random_bank_account_number" do
116
-
117
- it "is thirteen characters long" do
118
- instance.send(:random_bank_account_number).size.should eql(13)
119
- end
120
-
121
- it "is all digits" do
122
- instance.send(:random_bank_account_number).should be_all_digits
123
- end
124
-
125
- end
126
-
127
- context "#random_bank_routing_number" do
128
-
129
- it "is nine characters long" do
130
- instance.send(:random_bank_routing_number).size.should eql(9)
131
- end
132
-
133
- it "is all digits" do
134
- instance.send(:random_bank_routing_number).should be_all_digits
135
- end
136
-
137
- end
138
-
139
- context "#random_numeric" do
140
-
141
- it "return X characters" do
142
- instance.send(:random_alpha_numeric, 256).size.should eql(256)
143
- end
144
-
145
- it "only generates digits" do
146
- instance.send(:random_numeric, 256).should be_all_digits
147
- end
148
-
149
- end
150
-
151
- context "#random_birth_day" do
152
-
153
- it "is always be at least 21 years ago" do
154
- instance.stub(:rand).and_return(0)
155
- (Date.today.year - instance.send(:random_birth_day).year).should >= 21
156
- end
157
-
158
- end
159
-
160
- context "#random_class_a_ip_address" do
161
-
162
- it "is in the private class A range" do
163
- instance.send(:random_class_a_ip_address).should =~ class_a_regex
164
- end
165
-
166
- end
167
-
168
- context "#random_class_b_ip_address" do
169
-
170
- it "is in the private class B range" do
171
- instance.send(:random_class_b_ip_address).should =~ class_b_regex
172
- end
173
-
174
- end
175
-
176
- context "#random_class_c_ip_address" do
177
-
178
- it "is in the private class C range" do
179
- instance.send(:random_class_c_ip_address).should =~ class_c_regex
180
- end
181
-
182
- end
183
-
184
- context "#random_email_address" do
185
-
186
- it "conforms to the pattern name@domain" do
187
- simple_email_regex = /^.*@.*\..*$/
188
- instance.send(:random_email_address) =~ simple_email_regex
189
- end
190
-
191
- end
192
-
193
- context "#random_facebook_id" do
194
-
195
- it "is all digits" do
196
- instance.send(:random_facebook_id).should be_all_digits
197
- end
198
-
199
- it "is a maximum of 64 bits long" do
200
- # This is a little brittle but not sure how else to test this
201
- instance.should_receive(:rand).with(2**64).and_return(2**64)
202
- instance.send(:random_facebook_id)
203
- end
204
-
205
- end
206
-
207
- context "#random_federal_tax_id" do
208
-
209
- it "is nine characters long" do
210
- instance.send(:random_federal_tax_id).size.should eql(9)
211
- end
212
-
213
- it "is all digits" do
214
- instance.send(:random_federal_tax_id).should be_all_digits
215
- end
216
-
217
- end
218
-
219
- context "#random_google_analytics_account_id" do
220
- it "conforms to Google's Analytic Account pattern" do
221
- instance.send(:random_google_analytics_account_id).should =~ /^UA-\d{7}-\d{2}$/
222
- end
223
- end
224
-
225
- context "#random_ip_address" do
226
-
227
- it "is one of the non routable IP addresses" do
228
- ip_address = instance.send(:random_ip_address)
229
- [class_a_regex, class_b_regex, class_c_regex].any? { |regexp| ip_address =~ regexp }.should be_true
230
- end
231
-
232
- end
233
-
234
- context "#random_phone_number" do
235
-
236
- it "is a ten digit comma separated value" do
237
- instance.send(:random_phone_number).should =~ /^[0-9]{3}-[0-9]{3}-[0-9]{4}$/
238
- end
239
-
240
- end
241
-
242
- context "#random_property_number" do
243
-
244
- it "will never be less than 10" do
245
- instance.stub(:rand).and_return(0)
246
- instance.send(:random_property_number).should >= 10
247
- end
248
-
249
- end
250
-
251
- context "#random_sex" do
252
-
253
- it "will never be less than 10" do
254
- instance.stub(:rand).and_return(0)
255
- instance.send(:random_property_number).should >= 10
256
- end
257
-
258
- end
259
-
260
- context "#rand_X" do
261
-
262
- it "generates a random number" do
263
- Kernel.should_receive(:rand).with(10).once.and_call_original
264
- first = instance.rand_10
265
- second = instance.rand_10
266
- first.should eql(second)
267
- end
268
-
269
- end
270
-
271
- end
272
-
273
- context "as itself" do
274
-
275
- subject(:random) { PseudoEntity::Randoms }
276
-
277
- it "creates a token smaller than 32 characters" do
278
- random.token(3).size.should eq(3)
279
- end
280
-
281
- it "creates a token larger than 32 characters" do
282
- random.token(128).size.should eq(128)
283
- end
284
-
285
- end
286
-
287
- end
@@ -1,172 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe PseudoEntity do
4
-
5
- let(:age) { 10 }
6
- let(:date) { age.years.ago }
7
- let(:cc_last_four) { '4321' }
8
- let(:latitude) { 1.2 }
9
- let(:longitude) { 3.4 }
10
- let(:street_position) { 'street_position' }
11
- let(:company_name) { 'Some Company Ltd.'}
12
- let(:city) { 'St. Archibald' }
13
- let(:state) { 'ZZ' }
14
- let(:zip_code) { 12345 }
15
- let(:first_name) { 'John' }
16
- let(:last_name) { 'Smith' }
17
-
18
- subject(:pseudo_entity) do
19
- PseudoEntity.new.tap{ |pe|
20
- pe.stub(:birth_day).and_return(date)
21
- pe.stub(:city).and_return(city)
22
- pe.stub(:state).and_return(state)
23
- pe.stub(:zip_code).and_return(zip_code)
24
- pe.stub(:credit_card_number).and_return('98765' + cc_last_four)
25
- pe.stub(:first_name).and_return(first_name)
26
- pe.stub(:last_name).and_return(last_name)
27
- pe.stub(:latitude).and_return(latitude)
28
- pe.stub(:longitude).and_return(longitude)
29
- pe.stub(:street_position).and_return(street_position)
30
- pe.stub(:company_name).and_return(company_name)
31
- pe.stub(:city).and_return(city)
32
- }
33
- end
34
-
35
- it "should calculate age" do
36
- pseudo_entity.age.should eql(age)
37
- end
38
-
39
- it "should combine components into a full address" do
40
- pseudo_entity.stub(:street_address).and_return('street_address')
41
- pseudo_entity.address.should eql("street_address\n#{city}, #{state}. #{zip_code}")
42
- end
43
-
44
- it "should identify when an address is and is not an apartment" do
45
- pseudo_entity.stub(:street_modifier_needed).and_return(:apartment)
46
- pseudo_entity.apartment?.should be_true
47
- pseudo_entity.stub(:street_modifier_needed).and_return(:something_else)
48
- pseudo_entity.apartment?.should be_false
49
- end
50
-
51
- it "should extract birth year" do
52
- pseudo_entity.birth_year.should eql(date.year)
53
- end
54
-
55
- it "should extract the last four digits of the credit card number" do
56
- pseudo_entity.credit_card_last_four.should eql(cc_last_four)
57
- end
58
-
59
- it "should combine names into a full name" do
60
- pseudo_entity.full_name.should eql("#{first_name} #{last_name}")
61
- end
62
-
63
- it "should generate a google map url from latitude and longitude" do
64
- pseudo_entity.google_map_url.should eql("https://maps.google.com/maps?q=loc:#{latitude},#{longitude}")
65
- end
66
-
67
- it "should not return new values without resetting" do
68
- pseudo_entity = PseudoEntity.new
69
- first_name = pseudo_entity.first_name
70
- pseudo_entity.first_name.should equal(first_name)
71
- end
72
-
73
- it "should return new values after a reset" do
74
- pseudo_entity = PseudoEntity.new
75
- first_name = pseudo_entity.first_name
76
- last_name = pseudo_entity.last_name
77
- pseudo_entity.reset!
78
- pseudo_entity.first_name.should_not eql(first_name)
79
- pseudo_entity.last_name.should_not eql(last_name)
80
- end
81
-
82
- it "should return self after a reset" do
83
- pseudo_entity.reset!.should equal(pseudo_entity)
84
- end
85
-
86
- it "should reset a single value" do
87
- pseudo_entity = PseudoEntity.new
88
- first_name = pseudo_entity.first_name
89
- last_name = pseudo_entity.last_name
90
- pseudo_entity.reset("first_name")
91
- pseudo_entity.first_name.should_not eql(first_name)
92
- pseudo_entity.last_name.should eql(last_name)
93
- end
94
-
95
- it "should return the new value after a reset of a single value" do
96
- pseudo_entity = PseudoEntity.new
97
- first_name_a = pseudo_entity.first_name
98
- first_name_b = pseudo_entity.reset("first_name")
99
- first_name_a.should_not eql(first_name_b)
100
- first_name_b.should eql(pseudo_entity.first_name)
101
- end
102
-
103
- it "should combine addresses in 2,1 order" do
104
- pseudo_entity.stub(:street_address_line_1).and_return(:street_address_line_1)
105
- pseudo_entity.stub(:street_address_line_2).and_return(:street_address_line_2)
106
- pseudo_entity.street_address.should eql('street_address_line_2 street_address_line_1')
107
- end
108
-
109
- it "should trim missing street information" do
110
- pseudo_entity.stub(:street_address_line_1).and_return(:street_address_line_1)
111
- pseudo_entity.stub(:street_address_line_2).and_return('')
112
- pseudo_entity.street_address.should == 'street_address_line_1'
113
- pseudo_entity.stub(:street_address_line_1).and_return('')
114
- pseudo_entity.stub(:street_address_line_2).and_return(:street_address_line_2)
115
- pseudo_entity.street_address.should eql('street_address_line_2')
116
- end
117
-
118
- it "should apartment number as street address line 1 when the address is at an apartment" do
119
- apartment_number = 1234
120
- pseudo_entity.stub(:apartment_number).and_return(apartment_number)
121
- pseudo_entity.stub(:apartment?).and_return(true)
122
- pseudo_entity.stub(:suite?).and_return(false)
123
- pseudo_entity.street_address_line_1.should eql("APT #{apartment_number}")
124
- end
125
-
126
- it "should suite number as street address line 1 when the address is at a suite" do
127
- suite_number = 1234
128
- pseudo_entity.stub(:suite_number).and_return(suite_number)
129
- pseudo_entity.stub(:apartment?).and_return(false)
130
- pseudo_entity.stub(:suite?).and_return(true)
131
- pseudo_entity.street_address_line_1.should eql("STE #{suite_number}")
132
- end
133
-
134
- it "should use the street position as street address line 1 when not at an apartment or suite" do
135
- pseudo_entity.stub(:apartment?).and_return(false)
136
- pseudo_entity.stub(:suite?).and_return(false)
137
- pseudo_entity.street_address_line_1.should eql(street_position)
138
- end
139
-
140
- it "should use street position as street address line 2 when a street modifier is needed" do
141
- pseudo_entity.stub(:street_modifier_needed?).and_return(true)
142
- pseudo_entity.street_address_line_2.should eql(street_position)
143
- end
144
-
145
- it "should return nil as street address line 2 when a street modifier is not needed" do
146
- pseudo_entity.stub(:street_modifier_needed?).and_return(false)
147
- pseudo_entity.street_address_line_2.should be_nil
148
- end
149
-
150
- it "should identify when an address is and is not an suite" do
151
- pseudo_entity.stub(:street_modifier_needed).and_return(:suite)
152
- pseudo_entity.suite?.should be_true
153
- pseudo_entity.stub(:street_modifier_needed).and_return(:something_else)
154
- pseudo_entity.suite?.should be_false
155
- end
156
-
157
- it "should generate a yelp business id from the company name and the city" do
158
- pseudo_entity.yelp_business_id.should == 'Some-Company-Ltd-St-Archibald'
159
- end
160
-
161
- it "should generate a yelp business url from the yelp business id" do
162
- pseudo_entity.stub(:yelp_business_id).and_return(:yelp_business_id)
163
- pseudo_entity.yelp_business_url.should == 'http://www.yelp.com/biz/yelp_business_id'
164
- end
165
-
166
- it "should generate a string 22 characters long for yelp user id" do
167
- yelp_user_id = pseudo_entity.yelp_user_id
168
- yelp_user_id.should be_an_instance_of(String)
169
- yelp_user_id.size.should eql(22)
170
- end
171
-
172
- end
data/spec/spec_helper.rb DELETED
@@ -1 +0,0 @@
1
- require 'pseudo_entity'