data_magic 0.12 → 0.13

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -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
@@ -39,6 +39,10 @@ dm:
39
39
  yesterday: ~yesterday
40
40
  5daysfromtoday: ~5.days_from_today
41
41
  5daysago: ~5.days_ago
42
+ some_month: ~month
43
+
44
+ dynamic:
45
+ blah: ~blah
42
46
 
43
47
  other:
44
48
  name: Cheezy
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
 
@@ -1,3 +1,3 @@
1
1
  module DataMagic
2
- VERSION = "0.12"
2
+ VERSION = "0.13"
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.12'
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: 2012-12-29 00:00:00.000000000 Z
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: 722238677510975421
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: 722238677510975421
136
+ hash: 2833217716898042459
137
137
  requirements: []
138
138
  rubyforge_project:
139
139
  rubygems_version: 1.8.24