dbreap 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f48e84aa481947c4420a1ccf50711da91291de547ae0b00307ec63411472b7a8
4
+ data.tar.gz: 4ec7e1a94682c8c7ff9a331eb74cbf8b6a460ebf765d34b3590b58b78075920b
5
+ SHA512:
6
+ metadata.gz: dbf4fccb4cfc85c6463e266594ce4f4e764a2e8acee74eb768ce6bb53ae40a8e7a4777f94884c3c41b1dd4050623cbc005a484a36f2af6bac7738f8121d0b8b9
7
+ data.tar.gz: 01d19e7d1d411dd4d630583f4a91ada900a90c84fdf616b956f5d34dfb574e3a83a2305191d9e0e90efa392e0f42fde29aab7597e16f6a0d02f18e4f8c645b76
@@ -0,0 +1,13 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "bundler"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ groups:
8
+ minor-and-patch-updates:
9
+ patterns:
10
+ - "*"
11
+ update-types:
12
+ - "minor"
13
+ - "patch"
@@ -0,0 +1,51 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+
8
+ jobs:
9
+ test:
10
+ runs-on: ubuntu-latest
11
+
12
+ strategy:
13
+ matrix:
14
+ ruby: ["3.3", "3.4"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: ${{ matrix.ruby }}
22
+ bundler-cache: true
23
+
24
+ - run: bundle exec rspec
25
+
26
+ audit:
27
+ runs-on: ubuntu-latest
28
+
29
+ steps:
30
+ - uses: actions/checkout@v4
31
+
32
+ - uses: ruby/setup-ruby@v1
33
+ with:
34
+ ruby-version: "3.4"
35
+ bundler-cache: true
36
+
37
+ - run: gem install bundler-audit
38
+ - run: bundle-audit check --update
39
+
40
+ lint:
41
+ runs-on: ubuntu-latest
42
+
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+
46
+ - uses: ruby/setup-ruby@v1
47
+ with:
48
+ ruby-version: "3.4"
49
+ bundler-cache: true
50
+
51
+ - run: bundle exec rubocop
@@ -0,0 +1,28 @@
1
+ name: Dependabot Auto-Merge
2
+ on: pull_request
3
+
4
+ permissions:
5
+ contents: write
6
+ pull-requests: write
7
+
8
+ jobs:
9
+ dependabot:
10
+ runs-on: ubuntu-latest
11
+ if: github.actor == 'dependabot[bot]'
12
+ steps:
13
+ - name: Dependabot metadata
14
+ id: metadata
15
+ uses: dependabot/fetch-metadata@v2
16
+ with:
17
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
18
+
19
+ - name: Auto-approve and enable auto-merge (patch and minor only)
20
+ if: |
21
+ steps.metadata.outputs.update-type == 'version-update:semver-patch' ||
22
+ steps.metadata.outputs.update-type == 'version-update:semver-minor'
23
+ run: |
24
+ gh pr review --approve "$PR_URL"
25
+ gh pr merge --auto --squash "$PR_URL"
26
+ env:
27
+ PR_URL: ${{ github.event.pull_request.html_url }}
28
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,18 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags: ['v*']
6
+
7
+ jobs:
8
+ release:
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ id-token: write
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ - uses: ruby/setup-ruby@v1
15
+ with:
16
+ ruby-version: "3.4"
17
+ bundler-cache: true
18
+ - uses: rubygems/release-gem@v1
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ Gemfile.lock
2
+ tmp/
3
+ spec/dummy/config/master.key
4
+ spec/dummy/config/credentials.yml.enc
5
+ spec/dummy/config/ci.rb
6
+ spec/dummy/config/puma.rb
7
+ spec/dummy/config/environments/development.rb
8
+ spec/dummy/config/environments/production.rb
9
+ spec/dummy/Rakefile
10
+ spec/dummy/db/seeds.rb
11
+ spec/dummy/log/
12
+ spec/log/
13
+ spec/dummy/tmp/
14
+ spec/dummy/storage/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --require spec_helper
2
+ --format documentation
data/.rubocop.yml ADDED
@@ -0,0 +1,36 @@
1
+ plugins:
2
+ - rubocop-rspec
3
+
4
+ AllCops:
5
+ TargetRubyVersion: 3.3
6
+ NewCops: enable
7
+ SuggestExtensions: false
8
+ Exclude:
9
+ - "spec/dummy/**/*"
10
+ - "bin/**/*"
11
+ - "tmp/**/*"
12
+ - "vendor/**/*"
13
+
14
+ Style/Documentation:
15
+ Enabled: false
16
+
17
+ Gemspec/DevelopmentDependencies:
18
+ Enabled: false
19
+
20
+ Metrics/BlockLength:
21
+ Exclude:
22
+ - "spec/**/*"
23
+
24
+ RSpec/SpecFilePathFormat:
25
+ Enabled: false
26
+
27
+ RSpec/DescribeClass:
28
+ Exclude:
29
+ - "spec/integration/**/*"
30
+ - "spec/unit/reap_table_spec.rb"
31
+
32
+ RSpec/MultipleExpectations:
33
+ Enabled: false
34
+
35
+ RSpec/ExampleLength:
36
+ Enabled: false
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ dbreap
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.4.8
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,77 @@
1
+ # dbreap
2
+
3
+ [![CI](https://github.com/brentgreeff/dbreap/actions/workflows/ci.yml/badge.svg)](https://github.com/brentgreeff/dbreap/actions/workflows/ci.yml)
4
+
5
+ Namespaced seed data - saved in YML. Much easier to see what's going on with your seed data than a bunch of ruby code that no-one maintains.
6
+
7
+ Share essential database records between developers, staging, and demo environments.
8
+
9
+ ## Installation
10
+
11
+ ```ruby
12
+ # Gemfile
13
+ gem "dbreap"
14
+ ```
15
+
16
+ ```bash
17
+ bundle install
18
+ rails generate dbreap:install
19
+ ```
20
+
21
+ This creates `db/fixtures/` and installs the seed loader into `db/seeds.rb` (appends if the file already exists).
22
+
23
+ ## Workflow
24
+
25
+ ### 1. Create your data
26
+
27
+ Working on a new feature - Does having some example data help other developers on dev work with and test your new code in the UI?
28
+
29
+ Create your data in the UI or console - and commit the seed YML alongside the feature code.
30
+
31
+ ### 2. Reap to YAML
32
+
33
+ ```bash
34
+ # Reap specific tables
35
+ rake db:reap FIXTURES=products,categories
36
+
37
+ # Reap everything
38
+ rake db:reap FIXTURES=ALL
39
+ ```
40
+
41
+ Fixtures are written to `db/fixtures/<env>/`. Commit these files.
42
+
43
+ ### 3. Seed on another machine
44
+
45
+ ```bash
46
+ # Clear existing data, then seed from fixtures
47
+ rake db:empty
48
+ rake db:seed
49
+ ```
50
+
51
+ `db:seed` uses Rails' standard `db/seeds.rb`, configured by the install generator.
52
+
53
+ ## Rake tasks
54
+
55
+ | Task | Description |
56
+ |------|-------------|
57
+ | `rake db:reap FIXTURES=ALL` | Reap all tables to YAML |
58
+ | `rake db:reap FIXTURES=t1,t2` | Reap specific tables |
59
+ | `rake db:empty` | Delete all rows from all tables (preserves schema) |
60
+
61
+ ## Development
62
+
63
+ ```bash
64
+ bundle install
65
+ bundle exec lefthook install # installs pre-commit hooks
66
+ bundle exec rspec
67
+ ```
68
+
69
+ ## Notes
70
+
71
+ - Fixture files are ordered by `id` — reap → seed → reap produces identical output
72
+ - JSON columns are preserved as structured data
73
+ - String columns containing numeric values (e.g. `"123"`) are not cast to integers
74
+ - `schema_migrations` and `ar_internal_metadata` are always skipped
75
+ - `db:empty` uses `DELETE` (not `TRUNCATE`) — schema and sequences are preserved, no DDL lock
76
+ - Run `db:empty` before `db:seed` to avoid duplicate records on repeated seeds
77
+ - Fixture files are namespaced by environment (`db/fixtures/<env>/`) — development, staging, and demo data can coexist
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
data/bin/rubocop ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rubocop' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12
+
13
+ bundle_binstub = File.expand_path("bundle", __dir__)
14
+
15
+ if File.file?(bundle_binstub)
16
+ if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
17
+ load(bundle_binstub)
18
+ else
19
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
20
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
21
+ end
22
+ end
23
+
24
+ require "rubygems"
25
+ require "bundler/setup"
26
+
27
+ load Gem.bin_path("rubocop", "rubocop")
data/db/seeds.rb ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_record/fixtures'
4
+ FIXTURES_PATHS = ['db/fixtures', "db/fixtures/#{Rails.env}"].freeze
5
+
6
+ FIXTURES_PATHS.each do |path|
7
+ Dir.glob("#{Rails.root}/#{path}/*.yml").each do |file|
8
+ puts File.basename(file, '.*')
9
+ ActiveRecord::FixtureSet.create_fixtures(path, File.basename(file, '.*'))
10
+ end
11
+ end
data/dbreap.gemspec ADDED
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/dbreap/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'dbreap'
7
+ spec.version = Dbreap::VERSION
8
+ spec.authors = ['Brent Greeff']
9
+ spec.email = ['brent@example.com']
10
+ spec.summary = 'Reap database records to YAML fixtures and seed them back.'
11
+ spec.homepage = 'https://github.com/brentgreeff/dbreap'
12
+ spec.license = 'MIT'
13
+
14
+ spec.required_ruby_version = '>= 3.3'
15
+
16
+ spec.metadata = {
17
+ 'source_code_uri' => 'https://github.com/brentgreeff/dbreap',
18
+ 'rubygems_mfa_required' => 'true'
19
+ }
20
+
21
+ spec.files = Dir.chdir(__dir__) do
22
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:spec|test)/}) }
23
+ end
24
+
25
+ spec.add_dependency 'activerecord', '>= 7.0'
26
+ spec.add_dependency 'railties', '>= 7.0'
27
+
28
+ spec.add_development_dependency 'bundler-audit'
29
+ spec.add_development_dependency 'factory_bot_rails'
30
+ spec.add_development_dependency 'lefthook'
31
+ spec.add_development_dependency 'rspec-rails'
32
+ spec.add_development_dependency 'rubocop'
33
+ spec.add_development_dependency 'rubocop-rspec'
34
+ spec.add_development_dependency 'sqlite3'
35
+ end
data/lefthook.yml ADDED
@@ -0,0 +1,9 @@
1
+ pre-commit:
2
+ commands:
3
+ rubocop:
4
+ tags: style
5
+ glob: "*.rb"
6
+ run: bundle exec rubocop --force-exclusion {staged_files}
7
+ audit:
8
+ tags: security
9
+ run: bundle exec bundler-audit check --update
data/lib/db/empty.rake ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :db do
4
+ desc 'Deletes everything in the database.'
5
+ task empty: :environment do
6
+ Dbreap::Empty.call
7
+ end
8
+ end
data/lib/db/reap.rake ADDED
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :db do
4
+ desc 'Create YAML seed fixtures from data in an existing database. Set FIXTURES=ALL or FIXTURES=table1,table2.'
5
+ task reap: :environment do
6
+ if ENV['FIXTURES'].nil?
7
+ puts 'Please specify FIXTURES: ALL or a comma-separated list of table names'
8
+ exit
9
+ end
10
+
11
+ tables = ENV['FIXTURES'] == 'ALL' ? ActiveRecord::Base.connection.tables : ENV['FIXTURES'].split(',').map(&:strip)
12
+ tables -= Dbreap::SKIP_TABLES
13
+
14
+ FileUtils.mkdir_p("#{Rails.root}/db/fixtures/#{Rails.env}")
15
+
16
+ tables.each(&Dbreap::Reap.method(:write_fixture))
17
+ end
18
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dbreap
4
+ module Empty
5
+ def self.call(connection = ActiveRecord::Base.connection)
6
+ tables = connection.tables - Dbreap::SKIP_TABLES
7
+ tables.each { |t| connection.delete("DELETE FROM #{connection.quote_table_name(t)}") }
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dbreap
4
+ class Railtie < Rails::Railtie
5
+ rake_tasks do
6
+ load 'db/reap.rake'
7
+ load 'db/empty.rake'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dbreap
4
+ module Reap
5
+ def self.build_yml(table_name, connection: ActiveRecord::Base.connection)
6
+ raw = fetch_rows(table_name, connection:)
7
+
8
+ rows = raw.each_with_index.with_object({}) do |(row, i), accum|
9
+ key = "#{table_name}_#{format('%03d', i + 1)}"
10
+ accum[key] = row.transform_values { |v| cast_value(v) }
11
+ end
12
+ Psych.dump(rows, line_width: -1)
13
+ end
14
+
15
+ def self.fetch_rows(table_name, connection: ActiveRecord::Base.connection)
16
+ quoted = connection.quote_table_name(table_name)
17
+ connection.select_all("SELECT * FROM #{quoted} ORDER BY id")
18
+ rescue ActiveRecord::StatementInvalid
19
+ connection.select_all("SELECT * FROM #{quoted} ORDER BY 1")
20
+ end
21
+
22
+ def self.cast_value(value)
23
+ return value unless value.is_a?(String) && value.match?(/\A[\[{]/)
24
+
25
+ JSON.parse(value)
26
+ rescue JSON::ParserError
27
+ value
28
+ end
29
+
30
+ def self.write_fixture(table_name, root: Rails.root, env: Rails.env)
31
+ path = "#{root}/db/fixtures/#{env}/#{table_name}.yml"
32
+ yaml = build_yml(table_name)
33
+ File.write(path, yaml)
34
+ puts "Reaped #{table_name}"
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dbreap
4
+ VERSION = '0.1.0'
5
+ end
data/lib/dbreap.rb ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'dbreap/version'
4
+
5
+ module Dbreap
6
+ SKIP_TABLES = %w[schema_migrations ar_internal_metadata].freeze
7
+ end
8
+
9
+ require_relative 'dbreap/empty'
10
+ require_relative 'dbreap/reap'
11
+ require_relative 'dbreap/railtie' if defined?(Rails::Railtie)
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dbreap
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('templates', __dir__)
7
+
8
+ desc 'Sets up db/seeds.rb and db/fixtures/ for dbreap.'
9
+
10
+ def create_fixtures_directory
11
+ empty_directory 'db/fixtures'
12
+ end
13
+
14
+ def install_seeds
15
+ seeds_path = File.join(destination_root, 'db/seeds.rb')
16
+ if File.exist?(seeds_path) && !File.read(seeds_path).strip.empty?
17
+ append_to_file 'db/seeds.rb', "\n#{File.read(File.join(self.class.source_root, 'seeds.rb'))}"
18
+ say 'Appended dbreap seed loader to db/seeds.rb', :green
19
+ else
20
+ copy_file 'seeds.rb', 'db/seeds.rb'
21
+ say 'Created db/seeds.rb', :green
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_record/fixtures'
4
+
5
+ FIXTURES_PATHS = ['db/fixtures', "db/fixtures/#{Rails.env}"].freeze
6
+
7
+ FIXTURES_PATHS.each do |path|
8
+ Dir.glob("#{Rails.root}/#{path}/*.yml").each do |file|
9
+ ActiveRecord::FixtureSet.create_fixtures(path, File.basename(file, '.*'))
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,192 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dbreap
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Brent Greeff
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: activerecord
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '7.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: railties
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '7.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: bundler-audit
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: factory_bot_rails
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: lefthook
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rspec-rails
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: rubocop
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rubocop-rspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: sqlite3
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ email:
139
+ - brent@example.com
140
+ executables: []
141
+ extensions: []
142
+ extra_rdoc_files: []
143
+ files:
144
+ - ".github/dependabot.yml"
145
+ - ".github/workflows/ci.yml"
146
+ - ".github/workflows/dependabot-auto-merge.yml"
147
+ - ".github/workflows/release.yml"
148
+ - ".gitignore"
149
+ - ".rspec"
150
+ - ".rubocop.yml"
151
+ - ".ruby-gemset"
152
+ - ".ruby-version"
153
+ - Gemfile
154
+ - README.md
155
+ - Rakefile
156
+ - bin/rubocop
157
+ - db/seeds.rb
158
+ - dbreap.gemspec
159
+ - lefthook.yml
160
+ - lib/db/empty.rake
161
+ - lib/db/reap.rake
162
+ - lib/dbreap.rb
163
+ - lib/dbreap/empty.rb
164
+ - lib/dbreap/railtie.rb
165
+ - lib/dbreap/reap.rb
166
+ - lib/dbreap/version.rb
167
+ - lib/generators/dbreap/install/install_generator.rb
168
+ - lib/generators/dbreap/install/templates/seeds.rb
169
+ homepage: https://github.com/brentgreeff/dbreap
170
+ licenses:
171
+ - MIT
172
+ metadata:
173
+ source_code_uri: https://github.com/brentgreeff/dbreap
174
+ rubygems_mfa_required: 'true'
175
+ rdoc_options: []
176
+ require_paths:
177
+ - lib
178
+ required_ruby_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '3.3'
183
+ required_rubygems_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ requirements: []
189
+ rubygems_version: 3.6.9
190
+ specification_version: 4
191
+ summary: Reap database records to YAML fixtures and seed them back.
192
+ test_files: []