better_seeder 0.2.0 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +11 -10
- data/lib/better_seeder/{generators → builders}/structure.rb +1 -1
- data/lib/better_seeder/version.rb +1 -1
- data/lib/better_seeder.rb +2 -1
- data/lib/generators/better_seeder/structure/structure_generator.rb +17 -0
- metadata +3 -3
- data/lib/generators/better_seeder/structure_generator/structure_generator.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19461c43288bc59e79dcad650e0f64ab6b135db335813fb29ae9ddacbed238d3
|
4
|
+
data.tar.gz: db98585d74a4f04644ab60ec254d469e12f7078e157ec505a0c4d8b909850aad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b0dc886f98b74bdd3e72ff07b52c72786b74f8c21937204c6e04a5dfcbb94c883b0d27bc1a83c18ea00c0adf99d766fde94a17cb6390c1369b5773e3b903666
|
7
|
+
data.tar.gz: b4dd522996c4ac5a6113f82ef99010e104c988afa815c8476c6040dea4c65f738646d0c4d617600a22344c8c2031c57825903d7d2c897b1ccfd95c226a2fd9a5
|
data/README.md
CHANGED
@@ -201,21 +201,20 @@ This command processes each model by:
|
|
201
201
|
|
202
202
|
## Structure Generator
|
203
203
|
|
204
|
-
|
204
|
+
BetterSeeder now provides a custom Rails generator to scaffold a structure file template for your models. You can generate a structure file automatically using the following command:
|
205
205
|
|
206
|
-
|
207
|
-
|
208
|
-
Simply call the method with your model name. For example:
|
209
|
-
|
210
|
-
```ruby
|
211
|
-
BetterSeeder.generate_structure(model_name: 'MyNamespace::MyModel')
|
206
|
+
```bash
|
207
|
+
rails generate better_seeder:structure MyNamespace::MyModel
|
212
208
|
```
|
213
209
|
|
214
|
-
This command
|
210
|
+
This command creates a structure file template in the appropriate subdirectory under `db/seed/structure`. The generated file includes placeholders for:
|
215
211
|
|
216
|
-
|
212
|
+
- Attribute generators (via the `structure` method)
|
213
|
+
- Validation schema (via the `seed_schema` method)
|
214
|
+
- Seeding configuration (via the `seed_config` method)
|
215
|
+
- Uniqueness constraints (via the `unique_keys` method)
|
217
216
|
|
218
|
-
|
217
|
+
### Example Generated Template
|
219
218
|
|
220
219
|
```ruby
|
221
220
|
module MyNamespace
|
@@ -254,6 +253,8 @@ module MyNamespace
|
|
254
253
|
end
|
255
254
|
```
|
256
255
|
|
256
|
+
This generator streamlines the setup of new structure files, ensuring consistency and saving time when defining your seed data configuration.
|
257
|
+
|
257
258
|
### Benefits
|
258
259
|
|
259
260
|
- **Automated Scaffolding:** Quickly generate a complete structure file template for any model.
|
data/lib/better_seeder.rb
CHANGED
@@ -6,6 +6,7 @@ require_relative "better_seeder/exporters/base"
|
|
6
6
|
require_relative "better_seeder/exporters/json"
|
7
7
|
require_relative "better_seeder/exporters/csv"
|
8
8
|
require_relative "better_seeder/exporters/sql"
|
9
|
+
require_relative "better_seeder/builders/structure"
|
9
10
|
|
10
11
|
module BetterSeeder
|
11
12
|
class Configuration
|
@@ -110,7 +111,7 @@ module BetterSeeder
|
|
110
111
|
end
|
111
112
|
|
112
113
|
def self.generate_structure(model_name: )
|
113
|
-
BetterSeeder::
|
114
|
+
BetterSeeder::Builders::Structure.generate(model_name)
|
114
115
|
end
|
115
116
|
|
116
117
|
private
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# lib/generators/better_seeder/structure/structure_generator.rb
|
2
|
+
require "rails/generators"
|
3
|
+
|
4
|
+
module BetterSeeder
|
5
|
+
module Structure
|
6
|
+
class StructureGenerator < Rails::Generators::NamedBase
|
7
|
+
# Optionally, if you have a template directory, you can set it here:
|
8
|
+
# source_root File.expand_path("templates", __dir__)
|
9
|
+
|
10
|
+
def create_structure_file
|
11
|
+
say_status("info", "Generating structure file for #{name}", :green)
|
12
|
+
file_path = BetterSeeder.generate_structure(model_name: name)
|
13
|
+
say_status("info", "Structure file created at #{file_path}", :green)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: better_seeder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alessio_bussolari
|
@@ -133,17 +133,17 @@ files:
|
|
133
133
|
- LICENSE.txt
|
134
134
|
- README.md
|
135
135
|
- lib/better_seeder.rb
|
136
|
+
- lib/better_seeder/builders/structure.rb
|
136
137
|
- lib/better_seeder/configuration.rb
|
137
138
|
- lib/better_seeder/exporters/base.rb
|
138
139
|
- lib/better_seeder/exporters/csv.rb
|
139
140
|
- lib/better_seeder/exporters/json.rb
|
140
141
|
- lib/better_seeder/exporters/sql.rb
|
141
142
|
- lib/better_seeder/farms/farmer.rb
|
142
|
-
- lib/better_seeder/generators/structure.rb
|
143
143
|
- lib/better_seeder/structure/utils.rb
|
144
144
|
- lib/better_seeder/utils.rb
|
145
145
|
- lib/better_seeder/version.rb
|
146
|
-
- lib/generators/better_seeder/
|
146
|
+
- lib/generators/better_seeder/structure/structure_generator.rb
|
147
147
|
homepage: https://github.com/alessiobussolari/better_seeder
|
148
148
|
licenses:
|
149
149
|
- MIT
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# lib/generators/better_seeder/structure_generator/structure_generator.rb
|
2
|
-
require 'rails/generators'
|
3
|
-
require 'better_seeder'
|
4
|
-
|
5
|
-
module BetterSeeder
|
6
|
-
module Generators
|
7
|
-
class StructureGenerator < Rails::Generators::NamedBase
|
8
|
-
# No template file is needed as our method generates the file content.
|
9
|
-
# Instead, we call the BetterSeeder.generate_structure method.
|
10
|
-
def create_structure_file
|
11
|
-
say_status("info", "Generating structure file for #{name}", :green)
|
12
|
-
# Call the generator method from your gem.
|
13
|
-
# It expects a keyword argument :model_name.
|
14
|
-
file_path = BetterSeeder.generate_structure(model_name: name)
|
15
|
-
say_status("info", "Structure file created at #{file_path}", :green)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|