data_magic 0.12 → 0.13
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 +6 -0
- data/features/data_magic.feature +7 -0
- data/features/step_definitions/data_magic_steps.rb +21 -0
- data/features/yaml/example.yml +4 -0
- data/lib/data_magic.rb +14 -0
- data/lib/data_magic/date_translation.rb +3 -0
- data/lib/data_magic/translation.rb +32 -0
- data/lib/data_magic/version.rb +1 -1
- metadata +4 -4
data/ChangeLog
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== Version 0.13 / 2013-2-7
|
2
|
+
* Enhancements
|
3
|
+
* Added add_translator method to DataMagic to allow custom translators to be added
|
4
|
+
* Added months translator
|
5
|
+
* Added dm_* aliases for all generators
|
6
|
+
|
1
7
|
=== Version 0.12 / 2012-12-28
|
2
8
|
* Enhancements
|
3
9
|
* Added today translator
|
data/features/data_magic.feature
CHANGED
@@ -91,3 +91,10 @@ Feature: Functionality of the data_magic gem
|
|
91
91
|
Scenario: Specifying number of days from today
|
92
92
|
Then the value for "5daysfromtoday" should be five days from today
|
93
93
|
And the value for "5daysago" should be five days ago
|
94
|
+
|
95
|
+
Scenario: Getting a random month name
|
96
|
+
Then the value for "some_month" should be a valid month
|
97
|
+
|
98
|
+
Scenario: It should allow one to add new translator methods
|
99
|
+
When I add the blah translator
|
100
|
+
Then the value for "blah" should be "foobar"
|
@@ -97,3 +97,24 @@ Then /^the value for "(.*?)" should be five days ago$/ do |key|
|
|
97
97
|
the_day = Date.today - 5
|
98
98
|
@data[key].should == the_day.strftime('%D')
|
99
99
|
end
|
100
|
+
|
101
|
+
Then /^the value for "(.*?)" should be a valid month$/ do |key|
|
102
|
+
months = %w[January February March April May June July August September October November December]
|
103
|
+
months.should include @data[key]
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
When /^I add the blah translator$/ do
|
108
|
+
module Blah
|
109
|
+
def blah
|
110
|
+
'foobar'
|
111
|
+
end
|
112
|
+
end
|
113
|
+
DataMagic.add_translator(Blah)
|
114
|
+
|
115
|
+
class TranslatorAdded
|
116
|
+
include DataMagic
|
117
|
+
end
|
118
|
+
ta = TranslatorAdded.new
|
119
|
+
@data = ta.data_for 'dynamic'
|
120
|
+
end
|
data/features/yaml/example.yml
CHANGED
data/lib/data_magic.rb
CHANGED
@@ -12,6 +12,12 @@ module DataMagic
|
|
12
12
|
include DateTranslation
|
13
13
|
extend YmlReader
|
14
14
|
|
15
|
+
def self.included(cls)
|
16
|
+
translators.each do |translator|
|
17
|
+
cls.send :include, translator
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
15
21
|
def data_for(key, additional={})
|
16
22
|
DataMagic.load('default.yml') unless DataMagic.yml
|
17
23
|
data = DataMagic.yml[key.to_s]
|
@@ -36,6 +42,14 @@ module DataMagic
|
|
36
42
|
def default_directory
|
37
43
|
'config/data'
|
38
44
|
end
|
45
|
+
|
46
|
+
def add_translator(translator)
|
47
|
+
translators << translator
|
48
|
+
end
|
49
|
+
|
50
|
+
def translators
|
51
|
+
@translators ||= []
|
52
|
+
end
|
39
53
|
end
|
40
54
|
|
41
55
|
end
|
@@ -11,6 +11,7 @@ module DataMagic
|
|
11
11
|
def today(format = '%D')
|
12
12
|
Date.today.strftime(format)
|
13
13
|
end
|
14
|
+
alias_method :dm_today, :today
|
14
15
|
|
15
16
|
#
|
16
17
|
# return tomorrow's date
|
@@ -24,6 +25,7 @@ module DataMagic
|
|
24
25
|
tomorrow = Date.today + 1
|
25
26
|
tomorrow.strftime(format)
|
26
27
|
end
|
28
|
+
alias_method :dm_tomorrow, :tomorrow
|
27
29
|
|
28
30
|
#
|
29
31
|
# return yesterday's date
|
@@ -37,5 +39,6 @@ module DataMagic
|
|
37
39
|
yesterday = Date.today - 1
|
38
40
|
yesterday.strftime(format)
|
39
41
|
end
|
42
|
+
alias_method :dm_yesterday, :yesterday
|
40
43
|
end
|
41
44
|
end
|
@@ -6,6 +6,7 @@ module DataMagic
|
|
6
6
|
def full_name
|
7
7
|
Faker::Name.name
|
8
8
|
end
|
9
|
+
alias_method :dm_full_name, :full_name
|
9
10
|
|
10
11
|
#
|
11
12
|
# return a random first name
|
@@ -13,6 +14,7 @@ module DataMagic
|
|
13
14
|
def first_name
|
14
15
|
Faker::Name.first_name
|
15
16
|
end
|
17
|
+
alias_method :dm_first_name, :first_name
|
16
18
|
|
17
19
|
#
|
18
20
|
# return a random last name
|
@@ -20,6 +22,7 @@ module DataMagic
|
|
20
22
|
def last_name
|
21
23
|
Faker::Name.last_name
|
22
24
|
end
|
25
|
+
alias_method :dm_last_name, :last_name
|
23
26
|
|
24
27
|
#
|
25
28
|
# return a random name prefix
|
@@ -27,6 +30,7 @@ module DataMagic
|
|
27
30
|
def name_prefix
|
28
31
|
Faker::Name.prefix
|
29
32
|
end
|
33
|
+
alias_method :dm_name_prefix, :name_prefix
|
30
34
|
|
31
35
|
#
|
32
36
|
# return a random name suffix
|
@@ -34,6 +38,7 @@ module DataMagic
|
|
34
38
|
def name_suffix
|
35
39
|
Faker::Name.suffix
|
36
40
|
end
|
41
|
+
alias_method :dm_name_suffix, :name_suffix
|
37
42
|
|
38
43
|
#
|
39
44
|
# return a random title
|
@@ -41,6 +46,7 @@ module DataMagic
|
|
41
46
|
def title
|
42
47
|
Faker::Name.title
|
43
48
|
end
|
49
|
+
alias_method :dm_title, :title
|
44
50
|
|
45
51
|
#
|
46
52
|
# return a random street address
|
@@ -48,6 +54,7 @@ module DataMagic
|
|
48
54
|
def street_address(include_secondary=false)
|
49
55
|
Faker::Address.street_address(include_secondary)
|
50
56
|
end
|
57
|
+
alias_method :dm_street_address, :street_address
|
51
58
|
|
52
59
|
#
|
53
60
|
# return a random secondary address
|
@@ -55,6 +62,7 @@ module DataMagic
|
|
55
62
|
def secondary_address
|
56
63
|
Faker::Address.secondary_address
|
57
64
|
end
|
65
|
+
alias_method :dm_secondary_address, :secondary_address
|
58
66
|
|
59
67
|
#
|
60
68
|
# return a random city
|
@@ -62,6 +70,7 @@ module DataMagic
|
|
62
70
|
def city
|
63
71
|
Faker::Address.city
|
64
72
|
end
|
73
|
+
alias_method :dm_city, :city
|
65
74
|
|
66
75
|
#
|
67
76
|
# return a random state
|
@@ -69,6 +78,7 @@ module DataMagic
|
|
69
78
|
def state
|
70
79
|
Faker::Address.state
|
71
80
|
end
|
81
|
+
alias_method :dm_state, :state
|
72
82
|
|
73
83
|
#
|
74
84
|
# return a random state abbreviation
|
@@ -76,6 +86,7 @@ module DataMagic
|
|
76
86
|
def state_abbr
|
77
87
|
Faker::Address.state_abbr
|
78
88
|
end
|
89
|
+
alias_method :dm_state_abbr, :state_abbr
|
79
90
|
|
80
91
|
#
|
81
92
|
# return a random 5 or 9 digit zip code
|
@@ -83,6 +94,7 @@ module DataMagic
|
|
83
94
|
def zip_code
|
84
95
|
Faker::Address.zip
|
85
96
|
end
|
97
|
+
alias_method :dm_zip_code, :zip_code
|
86
98
|
|
87
99
|
#
|
88
100
|
# return a random country
|
@@ -90,6 +102,7 @@ module DataMagic
|
|
90
102
|
def country
|
91
103
|
Faker::Address.country
|
92
104
|
end
|
105
|
+
alias_method :dm_country, :country
|
93
106
|
|
94
107
|
|
95
108
|
#
|
@@ -98,6 +111,7 @@ module DataMagic
|
|
98
111
|
def company_name
|
99
112
|
Faker::Company.name
|
100
113
|
end
|
114
|
+
alias_method :dm_company_name, :company_name
|
101
115
|
|
102
116
|
#
|
103
117
|
# return a random catch phrase
|
@@ -105,6 +119,7 @@ module DataMagic
|
|
105
119
|
def catch_phrase
|
106
120
|
Faker::Company.catch_phrase
|
107
121
|
end
|
122
|
+
alias_method :dm_catch_phrase, :catch_phrase
|
108
123
|
|
109
124
|
#
|
110
125
|
# return random words - default is 3 words
|
@@ -112,6 +127,7 @@ module DataMagic
|
|
112
127
|
def words(number = 3)
|
113
128
|
Faker::Lorem.words(number).join(' ')
|
114
129
|
end
|
130
|
+
alias_method :dm_words, :words
|
115
131
|
|
116
132
|
#
|
117
133
|
# return a random sentence - default minimum word count is 4
|
@@ -119,6 +135,7 @@ module DataMagic
|
|
119
135
|
def sentence(min_word_count = 4)
|
120
136
|
Faker::Lorem.sentence(min_word_count)
|
121
137
|
end
|
138
|
+
alias_method :dm_sentence, :sentence
|
122
139
|
|
123
140
|
#
|
124
141
|
# return random sentences - default is 3 sentences
|
@@ -126,6 +143,7 @@ module DataMagic
|
|
126
143
|
def sentences(sentence_count = 3)
|
127
144
|
Faker::Lorem.sentences(sentence_count).join(' ')
|
128
145
|
end
|
146
|
+
alias_method :dm_sentences, :sentences
|
129
147
|
|
130
148
|
#
|
131
149
|
# return random paragraphs - default is 3 paragraphs
|
@@ -133,6 +151,7 @@ module DataMagic
|
|
133
151
|
def paragraphs(paragraph_count = 3)
|
134
152
|
Faker::Lorem.paragraphs(paragraph_count).join('\n\n')
|
135
153
|
end
|
154
|
+
alias_method :dm_paragraphs, :paragraphs
|
136
155
|
|
137
156
|
#
|
138
157
|
# return random characters - default is 255 characters
|
@@ -140,6 +159,7 @@ module DataMagic
|
|
140
159
|
def characters(character_count = 255)
|
141
160
|
Faker::Lorem.characters(character_count)
|
142
161
|
end
|
162
|
+
alias_method :dm_characters, :characters
|
143
163
|
|
144
164
|
#
|
145
165
|
# return a random email address
|
@@ -147,6 +167,7 @@ module DataMagic
|
|
147
167
|
def email_address(name=nil)
|
148
168
|
Faker::Internet.email(name)
|
149
169
|
end
|
170
|
+
alias_method :dm_email_address, :email_address
|
150
171
|
|
151
172
|
#
|
152
173
|
# return a random domain name
|
@@ -154,6 +175,7 @@ module DataMagic
|
|
154
175
|
def domain_name
|
155
176
|
Faker::Internet.domain_name
|
156
177
|
end
|
178
|
+
alias_method :dm_domain_name, :domain_name
|
157
179
|
|
158
180
|
#
|
159
181
|
# return a random url
|
@@ -161,6 +183,7 @@ module DataMagic
|
|
161
183
|
def url
|
162
184
|
Faker::Internet.url
|
163
185
|
end
|
186
|
+
alias_method :dm_url, :url
|
164
187
|
|
165
188
|
#
|
166
189
|
# return a random user name
|
@@ -168,6 +191,7 @@ module DataMagic
|
|
168
191
|
def user_name
|
169
192
|
Faker::Internet.user_name
|
170
193
|
end
|
194
|
+
alias_method :dm_user_name, :user_name
|
171
195
|
|
172
196
|
#
|
173
197
|
# return a random phone number
|
@@ -176,6 +200,7 @@ module DataMagic
|
|
176
200
|
value = Faker::PhoneNumber.phone_number
|
177
201
|
remove_extension(value)
|
178
202
|
end
|
203
|
+
alias_method :dm_phone_number, :phone_number
|
179
204
|
|
180
205
|
#
|
181
206
|
# return a random cell number
|
@@ -184,6 +209,7 @@ module DataMagic
|
|
184
209
|
value = Faker::PhoneNumber.cell_phone
|
185
210
|
remove_extension(value)
|
186
211
|
end
|
212
|
+
alias_method :dm_cell_phone, :cell_phone
|
187
213
|
|
188
214
|
#
|
189
215
|
# return a random value from an array or range
|
@@ -195,6 +221,7 @@ module DataMagic
|
|
195
221
|
else value
|
196
222
|
end
|
197
223
|
end
|
224
|
+
alias_method :dm_randomize, :randomize
|
198
225
|
|
199
226
|
#
|
200
227
|
# return a value based on a mast
|
@@ -214,6 +241,11 @@ module DataMagic
|
|
214
241
|
end
|
215
242
|
result
|
216
243
|
end
|
244
|
+
alias_method :dm_mask, :mask
|
245
|
+
|
246
|
+
def month
|
247
|
+
randomize(%w[January February March April May June July August September October November December])
|
248
|
+
end
|
217
249
|
|
218
250
|
private
|
219
251
|
|
data/lib/data_magic/version.rb
CHANGED
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.
|
4
|
+
version: '0.13'
|
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:
|
12
|
+
date: 2013-02-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faker
|
@@ -124,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
124
124
|
version: '0'
|
125
125
|
segments:
|
126
126
|
- 0
|
127
|
-
hash:
|
127
|
+
hash: 2833217716898042459
|
128
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
133
|
version: '0'
|
134
134
|
segments:
|
135
135
|
- 0
|
136
|
-
hash:
|
136
|
+
hash: 2833217716898042459
|
137
137
|
requirements: []
|
138
138
|
rubyforge_project:
|
139
139
|
rubygems_version: 1.8.24
|