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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d1b8fa5e8ded64a34d6713d7ac92869612d60cc4
4
- data.tar.gz: 9469a615258545d7c3917db212e10b566e50805e
3
+ metadata.gz: ea13ce0a8fd8a5e1ee7a5a1a4ce9113dce8158ac
4
+ data.tar.gz: 399dd09d05afedd65b4bb56f493897b493532c1f
5
5
  SHA512:
6
- metadata.gz: 3f13b1a8171085a7659ade7c4a18cb559a78544ea0c38dfc5914ae2e48731a18f543b316471b27a7b78f4b44c5fb5e739852ccadbb61bce6689a81e370fbd061
7
- data.tar.gz: 9ac3e668db3776cec26d0f529997c1f728e9576cac59306826b3179c258bcca3f4f017abcdf366677009bd52ecc673db3cc5caf7fa335d8132e275d25ab5d7aa
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 seed
7
- allready be done. it's the same procedure like migrations.
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.1.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
- seed_directory = File.join('db','seeds')
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
@@ -0,0 +1,9 @@
1
+ module TheGardener
2
+ class SeedMigration < ActiveRecord::Base
3
+ scope :version, ->(version) { where('version=?', version) }
4
+
5
+ def self.generate version
6
+ create(version: version)
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module TheGardener
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
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.where('version=?', version).any?
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.versionize version
21
- SeedMigration.create(version: version)
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.1.2
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-01-10 00:00:00.000000000 Z
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