planter 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/lib/planter.rb +9 -9
- data/lib/planter/config.rb +5 -5
- data/lib/planter/version.rb +48 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95ab85b49c50ea3b7ee077d4225083884558ae89c6fa5b2ea4e9410284f890eb
|
4
|
+
data.tar.gz: 2fd36b19ab5064d681323eb5f7e73a95cf710b7af8a587031c84b7175610cfbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa74216b4529bcb3d21ccd697574c175ad7dd641d477921108ff9949e1ab9a9537cf6f4847b6e2aaadeb91e8aecedc6afec243c72250d9b77cce1da0e4926580
|
7
|
+
data.tar.gz: 9b9cb5dd5a29b8a66c8cd9a6c49d5192c1395a5d935a98628928f65babcd709c2a6480ed356bf2f575e0710856a214025efdf91942acf3fe034a39a1369f302a
|
data/README.md
CHANGED
@@ -13,7 +13,7 @@ db:seed` task.
|
|
13
13
|
Features include:
|
14
14
|
|
15
15
|
- Seed tables from CSV files, an array of hashes, or custom methods.
|
16
|
-
-
|
16
|
+
- Call specific seeders with `rails db:seed SEEDERS=users,addresses`.
|
17
17
|
- Control the number of records being created.
|
18
18
|
- Seed associations.
|
19
19
|
|
@@ -42,14 +42,14 @@ $ gem install planter
|
|
42
42
|
Let's assume you'd like to seed your `users` table.
|
43
43
|
|
44
44
|
To get started, simply add the following to your `db/seeds.rb` file. Note that
|
45
|
-
the `config.
|
45
|
+
the `config.seeders` should be an array of the seeders to use. They should be in
|
46
46
|
the correct order to successfully seed the tables when considering associations.
|
47
47
|
|
48
48
|
```ruby
|
49
49
|
require 'planter'
|
50
50
|
|
51
51
|
Planter.configure do |config|
|
52
|
-
config.
|
52
|
+
config.seeders = %i[ users ]
|
53
53
|
end
|
54
54
|
|
55
55
|
Planter.seed
|
@@ -179,7 +179,7 @@ require 'planter'
|
|
179
179
|
Planter.configure do |config|
|
180
180
|
config.seeders_directory = 'db/seeder_classes'
|
181
181
|
config.csv_files_directory = 'db/csvs'
|
182
|
-
config.
|
182
|
+
config.seeders = %i[
|
183
183
|
users
|
184
184
|
addresses
|
185
185
|
]
|
data/lib/planter.rb
CHANGED
@@ -93,7 +93,7 @@ module Planter
|
|
93
93
|
#
|
94
94
|
# @example
|
95
95
|
# Planter.configure do |app_seeder|
|
96
|
-
# app_seeder.
|
96
|
+
# app_seeder.seeders = %i[users]
|
97
97
|
# app_seeder.seeders_directory = 'db/seeds'
|
98
98
|
# app_seeder.csv_files_directory = 'db/seed_files'
|
99
99
|
# end
|
@@ -102,18 +102,18 @@ module Planter
|
|
102
102
|
end
|
103
103
|
|
104
104
|
##
|
105
|
-
# This is the method to call from your +db/seeds.rb+. It
|
106
|
-
# listed in +Planter.config.
|
107
|
-
# runtime, you can set the +
|
108
|
-
# comma-separated list of
|
105
|
+
# This is the method to call from your +db/seeds.rb+. It callse the seeders
|
106
|
+
# listed in +Planter.config.seeders+. To call specific seeders at
|
107
|
+
# runtime, you can set the +SEEDERS+ environmental variable to a
|
108
|
+
# comma-separated list of seeders.
|
109
109
|
#
|
110
110
|
# @example
|
111
|
-
# rails db:seed
|
111
|
+
# rails db:seed SEEDERS=users,accounts
|
112
112
|
def self.seed
|
113
|
-
|
114
|
-
raise RuntimeError, 'No
|
113
|
+
seeders = ENV['SEEDERS']&.split(',') || config.seeders&.map(&:to_s)
|
114
|
+
raise RuntimeError, 'No seeders specified; nothing to do' unless seeders&.any?
|
115
115
|
|
116
|
-
|
116
|
+
seeders.each do |table|
|
117
117
|
require Rails.root.join(config.seeders_directory, "#{table}_seeder.rb").to_s
|
118
118
|
puts "Seeding #{table}" unless config.quiet
|
119
119
|
"#{table.camelize}Seeder".constantize.new.seed
|
data/lib/planter/config.rb
CHANGED
@@ -5,7 +5,7 @@ module Planter
|
|
5
5
|
# Configure the application seeder.
|
6
6
|
#
|
7
7
|
# @example
|
8
|
-
# Planter.configure { |seeder| seeder.
|
8
|
+
# Planter.configure { |seeder| seeder.seeders = %i[users] }
|
9
9
|
class Config
|
10
10
|
##
|
11
11
|
# Tell the application where the seeder classes are kept. Must be a path
|
@@ -26,13 +26,13 @@ module Planter
|
|
26
26
|
attr_accessor :csv_files_directory
|
27
27
|
|
28
28
|
##
|
29
|
-
# Tell the application what
|
30
|
-
# order, and can be strings or symbols.
|
29
|
+
# Tell the application what seeders exist. Elements should be in the correct
|
30
|
+
# order to seed the tables successfully, and can be strings or symbols.
|
31
31
|
#
|
32
|
-
# @param [Array]
|
32
|
+
# @param [Array] seeders
|
33
33
|
#
|
34
34
|
# @return [Array]
|
35
|
-
attr_accessor :
|
35
|
+
attr_accessor :seeders
|
36
36
|
|
37
37
|
##
|
38
38
|
# When true, don't print output when seeding.
|
data/lib/planter/version.rb
CHANGED
@@ -1,7 +1,54 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Planter
|
4
|
+
##
|
5
|
+
# Module that contains all gem version information. Follows semantic
|
6
|
+
# versioning. Read: https://semver.org/
|
7
|
+
module Version
|
8
|
+
##
|
9
|
+
# Major version.
|
10
|
+
#
|
11
|
+
# @return [Integer]
|
12
|
+
MAJOR = 0
|
13
|
+
|
14
|
+
##
|
15
|
+
# Minor version.
|
16
|
+
#
|
17
|
+
# @return [Integer]
|
18
|
+
MINOR = 0
|
19
|
+
|
20
|
+
##
|
21
|
+
# Patch version.
|
22
|
+
#
|
23
|
+
# @return [Integer]
|
24
|
+
PATCH = 6
|
25
|
+
|
26
|
+
##
|
27
|
+
# Version as +[MAJOR, MINOR, PATCH]+
|
28
|
+
#
|
29
|
+
# @return [Array]
|
30
|
+
def self.to_a
|
31
|
+
[MAJOR, MINOR, PATCH]
|
32
|
+
end
|
33
|
+
|
34
|
+
##
|
35
|
+
# Version as +MAJOR.MINOR.PATCH+
|
36
|
+
#
|
37
|
+
# @return [String]
|
38
|
+
def self.to_s
|
39
|
+
to_a.join('.')
|
40
|
+
end
|
41
|
+
|
42
|
+
##
|
43
|
+
# Version as +{major: MAJOR, minor: MINOR, patch: PATCH}+
|
44
|
+
#
|
45
|
+
# @return [Hash]
|
46
|
+
def self.to_h
|
47
|
+
Hash[%i[major minor patch].zip(to_a)]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
4
51
|
##
|
5
52
|
# Gem version, semantic.
|
6
|
-
VERSION =
|
53
|
+
VERSION = Version.to_s.freeze
|
7
54
|
end
|