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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0703abc9a90ae9676b1c1d79553345e09e148b0c5411740779b1157c4d6cbdd
4
- data.tar.gz: 1e0966ba4ea675cfdd6b6a28b8bae9457770957251272be352ed44e7db0d2b2b
3
+ metadata.gz: 19461c43288bc59e79dcad650e0f64ab6b135db335813fb29ae9ddacbed238d3
4
+ data.tar.gz: db98585d74a4f04644ab60ec254d469e12f7078e157ec505a0c4d8b909850aad
5
5
  SHA512:
6
- metadata.gz: 83d3b209222d0a44824c7795a2ca3b041177e7d01d12277d89a3c5b39fd194157da4764e9d6a185759348c74d8d0bc10b6a2ac3587fcb607cdc5711d87bd339a
7
- data.tar.gz: e11c9bf4bc617d3d588464eb0661811bfd198d8ccf9188421c95eff5437117f50ee542f3a894cff50bb99a3709d0211d8a822c708034588517bea6d4eddf2420
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
- `BetterSeeder.generate_structure(model_name: 'MyModel')` method. This functionality automatically creates a structure file template for a given model name. The generated file is saved in the appropriate subdirectory under `db/seed/structure` and includes placeholders for attribute generators, a validation schema, seed configuration, and uniqueness constraints.
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
- ### How to Use
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 will generate a file at `db/seed/structure/my_namespace/my_model_structure.rb`.
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
- ### Example Generated File
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
- The generated file will contain a template similar to the following:
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.
@@ -2,7 +2,7 @@
2
2
  require 'fileutils'
3
3
 
4
4
  module BetterSeeder
5
- module Generators
5
+ module Builders
6
6
  class Structure
7
7
  TEMPLATE = <<~RUBY
8
8
  module %{module_name}
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterSeeder
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.2"
5
5
  end
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::Generators::Structure.generate(model_name)
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.0
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/structure_generator/structure_generator.rb
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