data_magic 0.10 → 0.11

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.
data/ChangeLog CHANGED
@@ -1,4 +1,13 @@
1
- ==- Version 0.10 / 2012-12-8
1
+ === Version 0.11 / 2012-12-22
2
+ * Enhancements
3
+ * Added title translator
4
+ * Added ability for street_address translator to also include secondary address
5
+ * Added ability for email_address to accept the name portion of the value
6
+ * Added url translator
7
+ * Added cell_phone translator
8
+ * Changed phone_number translator so it does not return an extension
9
+
10
+ === Version 0.10 / 2012-12-8
2
11
  * Enhancements
3
12
  * Added randomize translator to return random selection from Array or Range
4
13
  * Added mask translator which accepts a mask. Will replace # with number, A with upper case letter, and a with lower case letter
data/README.md CHANGED
@@ -41,12 +41,39 @@ end
41
41
 
42
42
  Notice that I am including the module on line 3. On lin 8 I am calling the _data_for_ method passing the key _:my_page_. The _populate_page_with_ method is a part of the page-object gem.
43
43
 
44
+ Your data might look something like this:
45
+
46
+ my_page:
47
+ name: Cheezy
48
+ address: 123 Main Street
49
+ email: cheezy@example.com
50
+ pay_type: 'Credit card'
51
+
44
52
  In order to access the data directly you can just call the method on the module like this:
45
53
 
46
54
  ````ruby
47
55
  my_data = DataMagic.data_for :my_test
48
56
  ````
49
57
 
