seed_builder 1.0.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +1 -1
- data/README.md +7 -1
- data/lib/generators/templates/seed.rb.tt +1 -1
- data/lib/rails_config.rb +1 -1
- data/lib/seed_builder/config.rb +11 -6
- data/lib/seed_builder.rb +3 -1
- data/spec/generator_spec.rb +25 -3
- data/spec/seed_builder/config_spec.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85c0a52e743506b14e76f91dbf1b0e8a524d6edb934df69490303200b37513ee
|
4
|
+
data.tar.gz: 5a4f1a7083612b45fbc663c15b8ea48a1efbbaaef8a08149619a6fe4a804f499
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 893889ebedc9e81076d5234ab0bb46eba553704055aaa96c8e63aab6d70753eaf53425b04cf0a00f55149d865829c84a7d4a50d102ff02ed9389f1f6440597dc
|
7
|
+
data.tar.gz: e61fb9c54039470ce71bcdbdc9d460d30751b458cc44ce85eb4de359b4d020c19c05cc55ab90991e142c056d45a596a3f39d07297623fdb3f30fae992f9ba09c
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
# 1.2.0
|
2
|
+
|
3
|
+
- Automatically configure loader for Rails seeds
|
4
|
+
- Add `use_seed_loader` config option to control loader usage
|
5
|
+
|
6
|
+
# 1.1.0
|
7
|
+
|
8
|
+
- Fix `seeds_path` to be relative to Rails root
|
9
|
+
- Improve test coverage for generator
|
10
|
+
|
1
11
|
# 1.0.1
|
2
12
|
|
3
13
|
- Fix boolean config options to properly handle `nil` and `false` values
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -57,7 +57,7 @@ SeedBuilder.config.load_default_seeds = false
|
|
57
57
|
Absolute path will be resolved by using `Rails.root`.
|
58
58
|
|
59
59
|
```ruby
|
60
|
-
SeedBuilder.config.
|
60
|
+
SeedBuilder.config.seeds_path = "db/seeds"
|
61
61
|
```
|
62
62
|
|
63
63
|
### Turn off test script generation
|
@@ -66,6 +66,12 @@ SeedBuilder.config.seeds_relative_path = "db/seeds"
|
|
66
66
|
SeedBuilder.config.generate_spec = false
|
67
67
|
```
|
68
68
|
|
69
|
+
### Turn off loader usage for ActiveRecord
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
SeedBuilder.config.use_seed_loader = false
|
73
|
+
```
|
74
|
+
|
69
75
|
## Specification checklist
|
70
76
|
|
71
77
|
- [x] User can generate seed file under `db/seeds` directory with common format
|
@@ -6,7 +6,7 @@ end
|
|
6
6
|
<%- if SeedBuilder.config.generate_spec? %>
|
7
7
|
|
8
8
|
# TESTING:
|
9
|
-
# - bin/rspec <%= SeedBuilder.config.
|
9
|
+
# - bin/rspec <%= SeedBuilder.config.seeds_path %>/<%= migration_number %>_<%= migration_file_name %>.rb
|
10
10
|
if Rails.env.test? && Object.const_defined?(:RSpec)
|
11
11
|
require "rails_helper"
|
12
12
|
|
data/lib/rails_config.rb
CHANGED
data/lib/seed_builder/config.rb
CHANGED
@@ -7,16 +7,16 @@ module SeedBuilder
|
|
7
7
|
|
8
8
|
attr_writer :seeds_path
|
9
9
|
def seeds_path
|
10
|
-
@seeds_path ||=
|
10
|
+
@seeds_path ||= "db/seeds"
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
attr_writer :seeds_full_path
|
14
|
+
def seeds_full_path
|
15
|
+
@seeds_full_path ||= Rails.root.join(seeds_path)
|
15
16
|
end
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
@seeds_relative_path ||= "db/seeds"
|
18
|
+
def seeds_path_glob
|
19
|
+
"#{seeds_full_path}/*.rb"
|
20
20
|
end
|
21
21
|
|
22
22
|
attr_writer :load_default_seeds
|
@@ -33,5 +33,10 @@ module SeedBuilder
|
|
33
33
|
def generate_spec?
|
34
34
|
@generate_spec.nil? ? true : @generate_spec
|
35
35
|
end
|
36
|
+
|
37
|
+
attr_writer :use_seed_loader
|
38
|
+
def use_seed_loader?
|
39
|
+
@use_seed_loader.nil? ? true : @use_seed_loader
|
40
|
+
end
|
36
41
|
end
|
37
42
|
end
|
data/lib/seed_builder.rb
CHANGED
@@ -2,7 +2,7 @@ require "seed_builder/config"
|
|
2
2
|
require "seed_builder/loader"
|
3
3
|
|
4
4
|
module SeedBuilder
|
5
|
-
VERSION = "1.0
|
5
|
+
VERSION = "1.2.0".freeze
|
6
6
|
|
7
7
|
module_function
|
8
8
|
|
@@ -14,3 +14,5 @@ module SeedBuilder
|
|
14
14
|
yield config
|
15
15
|
end
|
16
16
|
end
|
17
|
+
|
18
|
+
require "rails_config"
|
data/spec/generator_spec.rb
CHANGED
@@ -7,12 +7,18 @@ describe SeedGenerator, type: :generator do
|
|
7
7
|
|
8
8
|
subject(:generator) { described_class.start params }
|
9
9
|
let(:destination_root) { File.expand_path("../../tmp/rspec", __FILE__) }
|
10
|
+
let(:seeds_path) { rails_root.join("db/seeds") }
|
10
11
|
|
11
|
-
let(:
|
12
|
+
let(:seed_name) { "create_users" }
|
13
|
+
let(:params) { [seed_name] }
|
14
|
+
|
15
|
+
let(:created_files) { Dir["#{seeds_path}/*_#{seed_name}.rb"] }
|
16
|
+
let(:file_contents) { File.readlines(created_files.first).map(&:strip).reject(&:blank?) }
|
12
17
|
|
13
18
|
before do
|
14
19
|
mkdir_p destination_root
|
15
20
|
|
21
|
+
allow(SeedBuilder.config).to receive(:seeds_path).and_return(seeds_path)
|
16
22
|
allow(Rails).to receive(:root).and_return(rails_root(destination_root))
|
17
23
|
end
|
18
24
|
|
@@ -22,7 +28,23 @@ describe SeedGenerator, type: :generator do
|
|
22
28
|
|
23
29
|
it "creates a migration file" do
|
24
30
|
generator
|
25
|
-
|
26
|
-
expect(
|
31
|
+
|
32
|
+
expect(created_files).not_to be_empty
|
33
|
+
expect(file_contents).to include("class CreateUsers")
|
34
|
+
expect(file_contents).not_to include("RSpec.describe CreateUsers")
|
35
|
+
end
|
36
|
+
|
37
|
+
context "when generate_spec is false" do
|
38
|
+
before do
|
39
|
+
allow(SeedBuilder.config).to receive(:generate_spec?).and_return(false)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "does not create a spec file" do
|
43
|
+
generator
|
44
|
+
|
45
|
+
expect(created_files).not_to be_empty
|
46
|
+
expect(file_contents).to include("class CreateUsers")
|
47
|
+
expect(file_contents).not_to include("RSpec.describe CreateUsers")
|
48
|
+
end
|
27
49
|
end
|
28
50
|
end
|
@@ -8,7 +8,7 @@ describe SeedBuilder::Config do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "has default seeds path" do
|
11
|
-
expect(config.
|
11
|
+
expect(config.seeds_path).to eq "db/seeds"
|
12
12
|
end
|
13
13
|
|
14
14
|
it "has default load_seeds" do
|
@@ -23,8 +23,8 @@ describe SeedBuilder::Config do
|
|
23
23
|
expect(config.generate_spec?).to be true
|
24
24
|
end
|
25
25
|
|
26
|
-
it "has default
|
27
|
-
expect(config.
|
26
|
+
it "has default seeds_full_path" do
|
27
|
+
expect(config.seeds_full_path).to eq Rails.root.join("db/seeds")
|
28
28
|
end
|
29
29
|
|
30
30
|
it "has default seeds_path_glob" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seed_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrei Makarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-12-
|
11
|
+
date: 2024-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|