seed_scatter 0.0.1 → 0.0.2

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.md CHANGED
@@ -35,10 +35,12 @@ To dump all of your models' information from the database to their respective se
35
35
 
36
36
  $ rake db:harvest
37
37
 
38
+ To re-seed a specific model:
39
+
40
+ $ rake db:reseed[MODEL_NAME]
38
41
 
39
42
  ## Todos
40
43
 
41
- * Re-seed models one at a time
42
44
  * Support for namespaced models
43
45
  * Support for join tables
44
46
 
@@ -6,21 +6,32 @@ module SeedScatter
6
6
 
7
7
  def init(model)
8
8
  models = if model == :all
9
- Dir['app/models/*.rb'].map {|f| File.basename(f, '.*').camelize.constantize.name }
9
+ Dir['app/models/*.rb'].map {|f| File.basename(f, '.*').camelize.constantize }
10
10
  else
11
- [model]
11
+ [model.camelize.constantize]
12
12
  end
13
13
  models.each do |m|
14
- @model = m.underscore.singularize
14
+ @model = m
15
15
  puts "Harvesting seeds for #{class_name}"
16
16
  @harvest_data = []
17
17
  dump_model(m)
18
18
  end
19
19
  end
20
20
 
21
+ def reseed(model)
22
+ @model = m = model.camelize.constantize
23
+ truncate(m.table_name)
24
+ f = File.expand_path(File.join("db","seeds","#{m.table_name}.rb"))
25
+ puts "Reseeding #{f}"
26
+ load(f)
27
+ end
28
+
29
+ def truncate(table)
30
+ ActiveRecord::Base.connection.execute("TRUNCATE #{table}")
31
+ end
32
+
21
33
  def collect_data(model)
22
- klass = model.camelize.constantize
23
- klass.all.each do |m|
34
+ model.all.each do |m|
24
35
  @harvest_data << ActiveSupport::JSON.decode(m.attributes.to_json).symbolize_keys
25
36
  end
26
37
  end
@@ -35,11 +46,11 @@ module SeedScatter
35
46
  end
36
47
 
37
48
  def class_name
38
- @model.camelize
49
+ @model.name
39
50
  end
40
51
 
41
52
  def destination_path(model)
42
- "db/seeds/#{model.downcase.pluralize}.rb"
53
+ "db/seeds/#{model.table_name}.rb"
43
54
  end
44
55
  end
45
56
 
@@ -1,3 +1,3 @@
1
1
  module SeedScatter
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -7,4 +7,7 @@ namespace :db do
7
7
  args.with_defaults(:model => :all)
8
8
  SeedScatter::Harvester.new.init args[:model]
9
9
  end
10
+ task :reseed, [:model] => :environment do |t,args|
11
+ SeedScatter::Harvester.new.reseed args[:model]
12
+ end
10
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seed_scatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
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: 2013-07-19 00:00:00.000000000 Z
12
+ date: 2013-07-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails