forgery 0.3.5 → 0.3.6

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/README.markdown CHANGED
@@ -33,7 +33,7 @@ plugin includes a generator providing directories to make your own forgeries.
33
33
 
34
34
  ## Rails 3 Generator
35
35
 
36
- rails generate forgery
36
+ rails generate forgery
37
37
 
38
38
  In a rails project this generator creates:
39
39
 
@@ -77,24 +77,29 @@ for individual examples.
77
77
  Forgery(:monetary).formatted_money # => "$3.48"
78
78
  Forgery(:monetary).money :min => 100, :max => 1000 # => "923.36"
79
79
 
80
- ##Customization
80
+ ## Customization
81
+
81
82
  You can utilize the directories generated in /lib to customize the behavior of forgery.
83
+
82
84
  Examples of each of these components are available in the source.
83
85
 
84
- ###Dictionaries
86
+ ### Dictionaries
87
+
85
88
  Dictionaries are files with no extensions. Entries are separated by new lines.
86
89
 
87
- ###Forgeries
90
+ ### Forgeries
91
+
88
92
  Forgeries are classes that inherit from the Forgery class. A basic forgery definition is as follows
89
93
 
90
- class NewForgery < Forgery
91
- end
94
+ class NewForgery < Forgery
95
+ end
96
+
97
+ ### Extensions
98
+
99
+ Extensions are additional methods/functionality that are added to classes (Ruby core or otherwise) that are loaded by Forgery. Follow standard Ruby practices.
92
100
 
93
- ###Extensions
94
- Extensions are additional methods/functionality that are added to classes (Ruby core or otherwise)
95
- that are loaded by Forgery. Follow standard Ruby practices.
101
+ ### Formats
96
102
 
97
- ###Formats
98
103
  Formatting for numerical fields. Each numerical entry corresponds to a # mark.
99
104
 
100
105
  ## DOCUMENTATION
data/lib/forgery.rb CHANGED
@@ -30,3 +30,6 @@ end
30
30
  # Loading rails forgeries to override current forgery methods and add new forgeries
31
31
  # Only run this for Rails < 3.0 since we need to use a Railtie to initialize >= 3.0
32
32
  Forgery.load_from! "#{Forgery.rails_root}/lib/forgery" if Forgery.rails? && Rails::VERSION::STRING < "3.0.0"
33
+
34
+ # Include our Railtie if Rails >= 3.0.0
35
+ require 'forgery/forgery_railtie' if Forgery.rails? && Rails::VERSION::STRING >= "3.0.0"
@@ -0,0 +1,71 @@
1
+ require 'date'
2
+
3
+ class Forgery::Date < Forgery
4
+ DAYS = %w{Sunday Monday Tuesday Wednesday Thursday Friday Saturday}
5
+ DAYS_ABBR = %w{Sun Mon Tue Wed Thu Fri Sat}
6
+ MONTHS = %w{January February March April May June July August September October November December}
7
+ MONTHS_ABBR = %w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
8
+
9
+ def self.day_of_week(options={})
10
+ options.reverse_merge!(:abbr => false)
11
+
12
+ if (options[:abbr])
13
+ DAYS_ABBR.random
14
+ else
15
+ DAYS.random
16
+ end
17
+ end
18
+
19
+ def self.month(options={})
20
+ options.reverse_merge!(:abbr => false, :numerical => false)
21
+
22
+ if (options[:numerical])
23
+ 1 + rand(12)
24
+ else
25
+ if (options[:abbr])
26
+ MONTHS_ABBR.random
27
+ else
28
+ MONTHS.random
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+ def self.year(options={})
35
+ options.reverse_merge!(:future => false, :min_delta => 0, :max_delta => 20)
36
+
37
+ #Calculate our delta
38
+ delta = options[:min_delta] + rand(options[:max_delta] + 1 - options[:min_delta]).to_i
39
+
40
+ #Potentially negate our delta if future is false
41
+ unless (options[:future])
42
+ if rand(2).zero?
43
+ delta *= -1
44
+ end
45
+ end
46
+
47
+ #Apply our delta to this year
48
+ DateTime.now.year + delta
49
+ end
50
+
51
+ def self.day
52
+ 1 + rand(31)
53
+ end
54
+
55
+ def self.date(options={})
56
+ options.reverse_merge!(:future => false, :min_delta => 0, :max_delta => 7300)
57
+
58
+ #Calculate our delta
59
+ delta = options[:min_delta] + rand(options[:max_delta] + 1 - options[:min_delta]).to_i
60
+
61
+ #Potentially negate our delta if future is false
62
+ unless (options[:future])
63
+ if rand(2).zero?
64
+ delta *= -1
65
+ end
66
+ end
67
+
68
+ #Apply our delta to today
69
+ DateTime.now.to_date + delta
70
+ end
71
+ end
@@ -40,7 +40,8 @@ class Forgery::Name < Forgery
40
40
  dictionaries[:name_suffixes].random
