genesis 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,14 @@
1
+ == 1.2.1 2010-09-19
2
+
3
+ * Fix issue with outputting seed delimiter message when the class names are too long.
4
+ * Add seeding start and end messages with contexts referenced.
5
+ * Add total seeding time message.
6
+
7
+
1
8
  == 1.2.0 2010-09-19
2
9
 
3
10
  * Make create_or_update_by_* methods able to convert AR objects to IDs if the attribute name includes '_id'.
11
+ * Add contexts.
4
12
 
5
13
 
6
14
  == 1.1.0 2010-07-27
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.2.1
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{genesis}
8
- s.version = "1.2.0"
8
+ s.version = "1.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["C. Jason Harrelson (midas)"]
@@ -8,13 +8,18 @@ namespace :db do
8
8
 
9
9
  contexts = ENV['CONTEXTS']
10
10
  unless contexts.nil? || contexts.empty?
11
+ using_contexts = true
11
12
  contexts = expand_contexts if contexts == 'all'
12
13
  contexts.split( ',' ).each do |context|
13
14
  seeds += Dir[File.join( Rails.root, 'db', 'seeds', 'contexts', context, '*.rb' )]
14
15
  end
15
16
  end
16
17
 
18
+
19
+
20
+ puts "", message( contexts, :using_contexts => using_contexts, :start => true ), ""
17
21
  Genesis::Seeder.run( seeds, ENV['VERSION'] || nil, ignores )
22
+ puts message( contexts, :using_contexts => using_contexts ), "", ""
18
23
  end
19
24
 
20
25
  desc "Drops and recreates all tables along with seeding the database"
@@ -71,3 +76,13 @@ end
71
76
  def expand_contexts
72
77
  Dir[File.join( contexts_root, '*' )].map { |d| d.split( '/' ).last }.join ','
73
78
  end
79
+
80
+ def message( contexts, options={} )
81
+ msg = options[:using_contexts] ?
82
+ "*** #{start_or_end_word( options )} seeding (contexts: #{contexts.split(',').join(', ')})" :
83
+ "*** #{start_or_end_word( options )} seeding"
84
+ end
85
+
86
+ def start_or_end_word( options )
87
+ return options[:start] ? 'Start' : 'End'
88
+ end
@@ -6,7 +6,7 @@ require 'genesis/seeder'
6
6
  require 'genesis/schema_seed'
7
7
 
8
8
  module Genesis
9
- VERSION = '1.2.0'
9
+ VERSION = '1.2.1'
10
10
  SEEDS_ROOT = 'db/seeds'
11
11
  end
12
12
 
@@ -43,7 +43,7 @@ module Genesis
43
43
  #
44
44
  def self.run( seeds=[], to_version=nil, ignores=[] )
45
45
  ignores << 'genesis_callbacks.rb'
46
- @separator_size = 79
46
+ @separator_size = 95
47
47
  determine_current_version
48
48
  map_versions( seeds, ignores )
49
49
  raise 'There are no seeds to execute.' if @versions_map.empty?
@@ -115,12 +115,16 @@ module Genesis
115
115
  GenesisCallbacks.send( callback_method ) if GenesisCallbacks.respond_to?( callback_method )
116
116
  end
117
117
 
118
+ @time_start_seeding = Time.now
118
119
  @to_run.each { |version, metadata| self.run_seed( version, metadata ) }
120
+ @time_end_seeding = Time.now
119
121
 
120
122
  if should_run_callbacks
121
123
  callback_method = :"after_#{@method}"
122
124
  GenesisCallbacks.send( callback_method ) if GenesisCallbacks.respond_to?( callback_method )
123
125
  end
126
+
127
+ log_seeding_finish
124
128
  end
125
129
 
126
130
  def self.run_seed( version, metadata )
@@ -143,14 +147,21 @@ module Genesis
143
147
 
144
148
  def self.log_entry_start( class_name )
145
149
  entry = "== #{class_name}: seeding (#{@method.to_s}) "
146
- entry << "="*(@separator_size-entry.length+1) << "\n"
150
+ entry << "="*(@separator_size-entry.length) << "\n"
147
151
  puts entry
148
152
  RAILS_DEFAULT_LOGGER.info entry
149
153
  end
150
154
 
151
155
  def self.log_entry_finish( class_name, total_time )
152
156
  entry = "== #{class_name}: seeded (#{@method.to_s}) (#{total_time}s) "
153
- entry << "="*(@separator_size-entry.length) << "\n\n"
157
+ num_to_finish = @separator_size-entry.length
158
+ entry << "="*(num_to_finish) << "\n\n" if num_to_finish > 0
159
+ puts entry
160
+ RAILS_DEFAULT_LOGGER.info entry
161
+ end
162
+
163
+ def self.log_seeding_finish
164
+ entry = "*** Seeding total time: #{@time_end_seeding - @time_start_seeding}s"
154
165
  puts entry
155
166
  RAILS_DEFAULT_LOGGER.info entry
156
167
  end
@@ -8,13 +8,18 @@ namespace :db do
8
8
 
9
9
  contexts = ENV['CONTEXTS']
10
10
  unless contexts.nil? || contexts.empty?
11
+ using_contexts = true
11
12
  contexts = expand_contexts if contexts == 'all'
12
13
  contexts.split( ',' ).each do |context|
13
14
  seeds += Dir[File.join( Rails.root, 'db', 'seeds', 'contexts', context, '*.rb' )]
14
15
  end
15
16
  end
16
17
 
18
+
19
+
20
+ puts "", message( contexts, :using_contexts => using_contexts, :start => true ), ""
17
21
  Genesis::Seeder.run( seeds, ENV['VERSION'] || nil, ignores )
22
+ puts message( contexts, :using_contexts => using_contexts ), "", ""
18
23
  end
19
24
 
20
25
  desc "Drops and recreates all tables along with seeding the database"
@@ -71,3 +76,13 @@ end
71
76
  def expand_contexts
72
77
  Dir[File.join( contexts_root, '*' )].map { |d| d.split( '/' ).last }.join ','
73
78
  end
79
+
80
+ def message( contexts, options={} )
81
+ msg = options[:using_contexts] ?
82
+ "*** #{start_or_end_word( options )} seeding (contexts: #{contexts.split(',').join(', ')})" :
83
+ "*** #{start_or_end_word( options )} seeding"
84
+ end
85
+
86
+ def start_or_end_word( options )
87
+ return options[:start] ? 'Start' : 'End'
88
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genesis
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 2
9
- - 0
10
- version: 1.2.0
9
+ - 1
10
+ version: 1.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - C. Jason Harrelson (midas)