58
+ ## Data generators
59
+
60
+ You can call one of many built-in methods in your yaml file to randomize the data. Here is an example of how you would randomize the above yaml:
61
+
62
+ my_page:
63
+ name: ~full_name
64
+ address: ~street_address
65
+ email: ~email_address
66
+ pay_type: ~randomize ['Credit card', 'Purchase order', 'Check']
67
+
68
+
69
+ ## Documentation
70
+
71
+ The rdocs for this project can be found at [rubydoc.info](http://rubydoc.info/github/cheezy/data_magic/master/frames).
72
+
73
+ To see the changes from release to release please look at the [ChangeLog](https://raw.github.com/cheezy/data_magic/master/ChangeLog)
74
+
75
+
76
+
50
77
  ## Known Issues
51
78
 
52
79
  See [http://github.com/cheezy/data_magic/issues](http://github.com/cheezy/data_magic/issues)
@@ -14,9 +14,11 @@ Feature: Functionality of the data_magic gem
14
14
  And the value for "last_name" should be 1 word long
15
15
  And the value for "name_prefix" should be 1 word long
16
16
  And the value for "name_suffix" should be 1 word long
17
+ And the value for "title" should have a minimum of 3 words
17
18
 
18
19
  Scenario: Getting addresses from the yaml
19
20
  Then the value for "street" should have a minimum of 2 words
21
+ And the value for "street_plus" should have a minimum of 4 words
20
22
  And the value for "city" should have a minimum of 1 word
21
23
  And the value for "state" should have a minimum of 1 word
22
24
  And the value for "state_ab" should be 1 word long
@@ -29,11 +31,14 @@ Feature: Functionality of the data_magic gem
29
31
 
30
32
  Scenario: Getting an email address from the yaml
31
33
  Then the value for "email" should be 1 word long
34
+ And the value for "email_plus" should include "buddy"
32
35
  And the value for "domain_name" should be 1 word long
33
36
  And the value for "user_name" should be 1 word long
37
+ And the value for "url" should include "http://"
34
38
 
35
39
  Scenario: Getting a phone number
36
- Then the value for "phone" should have a minimum of 1 word
40
+ Then the value for "phone" should be 1 word long
41
+ And the value for "cell" should be 1 word long
37
42
 
38
43
  Scenario: Random phrases
39
44
  Then the value for "catch_phrase" should exist
@@ -69,3 +69,7 @@ Then /^the value for "(.*?)" should end with (\d+) lower case letters$/ do |key,
69
69
  value = @data[key]
70
70
  value[-1 * num.to_i,num.to_i].downcase.should == value[-3,3]
71
71
  end
72
+
73
+ Then /^the value for "(.*?)" should include "(.*?)"$/ do |key, value|
74
+ @data[key].should include value
75
+ end
@@ -7,6 +7,7 @@ dm:
7
7
  name_prefix: ~name_prefix
8
8
  name_suffix: ~name_suffix
9
9
  street: ~street_address
10
+ street_plus: ~street_address(true)
10
11
  city: ~city
11
12
  state: ~state
12
13
  state_ab: ~state_abbr
@@ -15,9 +16,12 @@ dm:
15
16
  second_address: ~secondary_address
16
17
  company: ~company_name
17
18
  email: ~email_address
19
+ email_plus: ~email_address('buddy')
18
20
  domain_name: ~domain_name
21
+ url: ~url
19
22
  user_name: ~user_name
20
23
  phone: ~phone_number
24
+ cell: ~cell_phone
21
25
  catch_phrase: ~catch_phrase
22
26
  words: ~words
23
27
  sentence: ~sentence
@@ -29,6 +33,7 @@ dm:
29
33
  random: ~randomize ['Tom', 'Dick', 'Harry']
30
34
  range: ~randomize 1..5
31
35
  mask: ~mask "###-AAA_aaa"
36
+ title: ~title
32
37
 
33
38
  other:
34
39
  name: Cheezy
@@ -35,11 +35,18 @@ module DataMagic
35
35
  Faker::Name.suffix
36
36
  end
37
37
 
38
+ #
39
+ # return a random title
40
+ #
41
+ def title
42
+ Faker::Name.title
43
+ end
44
+
38
45
  #
39
46
  # return a random street address
40
47
  #
41
- def street_address
42
- Faker::Address.street_address
48
+ def street_address(include_secondary=false)
49
+ Faker::Address.street_address(include_secondary)
43
50
  end
44
51
 
45
52
  #
@@ -137,8 +144,8 @@ module DataMagic
137
144
  #
138
145
  # return a random email address
139
146
  #
140
- def email_address
141
- Faker::Internet.email
147
+ def email_address(name=nil)
148
+ Faker::Internet.email(name)
142
149
  end
143
150
 
144
151
  #
@@ -148,6 +155,13 @@ module DataMagic
148
155
  Faker::Internet.domain_name
149
156
  end
150
157
 
158
+ #
159
+ # return a random url
160
+ #
161
+ def url
162
+ Faker::Internet.url
163
+ end
164
+
151
165
  #
152
166
  # return a random user name
153
167
  #
@@ -159,7 +173,16 @@ module DataMagic
159
173
  # return a random phone number
160
174
  #
161
175
  def phone_number
162
- Faker::PhoneNumber.phone_number
176
+ value = Faker::PhoneNumber.phone_number
177
+ remove_extension(value)
178
+ end
179
+
180
+ #
181
+ # return a random cell number
182
+ #
183
+ def cell_phone
184
+ value = Faker::PhoneNumber.cell_phone
185
+ remove_extension(value)
163
186
  end
164
187
 
165
188
  #
@@ -191,5 +214,13 @@ module DataMagic
191
214
  end
192
215
  result
193
216
  end
217
+
218
+ private
219
+
220
+ def remove_extension(phone)
221
+ index = phone.index('x')
222
+ phone = phone[0, (index-1)] if index
223
+ phone
224
+ end
194
225
  end
195
226
  end
@@ -1,3 +1,3 @@
1
1
  module DataMagic
2
- VERSION = "0.10"
2
+ VERSION = "0.11"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_magic
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.10'
4
+ version: '0.11'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-08 00:00:00.000000000 Z
12
+ date: 2012-12-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faker
@@ -122,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
122
  version: '0'
123
123
  segments:
124
124
  - 0
125
- hash: -1776216975269859243
125
+ hash: 4075926568841345413
126
126
  required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  version: '0'
132
132
  segments:
133
133
  - 0
134
- hash: -1776216975269859243
134
+ hash: 4075926568841345413
135
135
  requirements: []
136
136
  rubyforge_project:
137
137
  rubygems_version: 1.8.24