the_gardener 0.1.2 → 0.2.0
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.
- checksums.yaml +4 -4
- data/README.md +10 -6
- data/lib/tasks/tg.rake +1 -19
- data/lib/the_gardener/seed_migration.rb +9 -0
- data/lib/the_gardener/version.rb +1 -1
- data/lib/the_gardener.rb +31 -5
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ea13ce0a8fd8a5e1ee7a5a1a4ce9113dce8158ac
|
|
4
|
+
data.tar.gz: 399dd09d05afedd65b4bb56f493897b493532c1f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a83500879ce74460ab96e0421b87b39f7098b2c7d97879100f3bac921245bf278b7a5b968447b5cd16b527f9af1093e79e016ebbb4a7cac4240ffb35ea3582d6
|
|
7
|
+
data.tar.gz: e104562619d4475d1a6cde868bafb524026f6e8389b6d6cdd404efa0af2f0716176d82819b0e8ed5493f1ee6c0aa96fbf1cb30c4923d30bc68a98722474443e4
|
data/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# TheGardener
|
|
2
2
|
|
|
3
3
|
TheGardener helps you to versionize your seed files. If you need to separate
|
|
4
|
-
seedings, this gem could be helpfull for you.
|
|
4
|
+
seedings from migrations, this gem could be helpfull for you.
|
|
5
5
|
|
|
6
|
-
TheGardener generates seed files filed under `db/seeds` and stores which
|
|
7
|
-
allready be
|
|
6
|
+
TheGardener generates simple seed files filed under `db/seeds` and stores which
|
|
7
|
+
seed allready be executed. it's the same procedure like migrations.
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
## Installation
|
|
@@ -12,7 +12,7 @@ allready be done. it's the same procedure like migrations.
|
|
|
12
12
|
hm, yeah. just add this to your Gemfile:
|
|
13
13
|
|
|
14
14
|
```ruby
|
|
15
|
-
gem 'the_gardener', '~> 0.
|
|
15
|
+
gem 'the_gardener', '~> 0.2.0'
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
And then execute:
|
|
@@ -31,6 +31,10 @@ Now you just have to install the_gardener in your project:
|
|
|
31
31
|
|
|
32
32
|
and run your migrations.
|
|
33
33
|
|
|
34
|
+
```
|
|
35
|
+
$ rake db:migrate
|
|
36
|
+
```
|
|
37
|
+
|
|
34
38
|
## Usage
|
|
35
39
|
|
|
36
40
|
Ok, to create a seed file just run:
|
|
@@ -40,7 +44,7 @@ Ok, to create a seed file just run:
|
|
|
40
44
|
```
|
|
41
45
|
|
|
42
46
|
This will create a seedfile like 20150924085237_create_new_entries (filed under db/seeds).
|
|
43
|
-
Just put some `Model.create` Or other stuff there.
|
|
47
|
+
Just put some `Model.create` Or other data manipulation stuff there.
|
|
44
48
|
|
|
45
49
|
to run all your seed files just
|
|
46
50
|
|
|
@@ -49,7 +53,7 @@ to run all your seed files just
|
|
|
49
53
|
```
|
|
50
54
|
|
|
51
55
|
If there is some seed which throws an error, the task stopped and all seeds in
|
|
52
|
-
this seedfile will be canceled
|
|
56
|
+
this seedfile will be canceled. So fix your seed and run it again.
|
|
53
57
|
|
|
54
58
|
## The MIT License (MIT)
|
|
55
59
|
|
data/lib/tasks/tg.rake
CHANGED
|
@@ -1,24 +1,6 @@
|
|
|
1
1
|
namespace :tg do
|
|
2
2
|
desc "load the seeds filed under db/seeds"
|
|
3
3
|
task :seed => :environment do
|
|
4
|
-
|
|
5
|
-
Dir.open(seed_directory).sort.each do |seed_file|
|
|
6
|
-
if File.file? File.join(seed_directory,seed_file)
|
|
7
|
-
unless TheGardener::versioned? TheGardener::filename_version(seed_file)
|
|
8
|
-
puts "loading seed: #{seed_file}"
|
|
9
|
-
begin
|
|
10
|
-
ActiveRecord::Base.transaction do
|
|
11
|
-
load File.join(seed_directory,seed_file)
|
|
12
|
-
TheGardener::versionize TheGardener::filename_version(seed_file)
|
|
13
|
-
end
|
|
14
|
-
rescue => e
|
|
15
|
-
puts "#{'-'*30}\nError on: #{File.join(seed_directory,seed_file)}"
|
|
16
|
-
puts "message: #{e.message}\n#{'-'*30}"
|
|
17
|
-
puts "seeding stopped"
|
|
18
|
-
raise ActiveRecord::Rollback
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
4
|
+
TheGardener::load_seeds!
|
|
23
5
|
end
|
|
24
6
|
end
|
data/lib/the_gardener/version.rb
CHANGED
data/lib/the_gardener.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require "the_gardener/version"
|
|
2
|
+
require "the_gardener/seed_migration"
|
|
2
3
|
|
|
3
4
|
module TheGardener
|
|
4
5
|
if defined?(Rails)
|
|
@@ -10,18 +11,43 @@ module TheGardener
|
|
|
10
11
|
end
|
|
11
12
|
end
|
|
12
13
|
end
|
|
13
|
-
class SeedMigration < ActiveRecord::Base
|
|
14
|
-
end
|
|
15
14
|
|
|
16
15
|
def self.versioned? version
|
|
17
|
-
SeedMigration.
|
|
16
|
+
SeedMigration.version(version).any?
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.versionize! version
|
|
20
|
+
SeedMigration.generate(version)
|
|
18
21
|
end
|
|
19
22
|
|
|
20
|
-
def self.
|
|
21
|
-
|
|
23
|
+
def self.load_seeds!
|
|
24
|
+
Dir.open(seed_directory).sort.each do |seed_file|
|
|
25
|
+
next unless File.file? File.join(seed_directory,seed_file)
|
|
26
|
+
next if versioned?(filename_version(seed_file))
|
|
27
|
+
puts "loading seed: #{seed_file}"
|
|
28
|
+
begin
|
|
29
|
+
ActiveRecord::Base.transaction do
|
|
30
|
+
load File.join(seed_directory,seed_file)
|
|
31
|
+
versionize! filename_version(seed_file)
|
|
32
|
+
end
|
|
33
|
+
rescue => e
|
|
34
|
+
puts "#{'-'*30}\nError on: #{File.join(seed_directory,seed_file)}"
|
|
35
|
+
puts "message: #{e.message}\n#{'-'*30}"
|
|
36
|
+
puts "seeding stopped"
|
|
37
|
+
raise ActiveRecord::Rollback
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
22
41
|
end
|
|
23
42
|
|
|
24
43
|
def self.filename_version filename
|
|
25
44
|
filename.split('_').first
|
|
26
45
|
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
def self.seed_directory
|
|
50
|
+
File.join('db','seeds')
|
|
51
|
+
end
|
|
52
|
+
|
|
27
53
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: the_gardener
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Robert Starke
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-02-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -75,6 +75,7 @@ files:
|
|
|
75
75
|
- lib/generators/the_gardener/install/templates/create_the_gardener_seed_migrations.rb
|
|
76
76
|
- lib/tasks/tg.rake
|
|
77
77
|
- lib/the_gardener.rb
|
|
78
|
+
- lib/the_gardener/seed_migration.rb
|
|
78
79
|
- lib/the_gardener/version.rb
|
|
79
80
|
- the_gardener.gemspec
|
|
80
81
|
homepage: https://github.com/robst/the_gardener
|