seed_builder 1.1.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9c742827b3295c564267030107d2f26638923eedd268ee11b55dbbf845e245c
4
- data.tar.gz: 0ee2ad8cdb1f2ccfcd1a5a912981d93bb7f2e742d9a33f78d358e5de2ff2c02a
3
+ metadata.gz: a607759220852d1d00fcfe17bce2c9d419446a3bfa066c446e85121a11e70f17
4
+ data.tar.gz: d02f1a778d953c5a48a6862a64b9bf4dd2dec73118c066865aec91399ff6b2e6
5
5
  SHA512:
6
- metadata.gz: bbe89a5cc1a60c7eaf07399e07d12c18e5ea4caca20aceebd25f5e09967bd92ad23bfa75d2ae5582d7a6bb8a5fbf1581c7517556d9d603bbea4ab3983bfac175
7
- data.tar.gz: 32f13630724be1890a49d30d005ff673363dc61971b41e609986034890848e72c5eaa55385f1e9e25e7d97decd09aae7ac0813a37bad84989470f5d206798890
6
+ metadata.gz: 9c731f5ed5c7644f27a475122aedc0f48c32d17c27f3034473fc6b6a127808b25c5d016275ccdf4d36743414d7928706fad046e9d1704a6dc08de5a2dd8475c0
7
+ data.tar.gz: 90f6e27dd1bd7022f940261181a1308fe3ff8a2efd42b932914dd44419d438f2abafaf33650a68cd9b6ab8386235041add92ecc1126b6b74d39294139304adf3
data/CHANGELOG.md CHANGED
@@ -1,12 +1,26 @@
1
- # 1.1.0
1
+ # CHANGELOG
2
+
3
+ ## 1.2.1
4
+
5
+ - Fix seed files to be loaded as `.rb` files
6
+ - Add `default_seeds_full_path` config option to control default seeds full path
7
+ - Fix files loading using absolute paths
8
+ - Improve test coverage
9
+
10
+ ## 1.2.0
11
+
12
+ - Automatically configure loader for Rails seeds
13
+ - Add `use_seed_loader` config option to control loader usage
14
+
15
+ ## 1.1.0
2
16
 
3
17
  - Fix `seeds_path` to be relative to Rails root
4
18
  - Improve test coverage for generator
5
19
 
6
- # 1.0.1
20
+ ## 1.0.1
7
21
 
8
22
  - Fix boolean config options to properly handle `nil` and `false` values
9
23
 
10
- # 1.0.0
24
+ ## 1.0.0
11
25
 
12
26
  - Initial version
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seed_builder (1.1.0)
4
+ seed_builder (1.2.1)
5
5
  activerecord (>= 6, < 8.1)
6
6
  rails (>= 6, < 8.1)
7
7
 
data/README.md CHANGED
@@ -66,6 +66,12 @@ SeedBuilder.config.seeds_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
data/lib/rails_config.rb CHANGED
@@ -1,3 +1,3 @@
1
- if Object.const_defined?(:ActiveRecord)
1
+ if Object.const_defined?(:ActiveRecord) && SeedBuilder.config.use_seed_loader?
2
2
  ActiveRecord::Tasks::DatabaseTasks.seed_loader = SeedBuilder::Loader.new
3
3
  end
@@ -2,7 +2,12 @@ module SeedBuilder
2
2
  class Config
3
3
  attr_writer :default_seeds_path
4
4
  def default_seeds_path
5
- @default_seeds_path ||= Rails.root.join("db/seeds.rb")
5
+ @default_seeds_path ||= "db/seeds.rb"
6
+ end
7
+
8
+ attr_writer :default_seeds_full_path
9
+ def default_seeds_full_path
10
+ @default_seeds_full_path ||= Rails.root.join(default_seeds_path)
6
11
  end
7
12
 
8
13
  attr_writer :seeds_path
@@ -33,5 +38,10 @@ module SeedBuilder
33
38
  def generate_spec?
34
39
  @generate_spec.nil? ? true : @generate_spec
35
40
  end
41
+
42
+ attr_writer :use_seed_loader
43
+ def use_seed_loader?
44
+ @use_seed_loader.nil? ? true : @use_seed_loader
45
+ end
36
46
  end
37
47
  end
@@ -9,17 +9,20 @@ module SeedBuilder
9
9
  ActiveRecord::Base.connection.schema_cache.clear!
10
10
  ActiveRecord::Base.descendants.each(&:reset_column_information)
11
11
 
12
- default_seeds_rb = SeedBuilder.config.default_seeds_path
12
+ default_seeds_rb = SeedBuilder.config.default_seeds_full_path
13
13
  if File.exist?(default_seeds_rb) && SeedBuilder.config.load_default_seeds?
14
+ started_at = Time.current
15
+ puts "== #{SeedBuilder.config.default_seeds_path}: seeding"
14
16
  require default_seeds_rb
17
+ puts "== #{SeedBuilder.config.default_seeds_path}: seeded (#{(Time.current - started_at).round(4)}s)"
15
18
  end
16
19
 
17
- base_path = SeedBuilder.config.seeds_path
20
+ base_path = SeedBuilder.config.seeds_full_path
18
21
  if File.exist?(base_path) && SeedBuilder.config.load_seeds?
19
22
  Dir[SeedBuilder.config.seeds_path_glob]
20
23
  .map { |f| File.basename(f, ".*") }
21
24
  .each do |seed_path|
22
- require "#{base_path}/#{seed_path}"
25
+ require "#{base_path}/#{seed_path}.rb"
23
26
  timestamp, klass_name = seed_path.scan(/^([0-9]+)_(.+)$/).first
24
27
  next if klass_name.blank?
25
28
 
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.1.0".freeze
5
+ VERSION = "1.2.1".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"
@@ -19,8 +19,8 @@ describe SeedBuilder::Loader do
19
19
  allow(Rails).to receive(:logger=)
20
20
 
21
21
  SeedBuilder.configure do |config|
22
- config.seeds_path = File.expand_path("../../fixtures/seeds", __FILE__)
23
- config.default_seeds_path = File.expand_path("../../fixtures/seeds.rb", __FILE__)
22
+ config.seeds_full_path = File.expand_path("../../fixtures/seeds", __FILE__)
23
+ config.default_seeds_full_path = File.expand_path("../../fixtures/seeds.rb", __FILE__)
24
24
  config.load_default_seeds = load_default_seeds
25
25
  config.load_seeds = load_seeds
26
26
  end
@@ -29,6 +29,7 @@ describe SeedBuilder::Loader do
29
29
 
30
30
  it "loads the seeds" do
31
31
  expect(SeedUser.count).to eq 1
32
+ expect(SeedBuilderUser.count).to eq 1
32
33
  end
33
34
  end
34
35
  end
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.1.0
4
+ version: 1.2.1
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-08 00:00:00.000000000 Z
11
+ date: 2024-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails