data_magic 0.19 → 0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +2 -4
- data/ChangeLog +5 -0
- data/Guardfile +1 -1
- data/data_magic.gemspec +1 -1
- data/features/data_magic.feature +10 -2
- data/features/step_definitions/data_magic_steps.rb +42 -23
- data/features/yaml/example.yml +2 -0
- data/lib/data_magic.rb +5 -0
- data/lib/data_magic/standard_translation.rb +300 -0
- data/lib/data_magic/translation.rb +2 -295
- data/lib/data_magic/version.rb +1 -1
- data/spec/lib/data_magic_spec.rb +3 -3
- data/spec/lib/translation_spec.rb +79 -79
- data/spec/spec_helper.rb +2 -2
- metadata +21 -20
@@ -1,307 +1,14 @@
|
|
1
1
|
require 'data_magic/date_translation'
|
2
|
+
require 'data_magic/standard_translation'
|
2
3
|
|
3
4
|
module DataMagic
|
4
5
|
class Translation
|
6
|
+
include StandardTranslation
|
5
7
|
include DateTranslation
|
6
8
|
|
7
|
-
attr_reader :parent
|
8
|
-
|
9
9
|
def initialize(parent)
|
10
10
|
@parent = parent
|
11
11
|
end
|
12
12
|
|
13
|
-
#
|
14
|
-
# return a random name (first and last)
|
15
|
-
#
|
16
|
-
def full_name
|
17
|
-
Faker::Name.name
|
18
|
-
end
|
19
|
-
alias_method :dm_full_name, :full_name
|
20
|
-
|
21
|
-
#
|
22
|
-
# return a random first name
|
23
|
-
#
|
24
|
-
def first_name
|
25
|
-
Faker::Name.first_name
|
26
|
-
end
|
27
|
-
alias_method :dm_first_name, :first_name
|
28
|
-
|
29
|
-
#
|
30
|
-
# return a random last name
|
31
|
-
#
|
32
|
-
def last_name
|
33
|
-
Faker::Name.last_name
|
34
|
-
end
|
35
|
-
alias_method :dm_last_name, :last_name
|
36
|
-
|
37
|
-
#
|
38
|
-
# return a random name prefix
|
39
|
-
#
|
40
|
-
def name_prefix
|
41
|
-
Faker::Name.prefix
|
42
|
-
end
|
43
|
-
alias_method :dm_name_prefix, :name_prefix
|
44
|
-
|
45
|
-
#
|
46
|
-
# return a random name suffix
|
47
|
-
#
|
48
|
-
def name_suffix
|
49
|
-
Faker::Name.suffix
|
50
|
-
end
|
51
|
-
alias_method :dm_name_suffix, :name_suffix
|
52
|
-
|
53
|
-
#
|
54
|
-
# return a random title
|
55
|
-
#
|
56
|
-
def title
|
57
|
-
Faker::Name.title
|
58
|
-
end
|
59
|
-
alias_method :dm_title, :title
|
60
|
-
|
61
|
-
#
|
62
|
-
# return a random street address
|
63
|
-
#
|
64
|
-
def street_address(include_secondary=false)
|
65
|
-
Faker::Address.street_address(include_secondary)
|
66
|
-
end
|
67
|
-
alias_method :dm_street_address, :street_address
|
68
|
-
|
69
|
-
#
|
70
|
-
# return a random secondary address
|
71
|
-
#
|
72
|
-
def secondary_address
|
73
|
-
Faker::Address.secondary_address
|
74
|
-
end
|
75
|
-
alias_method :dm_secondary_address, :secondary_address
|
76
|
-
|
77
|
-
#
|
78
|
-
# return a random city
|
79
|
-
#
|
80
|
-
def city
|
81
|
-
Faker::Address.city
|
82
|
-
end
|
83
|
-
alias_method :dm_city, :city
|
84
|
-
|
85
|
-
#
|
86
|
-
# return a random state
|
87
|
-
#
|
88
|
-
def state
|
89
|
-
Faker::Address.state
|
90
|
-
end
|
91
|
-
alias_method :dm_state, :state
|
92
|
-
|
93
|
-
#
|
94
|
-
# return a random state abbreviation
|
95
|
-
#
|
96
|
-
def state_abbr
|
97
|
-
Faker::Address.state_abbr
|
98
|
-
end
|
99
|
-
alias_method :dm_state_abbr, :state_abbr
|
100
|
-
|
101
|
-
#
|
102
|
-
# return a random 5 or 9 digit zip code
|
103
|
-
#
|
104
|
-
def zip_code
|
105
|
-
Faker::Address.zip
|
106
|
-
end
|
107
|
-
alias_method :dm_zip_code, :zip_code
|
108
|
-
|
109
|
-
#
|
110
|
-
# return a random country
|
111
|
-
#
|
112
|
-
def country
|
113
|
-
Faker::Address.country
|
114
|
-
end
|
115
|
-
alias_method :dm_country, :country
|
116
|
-
|
117
|
-
|
118
|
-
#
|
119
|
-
# return a random company name
|
120
|
-
#
|
121
|
-
def company_name
|
122
|
-
Faker::Company.name
|
123
|
-
end
|
124
|
-
alias_method :dm_company_name, :company_name
|
125
|
-
|
126
|
-
#
|
127
|
-
# return a random catch phrase
|
128
|
-
#
|
129
|
-
def catch_phrase
|
130
|
-
Faker::Company.catch_phrase
|
131
|
-
end
|
132
|
-
alias_method :dm_catch_phrase, :catch_phrase
|
133
|
-
|
134
|
-
#
|
135
|
-
# return random words - default is 3 words
|
136
|
-
#
|
137
|
-
def words(number = 3)
|
138
|
-
Faker::Lorem.words(number).join(' ')
|
139
|
-
end
|
140
|
-
alias_method :dm_words, :words
|
141
|
-
|
142
|
-
#
|
143
|
-
# return a random sentence - default minimum word count is 4
|
144
|
-
#
|
145
|
-
def sentence(min_word_count = 4)
|
146
|
-
Faker::Lorem.sentence(min_word_count)
|
147
|
-
end
|
148
|
-
alias_method :dm_sentence, :sentence
|
149
|
-
|
150
|
-
#
|
151
|
-
# return random sentences - default is 3 sentences
|
152
|
-
#
|
153
|
-
def sentences(sentence_count = 3)
|
154
|
-
Faker::Lorem.sentences(sentence_count).join(' ')
|
155
|
-
end
|
156
|
-
alias_method :dm_sentences, :sentences
|
157
|
-
|
158
|
-
#
|
159
|
-
# return random paragraphs - default is 3 paragraphs
|
160
|
-
#
|
161
|
-
def paragraphs(paragraph_count = 3)
|
162
|
-
Faker::Lorem.paragraphs(paragraph_count).join('\n\n')
|
163
|
-
end
|
164
|
-
alias_method :dm_paragraphs, :paragraphs
|
165
|
-
|
166
|
-
#
|
167
|
-
# return random characters - default is 255 characters
|
168
|
-
#
|
169
|
-
def characters(character_count = 255)
|
170
|
-
Faker::Lorem.characters(character_count)
|
171
|
-
end
|
172
|
-
alias_method :dm_characters, :characters
|
173
|
-
|
174
|
-
#
|
175
|
-
# return a random email address
|
176
|
-
#
|
177
|
-
def email_address(name=nil)
|
178
|
-
Faker::Internet.email(name)
|
179
|
-
end
|
180
|
-
alias_method :dm_email_address, :email_address
|
181
|
-
|
182
|
-
#
|
183
|
-
# return a random domain name
|
184
|
-
#
|
185
|
-
def domain_name
|
186
|
-
Faker::Internet.domain_name
|
187
|
-
end
|
188
|
-
alias_method :dm_domain_name, :domain_name
|
189
|
-
|
190
|
-
#
|
191
|
-
# return a random url
|
192
|
-
#
|
193
|
-
def url
|
194
|
-
Faker::Internet.url
|
195
|
-
end
|
196
|
-
alias_method :dm_url, :url
|
197
|
-
|
198
|
-
#
|
199
|
-
# return a random user name
|
200
|
-
#
|
201
|
-
def user_name
|
202
|
-
Faker::Internet.user_name
|
203
|
-
end
|
204
|
-
alias_method :dm_user_name, :user_name
|
205
|
-
|
206
|
-
#
|
207
|
-
# return a random phone number
|
208
|
-
#
|
209
|
-
def phone_number
|
210
|
-
value = Faker::PhoneNumber.phone_number
|
211
|
-
remove_extension(value)
|
212
|
-
end
|
213
|
-
alias_method :dm_phone_number, :phone_number
|
214
|
-
|
215
|
-
#
|
216
|
-
# return a random cell number
|
217
|
-
#
|
218
|
-
def cell_phone
|
219
|
-
value = Faker::PhoneNumber.cell_phone
|
220
|
-
remove_extension(value)
|
221
|
-
end
|
222
|
-
alias_method :dm_cell_phone, :cell_phone
|
223
|
-
|
224
|
-
#
|
225
|
-
# return a random value from an array or range
|
226
|
-
#
|
227
|
-
def randomize(value)
|
228
|
-
case value
|
229
|
-
when Array then value[rand(value.size)]
|
230
|
-
when Range then rand((value.last+1) - value.first) + value.first
|
231
|
-
else value
|
232
|
-
end
|
233
|
-
end
|
234
|
-
alias_method :dm_randomize, :randomize
|
235
|
-
|
236
|
-
#
|
237
|
-
# return an element from the array. The first request will return
|
238
|
-
# the first element, the second request will return the second,
|
239
|
-
# and so forth.
|
240
|
-
#
|
241
|
-
def sequential(value)
|
242
|
-
index = index_variable_for(value)
|
243
|
-
index = (index ? index + 1 : 0)
|
244
|
-
index = 0 if index == value.length
|
245
|
-
set_index_variable(value, index)
|
246
|
-
value[index]
|
247
|
-
end
|
248
|
-
|
249
|
-
#
|
250
|
-
# return a value based on a mast
|
251
|
-
# The # character will be replaced with a number
|
252
|
-
# The A character will be replaced with an upper case letter
|
253
|
-
# The a character will be replaced with a lower case letter
|
254
|
-
#
|
255
|
-
def mask(value)
|
256
|
-
result = ''
|
257
|
-
value.each_char do |ch|
|
258
|
-
case ch
|
259
|
-
when '#' then result += randomize(0..9).to_s
|
260
|
-
when 'A' then result += ('A'..'Z').to_a[rand(26)]
|
261
|
-
when 'a' then result += ('a'..'z').to_a[rand(26)]
|
262
|
-
else result += ch
|
263
|
-
end
|
264
|
-
end
|
265
|
-
result
|
266
|
-
end
|
267
|
-
alias_method :dm_mask, :mask
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
private
|
272
|
-
|
273
|
-
def set_index_variable(ary, value)
|
274
|
-
index_hash[index_name(ary)] = value
|
275
|
-
end
|
276
|
-
|
277
|
-
def index_variable_for(ary)
|
278
|
-
value = index_hash[index_name(ary)]
|
279
|
-
index_hash[index_name(ary)] = -1 unless value
|
280
|
-
index_hash[index_name(ary)]
|
281
|
-
end
|
282
|
-
|
283
|
-
def index_name(ary)
|
284
|
-
"#{ary[0]}#{ary[1]}_index".gsub(' ', '_').downcase
|
285
|
-
end
|
286
|
-
|
287
|
-
def index_hash
|
288
|
-
dh = data_hash[parent]
|
289
|
-
data_hash[parent] = {} unless dh
|
290
|
-
data_hash[parent]
|
291
|
-
end
|
292
|
-
|
293
|
-
def data_hash
|
294
|
-
$data_magic_data_hash ||= {}
|
295
|
-
end
|
296
|
-
|
297
|
-
def process(value)
|
298
|
-
eval value
|
299
|
-
end
|
300
|
-
|
301
|
-
def remove_extension(phone)
|
302
|
-
index = phone.index('x')
|
303
|
-
phone = phone[0, (index-1)] if index
|
304
|
-
phone
|
305
|
-
end
|
306
13
|
end
|
307
14
|
end
|
data/lib/data_magic/version.rb
CHANGED
data/spec/lib/data_magic_spec.rb
CHANGED
@@ -11,19 +11,19 @@ describe DataMagic do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should default to a directory named config" do
|
14
|
-
DataMagic.yml_directory.
|
14
|
+
expect(DataMagic.yml_directory).to eql 'config/data'
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should store a yml directory" do
|
18
18
|
DataMagic.yml_directory = 'test_dir'
|
19
|
-
DataMagic.yml_directory.
|
19
|
+
expect(DataMagic.yml_directory).to eql 'test_dir'
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
context "when reading yml files" do
|
24
24
|
it "should read files from the config directory" do
|
25
25
|
DataMagic.yml_directory = 'test'
|
26
|
-
File.
|
26
|
+
expect(File).to receive(:read).with("test/fname").and_return('test')
|
27
27
|
DataMagic.load("fname")
|
28
28
|
end
|
29
29
|
|
@@ -9,251 +9,251 @@ describe "DataMagic translations" do
|
|
9
9
|
let(:example) { TestSubject.new }
|
10
10
|
|
11
11
|
def set_field_value(value)
|
12
|
-
DataMagic.
|
12
|
+
expect(DataMagic).to receive(:yml).twice.and_return({'key' => {'field' => value}})
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should deliver the hash from the yaml" do
|
16
16
|
set_field_value 'value'
|
17
|
-
example.data_for('key').
|
17
|
+
expect(example.data_for('key')).to have_field_value 'value'
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should allow you to use a symbol for the key" do
|
21
21
|
set_field_value 'value'
|
22
|
-
example.data_for(:key).
|
22
|
+
expect(example.data_for(:key)).to have_field_value 'value'
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should default to use a file named 'default.yml'" do
|
26
26
|
DataMagic.yml_directory = 'test'
|
27
|
-
File.
|
28
|
-
DataMagic.
|
29
|
-
DataMagic.
|
30
|
-
example.data_for('key').
|
27
|
+
expect(File).to receive(:read).with("test/default.yml").and_return('test')
|
28
|
+
expect(DataMagic).to receive(:yml).and_return(nil)
|
29
|
+
expect(DataMagic).to receive(:yml).and_return({'key' => {'field' => 'value'}})
|
30
|
+
expect(example.data_for('key')).to have_field_value 'value'
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should clone the data returned so it can be resued" do
|
34
34
|
yaml = double('yaml')
|
35
|
-
yaml.
|
36
|
-
DataMagic.
|
37
|
-
yaml.
|
38
|
-
yaml.
|
39
|
-
example.data_for('key').
|
35
|
+
expect(yaml).to receive(:merge).and_return(yaml)
|
36
|
+
expect(DataMagic).to receive(:yml).twice.and_return(yaml)
|
37
|
+
expect(yaml).to receive(:[]).and_return(yaml)
|
38
|
+
expect(yaml).to receive(:clone).and_return({'field' => 'value'})
|
39
|
+
expect(example.data_for('key')).to have_field_value 'value'
|
40
40
|
end
|
41
41
|
|
42
42
|
it "should merge the provided data with the yaml data" do
|
43
43
|
yaml = double('yaml')
|
44
|
-
DataMagic.
|
45
|
-
yaml.
|
46
|
-
yaml.
|
47
|
-
yaml.
|
48
|
-
example.data_for('key').
|
44
|
+
expect(DataMagic).to receive(:yml).twice.and_return(yaml)
|
45
|
+
expect(yaml).to receive(:[]).and_return(yaml)
|
46
|
+
expect(yaml).to receive(:merge).and_return(yaml)
|
47
|
+
expect(yaml).to receive(:clone).and_return({'field' => 'value'})
|
48
|
+
expect(example.data_for('key')).to have_field_value 'value'
|
49
49
|
end
|
50
50
|
|
51
51
|
context "translating random names" do
|
52
52
|
it "should add a name" do
|
53
|
-
Faker::Name.
|
53
|
+
expect(Faker::Name).to receive(:name).and_return('Joseph')
|
54
54
|
set_field_value '~full_name'
|
55
|
-
example.data_for('key').
|
55
|
+
expect(example.data_for('key')).to have_field_value 'Joseph'
|
56
56
|
end
|
57
57
|
|
58
58
|
it "should add first name" do
|
59
|
-
Faker::Name.
|
59
|
+
expect(Faker::Name).to receive(:first_name).and_return('Sam')
|
60
60
|
set_field_value '~first_name'
|
61
|
-
example.data_for('key').
|
61
|
+
expect(example.data_for('key')).to have_field_value 'Sam'
|
62
62
|
end
|
63
63
|
|
64
64
|
it "should add last name" do
|
65
|
-
Faker::Name.
|
65
|
+
expect(Faker::Name).to receive(:last_name).and_return('Smith')
|
66
66
|
set_field_value '~last_name'
|
67
|
-
example.data_for('key').
|
67
|
+
expect(example.data_for('key')).to have_field_value 'Smith'
|
68
68
|
end
|
69
69
|
|
70
70
|
it "should add name prefix" do
|
71
|
-
Faker::Name.
|
71
|
+
expect(Faker::Name).to receive(:prefix).and_return("Mr")
|
72
72
|
set_field_value '~name_prefix'
|
73
|
-
example.data_for('key').
|
73
|
+
expect(example.data_for('key')).to have_field_value 'Mr'
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should add name suffix" do
|
77
|
-
Faker::Name.
|
77
|
+
expect(Faker::Name).to receive(:suffix).and_return('Jr')
|
78
78
|
set_field_value '~name_suffix'
|
79
|
-
example.data_for('key').
|
79
|
+
expect(example.data_for('key')).to have_field_value 'Jr'
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
83
|
context "translating random addresses" do
|
84
84
|
it "should add a street address" do
|
85
|
-
Faker::Address.
|
85
|
+
expect(Faker::Address).to receive(:street_address).and_return("123 Main")
|
86
86
|
set_field_value '~street_address'
|
87
|
-
example.data_for('key').
|
87
|
+
expect(example.data_for('key')).to have_field_value '123 Main'
|
88
88
|
end
|
89
89
|
|
90
90
|
it "should add a city" do
|
91
|
-
Faker::Address.
|
91
|
+
expect(Faker::Address).to receive(:city).and_return('Cleveland')
|
92
92
|
set_field_value '~city'
|
93
|
-
example.data_for('key').
|
93
|
+
expect(example.data_for('key')).to have_field_value 'Cleveland'
|
94
94
|
end
|
95
95
|
|
96
96
|
it "should add a state" do
|
97
|
-
Faker::Address.
|
97
|
+
expect(Faker::Address).to receive(:state).and_return('Ohio')
|
98
98
|
set_field_value '~state'
|
99
|
-
example.data_for('key').
|
99
|
+
expect(example.data_for('key')).to have_field_value 'Ohio'
|
100
100
|
end
|
101
101
|
|
102
102
|
it "should add a state abbreviation" do
|
103
|
-
Faker::Address.
|
103
|
+
expect(Faker::Address).to receive(:state_abbr).and_return('OH')
|
104
104
|
set_field_value '~state_abbr'
|
105
|
-
example.data_for('key').
|
105
|
+
expect(example.data_for('key')).to have_field_value 'OH'
|
106
106
|
end
|
107
107
|
|
108
108
|
it "should add a zip code" do
|
109
|
-
Faker::Address.
|
109
|
+
expect(Faker::Address).to receive(:zip).and_return('11111')
|
110
110
|
set_field_value '~zip_code'
|
111
|
-
example.data_for('key').
|
111
|
+
expect(example.data_for('key')).to have_field_value '11111'
|
112
112
|
end
|
113
113
|
|
114
114
|
it "should add a country" do
|
115
|
-
Faker::Address.
|
115
|
+
expect(Faker::Address).to receive(:country).and_return("United States")
|
116
116
|
set_field_value '~country'
|
117
|
-
example.data_for('key').
|
117
|
+
expect(example.data_for('key')).to have_field_value 'United States'
|
118
118
|
end
|
119
119
|
|
120
120
|
it "should add a secondary address" do
|
121
|
-
Faker::Address.
|
121
|
+
expect(Faker::Address).to receive(:secondary_address).and_return('2nd floor')
|
122
122
|
set_field_value '~secondary_address'
|
123
|
-
example.data_for('key').
|
123
|
+
expect(example.data_for('key')).to have_field_value '2nd floor'
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
127
127
|
context "translating company names" do
|
128
128
|
it "should add a company name" do
|
129
|
-
Faker::Company.
|
129
|
+
expect(Faker::Company).to receive(:name).and_return('LeanDog')
|
130
130
|
set_field_value '~company_name'
|
131
|
-
example.data_for('key').
|
131
|
+
expect(example.data_for('key')).to have_field_value 'LeanDog'
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
135
|
context "translating internet names" do
|
136
136
|
it "should add an email address" do
|
137
|
-
Faker::Internet.
|
137
|
+
expect(Faker::Internet).to receive(:email).and_return('buddy@example.com')
|
138
138
|
set_field_value '~email_address'
|
139
|
-
example.data_for('key').
|
139
|
+
expect(example.data_for('key')).to have_field_value 'buddy@example.com'
|
140
140
|
end
|
141
141
|
|
142
142
|
it "should add a domain name" do
|
143
|
-
Faker::Internet.
|
143
|
+
expect(Faker::Internet).to receive(:domain_name).and_return("google.com")
|
144
144
|
set_field_value '~domain_name'
|
145
|
-
example.data_for('key').
|
145
|
+
expect(example.data_for('key')).to have_field_value 'google.com'
|
146
146
|
end
|
147
147
|
|
148
148
|
it "should add a user name" do
|
149
|
-
Faker::Internet.
|
149
|
+
expect(Faker::Internet).to receive(:user_name).and_return('very_cheezy')
|
150
150
|
set_field_value '~user_name'
|
151
|
-
example.data_for('key').
|
151
|
+
expect(example.data_for('key')).to have_field_value 'very_cheezy'
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
155
|
context "translating phone numbers" do
|
156
156
|
it "shold add a phone number" do
|
157
|
-
Faker::PhoneNumber.
|
157
|
+
expect(Faker::PhoneNumber).to receive(:phone_number).and_return('555-555-5555')
|
158
158
|
set_field_value '~phone_number'
|
159
|
-
example.data_for('key').
|
159
|
+
expect(example.data_for('key')).to have_field_value '555-555-5555'
|
160
160
|
end
|
161
161
|
end
|
162
162
|
|
163
163
|
context "translating random phrases" do
|
164
164
|
it "should add a catch phrase" do
|
165
|
-
Faker::Company.
|
165
|
+
expect(Faker::Company).to receive(:catch_phrase).and_return('Ruby is cool')
|
166
166
|
set_field_value '~catch_phrase'
|
167
|
-
example.data_for('key').
|
167
|
+
expect(example.data_for('key')).to have_field_value 'Ruby is cool'
|
168
168
|
end
|
169
169
|
|
170
170
|
it "should add random words" do
|
171
|
-
Faker::Lorem.
|
171
|
+
expect(Faker::Lorem).to receive(:words).and_return(['random', 'words'])
|
172
172
|
set_field_value '~words'
|
173
|
-
example.data_for('key').
|
173
|
+
expect(example.data_for('key')).to have_field_value 'random words'
|
174
174
|
end
|
175
175
|
|
176
176
|
it "should default to returning 3 words" do
|
177
177
|
set_field_value '~words'
|
178
|
-
example.data_for('key')['field'].split.size.
|
178
|
+
expect(example.data_for('key')['field'].split.size).to eql 3
|
179
179
|
end
|
180
180
|
|
181
181
|
it "should allow you to specify the number of words" do
|
182
182
|
set_field_value '~words(4)'
|
183
|
-
example.data_for('key')['field'].split.size.
|
183
|
+
expect(example.data_for('key')['field'].split.size).to eql 4
|
184
184
|
end
|
185
185
|
|
186
186
|
it "should add a random sentence" do
|
187
|
-
Faker::Lorem.
|
187
|
+
expect(Faker::Lorem).to receive(:sentence).and_return('a sentence')
|
188
188
|
set_field_value '~sentence'
|
189
|
-
example.data_for('key').
|
189
|
+
expect(example.data_for('key')).to have_field_value 'a sentence'
|
190
190
|
end
|
191
191
|
|
192
192
|
it "should default to returning a minimum of 4 words" do
|
193
193
|
set_field_value '~sentence'
|
194
|
-
example.data_for('key')['field'].split.size.
|
194
|
+
expect(example.data_for('key')['field'].split.size).to be >= 4
|
195
195
|
end
|
196
196
|
|
197
197
|
it "should allow you to specify a minimum word count" do
|
198
198
|
set_field_value '~sentence(20)'
|
199
|
-
example.data_for('key')['field'].split.size.
|
199
|
+
expect(example.data_for('key')['field'].split.size).to be >= 20
|
200
200
|
end
|
201
201
|
|
202
202
|
it "should add sentences" do
|
203
|
-
Faker::Lorem.
|
203
|
+
expect(Faker::Lorem).to receive(:sentences).and_return(['this is sentences'])
|
204
204
|
set_field_value '~sentences'
|
205
|
-
example.data_for('key').
|
205
|
+
expect(example.data_for('key')).to have_field_value 'this is sentences'
|
206
206
|
end
|
207
207
|
|
208
208
|
it "should default to returning a default of 3 sentences" do
|
209
209
|
set_field_value '~sentences'
|
210
|
-
example.data_for('key')['field'].split('.').size.
|
210
|
+
expect(example.data_for('key')['field'].split('.').size).to be >= 3
|
211
211
|
end
|
212
212
|
|
213
213
|
it "should allow you to specify the number of sentences" do
|
214
214
|
set_field_value '~sentences(10)'
|
215
|
-
example.data_for('key')['field'].split('.').size.
|
215
|
+
expect(example.data_for('key')['field'].split('.').size).to be >= 10
|
216
216
|
end
|
217
217
|
|
218
218
|
it "should add a paragraphs" do
|
219
|
-
Faker::Lorem.
|
219
|
+
expect(Faker::Lorem).to receive(:paragraphs).and_return(['this is a paragraph'])
|
220
220
|
set_field_value '~paragraphs'
|
221
|
-
example.data_for('key').
|
221
|
+
expect(example.data_for('key')).to have_field_value 'this is a paragraph'
|
222
222
|
end
|
223
223
|
|
224
224
|
it "should return 3 paragraphs by default" do
|
225
225
|
set_field_value '~paragraphs'
|
226
|
-
example.data_for('key')['field'].split('\n\n').size.
|
226
|
+
expect(example.data_for('key')['field'].split('\n\n').size).to eql 3
|
227
227
|
end
|
228
228
|
|
229
229
|
it "should allow you to specify the number of paragraphs" do
|
230
230
|
set_field_value '~paragraphs(10)'
|
231
|
-
example.data_for('key')['field'].split('\n\n').size.
|
231
|
+
expect(example.data_for('key')['field'].split('\n\n').size).to eql 10
|
232
232
|
end
|
233
233
|
|
234
234
|
it "should add characters" do
|
235
|
-
Faker::Lorem.
|
235
|
+
expect(Faker::Lorem).to receive(:characters).and_return('abcdefg')
|
236
236
|
set_field_value '~characters'
|
237
|
-
example.data_for('key').
|
237
|
+
expect(example.data_for('key')).to have_field_value 'abcdefg'
|
238
238
|
end
|
239
239
|
end
|
240
240
|
|
241
241
|
context "translating boolean values" do
|
242
242
|
it "should resolve true" do
|
243
243
|
set_field_value true
|
244
|
-
example.data_for('key').
|
244
|
+
expect(example.data_for('key')).to have_field_value true
|
245
245
|
end
|
246
246
|
|
247
247
|
it "should resolve false" do
|
248
248
|
set_field_value false
|
249
|
-
example.data_for('key').
|
249
|
+
expect(example.data_for('key')).to have_field_value false
|
250
250
|
end
|
251
251
|
end
|
252
252
|
|
253
253
|
context "with numeric values" do
|
254
254
|
it "doesn't translate values" do
|
255
255
|
set_field_value(1)
|
256
|
-
example.data_for("key").
|
256
|
+
expect(example.data_for("key")).to have_field_value 1
|
257
257
|
end
|
258
258
|
end
|
259
259
|
|
@@ -266,31 +266,31 @@ describe "DataMagic translations" do
|
|
266
266
|
context "providing date values" do
|
267
267
|
it "should provide today's date" do
|
268
268
|
set_field_value '~today'
|
269
|
-
example.data_for('key').
|
269
|
+
expect(example.data_for('key')).to have_field_value Date.today.strftime('%D')
|
270
270
|
end
|
271
271
|
|
272
272
|
it "should provide tomorrow's date" do
|
273
273
|
set_field_value '~tomorrow'
|
274
274
|
tomorrow = Date.today + 1
|
275
|
-
example.data_for('key').
|
275
|
+
expect(example.data_for('key')).to have_field_value tomorrow.strftime('%D')
|
276
276
|
end
|
277
277
|
|
278
278
|
it "should provide yesterday's date" do
|
279
279
|
set_field_value '~yesterday'
|
280
280
|
yesterday = Date.today - 1
|
281
|
-
example.data_for('key').
|
281
|
+
expect(example.data_for('key')).to have_field_value yesterday.strftime('%D')
|
282
282
|
end
|
283
283
|
|
284
284
|
it "should provide a date that is some number of days from now" do
|
285
285
|
set_field_value '~5.days_from_today'
|
286
286
|
the_date = Date.today + 5
|
287
|
-
example.data_for('key').
|
287
|
+
expect(example.data_for('key')).to have_field_value the_date.strftime('%D')
|
288
288
|
end
|
289
289
|
|
290
290
|
it "should provide a date that is some number of days ago" do
|
291
291
|
set_field_value '~5.days_ago'
|
292
292
|
the_date = Date.today - 5
|
293
|
-
example.data_for('key').
|
293
|
+
expect(example.data_for('key')).to have_field_value the_date.strftime('%D')
|
294
294
|
end
|
295
295
|
end
|
296
296
|
end
|