41
41
  end
42
42
 
43
- def self.location
44
- dictionaries[:locations].random
45
- end
43
+ def self.location
44
+ dictionaries[:locations].random
45
+ end
46
+
46
47
  end
@@ -0,0 +1,8 @@
1
+ require 'forgery'
2
+ require 'rails'
3
+
4
+ class ForgeryRailtie < Rails::Railtie
5
+ initializer "forgery_railtie.initialize" do
6
+ Forgery.load_from! "#{Rails.root}/lib/forgery"
7
+ end
8
+ end
@@ -1,3 +1,3 @@
1
1
  class Forgery
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
@@ -1,18 +1,18 @@
1
1
  require 'rails/generators/base'
2
2
 
3
3
  class ForgeryGenerator < Rails::Generators::Base
4
- desc "Create the necessary directories in /lib to customize forgery's behavior"
5
-
6
- def self.source_root
7
- @_forgery_source_root ||= File.expand_path(File.dirname(__FILE__))
8
- end
9
-
10
- def create_directories
11
- puts "Creating directories in /lib/forgery..."
12
-
13
- FileUtils.mkdir_p 'lib/forgery/dictionaries'
14
- FileUtils.mkdir_p 'lib/forgery/extensions'
15
- FileUtils.mkdir_p 'lib/forgery/forgeries'
16
- FileUtils.mkdir_p 'lib/forgery/formats'
17
- end
18
- end
4
+ desc "Create the necessary directories in /lib to customize forgery's behavior"
5
+
6
+ def self.source_root
7
+ @_forgery_source_root ||= File.expand_path(File.dirname(__FILE__))
8
+ end
9
+
10
+ def create_directories
11
+ puts "Creating directories in /lib/forgery..."
12
+
13
+ FileUtils.mkdir_p 'lib/forgery/dictionaries'
14
+ FileUtils.mkdir_p 'lib/forgery/extensions'
15
+ FileUtils.mkdir_p 'lib/forgery/forgeries'
16
+ FileUtils.mkdir_p 'lib/forgery/formats'
17
+ end
18
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 5
9
- version: 0.3.5
8
+ - 6
9
+ version: 0.3.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Nathan Sutton
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-19 00:00:00 -05:00
17
+ date: 2010-10-22 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -76,6 +76,7 @@ files:
76
76
  - lib/forgery/file_reader.rb
77
77
  - lib/forgery/forgery/address.rb
78
78
  - lib/forgery/forgery/basic.rb
79
+ - lib/forgery/forgery/date.rb
79
80
  - lib/forgery/forgery/internet.rb
80
81
  - lib/forgery/forgery/lorem_ipsum.rb
81
82
  - lib/forgery/forgery/monetary.rb
@@ -84,11 +85,11 @@ files:
84
85
  - lib/forgery/forgery/time.rb
85
86
  - lib/forgery/forgery.rb
86
87
  - lib/forgery/forgery_api.rb
88
+ - lib/forgery/forgery_railtie.rb
87
89
  - lib/forgery/formats/phone
88
90
  - lib/forgery/formats/street_number
89
91
  - lib/forgery/formats/zip
90
92
  - lib/forgery/formats.rb
91
- - lib/forgery/railtie.rb
92
93
  - lib/forgery/version.rb
93
94
  - lib/forgery.rb
94
95
  - lib/generators/forgery/forgery_generator.rb
@@ -1,10 +0,0 @@
1
- require 'forgery'
2
- require 'rails'
3
-
4
- module Forgery
5
- class Railtie < Rails::Railtie
6
- initializer "forgery.initialize" do
7
- Forgery.load_from! "#{Rails.root}/lib/forgery"
8
- end
9
- end
10
- end