seed_builder 1.0.0 → 1.0.1

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: c653970b40ff1a4129b1ba9fb9c798ce53286bd1333651942110fa1d32da1819
4
- data.tar.gz: bd88dfb06863cf199d17e9d03b70ed210c93411b6b1bd8d3e1ad24ceca16293c
3
+ metadata.gz: 4ecee50238e268d48a12368a6120f6e5aacdce21672621a19b6bbdf82215585e
4
+ data.tar.gz: '059a0424d354435ef544dc6627541d9ac64de3b25aad0191050a378dbdb81b27'
5
5
  SHA512:
6
- metadata.gz: 53d483a3dd474f3bbde578f8913da62310a81b9db77f1b52c068dc1ed4c838f0c33d974bdc4dbf86939820b95de95a92527492bbdc8654a718a628e488c86d92
7
- data.tar.gz: 260dbbb289c1b7e2c2ad65934cbd297dfff1287b3e4cb8d319a843f8efd3ac83117f6eaf4a5c47ea023971332a8e0f044f181f6a1397419971a6347130ebd7b0
6
+ metadata.gz: 6d79169514a3b938ad45c8e57e68bb14f6de8e69cae56ac49cbc495fb64b314ea601d2798aebb42233b5b6f36d51d3b6666f9e7cec5746d69eb3a6d140089469
7
+ data.tar.gz: e9eb0af111a273efd24f7b883de27ff055ef8c19124475c4492fc7da553aa417135c06fab0506189afa48d327f6e6448b8fbbb00d166ae095479c88dee81d52c
@@ -0,0 +1,27 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: github-actions
9
+ directory: /
10
+ open-pull-requests-limit: 10
11
+ schedule:
12
+ interval: weekly
13
+ - package-ecosystem: bundler
14
+ directory: /
15
+ open-pull-requests-limit: 10
16
+ schedule:
17
+ interval: weekly
18
+ - package-ecosystem: npm
19
+ directory: /
20
+ open-pull-requests-limit: 10
21
+ schedule:
22
+ interval: weekly
23
+ - package-ecosystem: docker
24
+ directory: /
25
+ open-pull-requests-limit: 10
26
+ schedule:
27
+ interval: weekly
@@ -0,0 +1,15 @@
1
+ name: _trunk_check
2
+ on: [pull_request]
3
+ concurrency:
4
+ group: ${{ github.head_ref || github.run_id }}
5
+ cancel-in-progress: true
6
+ permissions: read-all
7
+ jobs:
8
+ run_trunk_action:
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ checks: write
12
+ contents: read
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: trunk-io/trunk-action@v1
@@ -1,35 +1,42 @@
1
1
  name: test
2
-
2
+ permissions: read-all
3
3
  on: [push, pull_request]
4
-
4
+ concurrency:
5
+ group: ${{ github.workflow }}-${{ github.ref_name }}
6
+ cancel-in-progress: false
5
7
  jobs:
6
8
  rspec:
7
9
  runs-on: ubuntu-latest
8
10
  strategy:
9
11
  matrix:
10
- ruby: [ ruby, jruby, truffleruby ]
12
+ ruby: [ruby, jruby, truffleruby]
11
13
  steps:
12
- - uses: actions/checkout@v3
13
- - uses: ruby/setup-ruby@v1
14
- with:
15
- ruby-version: ${{ matrix.ruby }}
16
- bundler-cache: true
17
- - run: bundle exec rspec
18
-
14
+ - uses: actions/checkout@v4
15
+ - uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby }}
18
+ bundler-cache: true
19
+ - run: bundle exec rspec
19
20
  coverage:
20
21
  runs-on: ubuntu-latest
21
22
  steps:
22
- - uses: actions/checkout@v3
23
- - uses: ruby/setup-ruby@v1
24
- with:
25
- bundler-cache: true
26
- - run: bundle exec rspec
27
- - uses: codecov/codecov-action@v5
28
- continue-on-error: true
29
- env:
30
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
31
- - uses: codacy/codacy-coverage-reporter-action@v1.3.0
32
- continue-on-error: true
33
- with:
34
- project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
35
- coverage-reports: "coverage/coverage.xml"
23
+ - uses: actions/checkout@v4
24
+ - uses: ruby/setup-ruby@v1
25
+ with:
26
+ bundler-cache: true
27
+ - run: bundle exec rspec
28
+ - uses: codecov/codecov-action@v5
29
+ continue-on-error: true
30
+ env:
31
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
32
+ - uses: codecov/test-results-action@v1
33
+ if: ${{ !cancelled() }}
34
+ continue-on-error: true
35
+ with:
36
+ token: ${{ secrets.CODECOV_TOKEN }}
37
+ files: coverage/junit-coverage.xml
38
+ - uses: codacy/codacy-coverage-reporter-action@v1.3.0
39
+ continue-on-error: true
40
+ with:
41
+ project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
42
+ coverage-reports: coverage/coverage.xml
data/.trunk/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ *out
2
+ *logs
3
+ *actions
4
+ *notifications
5
+ *tools
6
+ plugins
7
+ user_trunk.yaml
8
+ user.yaml
9
+ tmp
@@ -0,0 +1,2 @@
1
+ # Prettier friendly markdownlint config (all formatting rules disabled)
2
+ extends: markdownlint/style/prettier
@@ -0,0 +1,7 @@
1
+ enable=all
2
+ source-path=SCRIPTDIR
3
+ disable=SC2154
4
+
5
+ # If you're having issues with shellcheck following source, disable the errors via:
6
+ # disable=SC1090
7
+ # disable=SC1091
@@ -0,0 +1,7 @@
1
+ rules:
2
+ quoted-strings:
3
+ required: only-when-needed
4
+ extra-allowed: ["{|}"]
5
+ key-duplicates: {}
6
+ octal-values:
7
+ forbid-implicit-octal: true
data/.trunk/trunk.yaml ADDED
@@ -0,0 +1,39 @@
1
+ # This file controls the behavior of Trunk: https://docs.trunk.io/cli
2
+ # To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml
3
+ version: 0.1
4
+ cli:
5
+ version: 1.22.8
6
+ # Trunk provides extensibility via plugins. (https://docs.trunk.io/plugins)
7
+ plugins:
8
+ sources:
9
+ - id: trunk
10
+ ref: v1.6.5
11
+ uri: https://github.com/trunk-io/plugins
12
+ # Many linters and tools depend on runtimes - configure them here. (https://docs.trunk.io/runtimes)
13
+ runtimes:
14
+ enabled:
15
+ - ruby@3.1.4
16
+ - go@1.21.0
17
+ - node@18.12.1
18
+ - python@3.10.8
19
+ # This is the section where you manage your linters. (https://docs.trunk.io/check/configuration)
20
+ lint:
21
+ enabled:
22
+ - standardrb@1.3.0
23
+ - actionlint@1.7.4
24
+ - checkov@3.2.332
25
+ - git-diff-check
26
+ - markdownlint@0.43.0
27
+ - osv-scanner@1.9.1
28
+ - prettier@3.4.2
29
+ - shellcheck@0.10.0
30
+ - shfmt@3.6.0
31
+ - trufflehog@3.85.0
32
+ - yamllint@1.35.1
33
+ actions:
34
+ disabled:
35
+ - trunk-announce
36
+ - trunk-check-pre-push
37
+ - trunk-fmt-pre-commit
38
+ enabled:
39
+ - trunk-upgrade-available
@@ -0,0 +1,18 @@
1
+ {
2
+ "recommendations": [
3
+ "donjayamanne.githistory",
4
+ "editorconfig.editorconfig",
5
+ "mikestead.dotenv",
6
+ "anweber.vscode-httpyac",
7
+ "shopify.ruby-lsp",
8
+ "bung87.vscode-gemfile",
9
+ "wayou.vscode-todo-highlight",
10
+ "vscode-icons-team.vscode-icons",
11
+ "koichisasada.vscode-rdbg",
12
+ "fooo.ruby-spec-runner",
13
+ "nhoizey.gremlins",
14
+ "streetsidesoftware.code-spell-checker",
15
+ "dewski.simplecov",
16
+ "trunk.io"
17
+ ]
18
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "editor.defaultFormatter": "trunk.io",
3
+ "editor.formatOnSave": false,
4
+ "editor.detectIndentation": false,
5
+ "editor.tabSize": 2,
6
+ "editor.insertSpaces": true
7
+ }
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 1.0.1
2
+
3
+ - Fix boolean config options to properly handle `nil` and `false` values
4
+
1
5
  # 1.0.0
2
6
 
3
- * Initial version
7
+ - Initial version
data/Gemfile.lock CHANGED
@@ -1,10 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seed_builder (1.0.0)
5
- activerecord (> 5)
6
- activesupport (> 5)
7
- rails (> 5)
4
+ seed_builder (1.0.1)
5
+ activerecord (>= 6, < 8.1)
6
+ rails (>= 6, < 8.1)
8
7
 
9
8
  GEM
10
9
  remote: https://rubygems.org/
@@ -205,6 +204,8 @@ GEM
205
204
  diff-lcs (>= 1.2.0, < 2.0)
206
205
  rspec-support (~> 3.13.0)
207
206
  rspec-support (3.13.2)
207
+ rspec_junit_formatter (0.6.0)
208
+ rspec-core (>= 2, < 4, != 2.12.0)
208
209
  securerandom (0.4.0)
209
210
  simplecov (0.22.0)
210
211
  docile (~> 1.1)
@@ -249,6 +250,7 @@ PLATFORMS
249
250
  DEPENDENCIES
250
251
  bundler (~> 2)
251
252
  rspec (~> 3)
253
+ rspec_junit_formatter (~> 0.6)
252
254
  seed_builder!
253
255
  simplecov (~> 0.21)
254
256
  simplecov-cobertura (~> 2)
data/README.md CHANGED
@@ -6,14 +6,16 @@ Seed builder for ActiveRecord. Includes seeds loader and generator.
6
6
 
7
7
  Sponsored by [Kisko Labs](https://www.kiskolabs.com).
8
8
 
9
- ## Install
9
+ ## Installation
10
10
 
11
11
  Using Bundler:
12
+
12
13
  ```sh
13
14
  bundle add seed_builder
14
15
  ```
15
16
 
16
17
  Using RubyGems:
18
+
17
19
  ```sh
18
20
  gem install seed_builder
19
21
  ```
@@ -21,9 +23,7 @@ gem install seed_builder
21
23
  ## Gemfile
22
24
 
23
25
  ```ruby
24
- group :development do
25
- gem "seed_builder"
26
- end
26
+ gem "seed_builder"
27
27
  ```
28
28
 
29
29
  ## Usage
@@ -82,9 +82,10 @@ SeedBuilder.config.generate_spec = false
82
82
 
83
83
  ## Contributing
84
84
 
85
- Bug reports and pull requests are welcome on GitHub at https://github.com/amkisko/seed_builder.rb
85
+ Bug reports and pull requests are welcome on GitHub at <https://github.com/amkisko/seed_builder.rb>
86
86
 
87
87
  Contribution policy:
88
+
88
89
  - New features are not necessarily added to the gem
89
90
  - Pull request should have test coverage for affected parts
90
91
  - Pull request should have changelog entry
@@ -21,17 +21,17 @@ module SeedBuilder
21
21
 
22
22
  attr_writer :load_default_seeds
23
23
  def load_default_seeds?
24
- @load_default_seeds ||= true
24
+ @load_default_seeds.nil? ? true : @load_default_seeds
25
25
  end
26
26
 
27
27
  attr_writer :load_seeds
28
28
  def load_seeds?
29
- @load_seeds ||= true
29
+ @load_seeds.nil? ? true : @load_seeds
30
30
  end
31
31
 
32
32
  attr_writer :generate_spec
33
33
  def generate_spec?
34
- @generate_spec ||= true
34
+ @generate_spec.nil? ? true : @generate_spec
35
35
  end
36
36
  end
37
37
  end
data/lib/seed_builder.rb CHANGED
@@ -2,13 +2,15 @@ require "seed_builder/config"
2
2
  require "seed_builder/loader"
3
3
 
4
4
  module SeedBuilder
5
- VERSION = "1.0.0".freeze
5
+ VERSION = "1.0.1".freeze
6
6
 
7
- def self.config
8
- @config ||= Config.new
7
+ module_function
8
+
9
+ def config
10
+ @@config ||= Config.new
9
11
  end
10
12
 
11
- def self.configure
13
+ def configure
12
14
  yield config
13
15
  end
14
16
  end
data/seed_builder.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
14
14
  gem.email = ["andrei@kiskolabs.com"]
15
15
  gem.homepage = repository_url
16
16
  gem.summary = "Seed builder with loader and generator"
17
- gem.description = gem.summary
17
+ gem.description = "Extension for ActiveRecord to organize seeds in a directory and generate them as migrations"
18
18
  gem.metadata = {
19
19
  "homepage" => repository_url,
20
20
  "source_code_uri" => repository_url,
@@ -30,12 +30,12 @@ Gem::Specification.new do |gem|
30
30
  gem.required_ruby_version = ">= 3"
31
31
  gem.require_paths = ["lib"]
32
32
 
33
- gem.add_dependency "rails", "> 5"
34
- gem.add_dependency "activerecord", "> 5"
35
- gem.add_dependency "activesupport", "> 5"
33
+ gem.add_dependency "rails", ">= 6", "< 8.1"
34
+ gem.add_dependency "activerecord", ">= 6", "< 8.1"
36
35
 
37
36
  gem.add_development_dependency "bundler", "~> 2"
38
37
  gem.add_development_dependency "rspec", "~> 3"
38
+ gem.add_development_dependency "rspec_junit_formatter", "~> 0.6"
39
39
  gem.add_development_dependency "simplecov", "~> 0.21"
40
40
  gem.add_development_dependency "simplecov-cobertura", "~> 2"
41
41
  gem.add_development_dependency "sqlite3", "~> 2.4"
@@ -1,6 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  class SeedBuilderUser < ActiveRecord::Base; end
4
+
4
5
  class SeedUser < SeedBuilderUser; end
5
6
 
6
7
  describe SeedBuilder::Loader do
@@ -10,7 +10,7 @@ describe SeedBuilder do
10
10
  let(:changelog_file) { File.expand_path("../../CHANGELOG.md", __FILE__) }
11
11
  it "has changelog for the version" do
12
12
  expect(File.exist?(changelog_file)).to be true
13
- expect(File.read(changelog_file)).to include("# #{gem_specification.version.to_s}")
13
+ expect(File.read(changelog_file)).to include("# #{gem_specification.version}")
14
14
  end
15
15
 
16
16
  let(:license_file) { File.expand_path("../../LICENSE.md", __FILE__) }
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,3 @@
1
- $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
2
-
3
1
  require "simplecov"
4
2
  SimpleCov.start do
5
3
  add_filter "/spec/"
@@ -0,0 +1,6 @@
1
+ if ENV["CI"]
2
+ require "rspec_junit_formatter"
3
+ RSpec.configure do |config|
4
+ config.add_formatter RspecJunitFormatter, "coverage/junit-coverage.xml"
5
+ end
6
+ end
data/usr/bin/release.sh CHANGED
@@ -3,25 +3,33 @@
3
3
  set -e
4
4
 
5
5
  e() {
6
- GREEN='\033[0;32m'
7
- NC='\033[0m'
8
- echo -e "${GREEN}$1${NC}"
9
- eval "$1"
6
+ GREEN='\033[0;32m'
7
+ NC='\033[0m'
8
+ echo -e "${GREEN}$1${NC}"
9
+ eval "$1"
10
10
  }
11
11
 
12
12
  e "bundle"
13
13
  e "bundle exec rspec"
14
14
 
15
- if [[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]]; then
15
+ if [[ $(git diff --shortstat 2>/dev/null | tail -n1) != "" ]]; then
16
16
  echo -e "\033[1;31mgit working directory not clean, please commit your changes first \033[0m"
17
17
  exit 1
18
18
  fi
19
19
 
20
20
  GEM_NAME="seed_builder"
21
- VERSION=$(grep -Eo "VERSION\s*=\s*\".+\"" lib/seed_builder.rb | grep -Eo "[0-9.]{5,}")
21
+ VERSION=$(grep -Eo "VERSION\s*=\s*\".+\"" lib/seed_builder.rb | grep -Eo "[0-9.]{5,}")
22
22
  GEM_FILE="$GEM_NAME-$VERSION.gem"
23
23
 
24
24
  e "gem build $GEM_NAME.gemspec"
25
- e "gem push $GEM_FILE"
26
25
 
26
+ echo "Ready to release $GEM_FILE $VERSION"
27
+ read -p "Continue? [Y/n] " answer
28
+ if [[ "$answer" != "Y" ]]; then
29
+ echo "Exiting"
30
+ exit 1
31
+ fi
32
+
33
+ e "gem push $GEM_FILE"
27
34
  e "git tag $VERSION && git push --tags"
35
+ e "gh release create $VERSION --generate-notes"
metadata CHANGED
@@ -1,85 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seed_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.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-06 00:00:00.000000000 Z
11
+ date: 2024-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5'
19
+ version: '6'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '8.1'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ">"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '6'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '5'
32
+ version: '8.1'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: activerecord
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - ">"
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '6'
40
+ - - "<"
32
41
  - !ruby/object:Gem::Version
33
- version: '5'
42
+ version: '8.1'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - ">"
47
+ - - ">="
39
48
  - !ruby/object:Gem::Version
40
- version: '5'
49
+ version: '6'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '8.1'
41
53
  - !ruby/object:Gem::Dependency
42
- name: activesupport
54
+ name: bundler
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
- - - ">"
57
+ - - "~>"
46
58
  - !ruby/object:Gem::Version
47
- version: '5'
48
- type: :runtime
59
+ version: '2'
60
+ type: :development
49
61
  prerelease: false
50
62
  version_requirements: !ruby/object:Gem::Requirement
51
63
  requirements:
52
- - - ">"
64
+ - - "~>"
53
65
  - !ruby/object:Gem::Version
54
- version: '5'
66
+ version: '2'
55
67
  - !ruby/object:Gem::Dependency
56
- name: bundler
68
+ name: rspec
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
59
71
  - - "~>"
60
72
  - !ruby/object:Gem::Version
61
- version: '2'
73
+ version: '3'
62
74
  type: :development
63
75
  prerelease: false
64
76
  version_requirements: !ruby/object:Gem::Requirement
65
77
  requirements:
66
78
  - - "~>"
67
79
  - !ruby/object:Gem::Version
68
- version: '2'
80
+ version: '3'
69
81
  - !ruby/object:Gem::Dependency
70
- name: rspec
82
+ name: rspec_junit_formatter
71
83
  requirement: !ruby/object:Gem::Requirement
72
84
  requirements:
73
85
  - - "~>"
74
86
  - !ruby/object:Gem::Version
75
- version: '3'
87
+ version: '0.6'
76
88
  type: :development
77
89
  prerelease: false
78
90
  version_requirements: !ruby/object:Gem::Requirement
79
91
  requirements:
80
92
  - - "~>"
81
93
  - !ruby/object:Gem::Version
82
- version: '3'
94
+ version: '0.6'
83
95
  - !ruby/object:Gem::Dependency
84
96
  name: simplecov
85
97
  requirement: !ruby/object:Gem::Requirement
@@ -122,7 +134,8 @@ dependencies:
122
134
  - - "~>"
123
135
  - !ruby/object:Gem::Version
124
136
  version: '2.4'
125
- description: Seed builder with loader and generator
137
+ description: Extension for ActiveRecord to organize seeds in a directory and generate
138
+ them as migrations
126
139
  email:
127
140
  - andrei@kiskolabs.com
128
141
  executables: []
@@ -130,9 +143,18 @@ extensions: []
130
143
  extra_rdoc_files: []
131
144
  files:
132
145
  - ".editorconfig"
146
+ - ".github/dependabot.yml"
147
+ - ".github/workflows/_trunk_check.yml"
133
148
  - ".github/workflows/test.yml"
134
149
  - ".gitignore"
135
150
  - ".ruby-version"
151
+ - ".trunk/.gitignore"
152
+ - ".trunk/configs/.markdownlint.yaml"
153
+ - ".trunk/configs/.shellcheckrc"
154
+ - ".trunk/configs/.yamllint.yaml"
155
+ - ".trunk/trunk.yaml"
156
+ - ".vscode/extensions.json"
157
+ - ".vscode/settings.json"
136
158
  - CHANGELOG.md
137
159
  - Gemfile
138
160
  - Gemfile.lock
@@ -153,6 +175,7 @@ files:
153
175
  - spec/seed_builder/loader_spec.rb
154
176
  - spec/seed_builder_spec.rb
155
177
  - spec/spec_helper.rb
178
+ - spec/support/junit_formatter.rb
156
179
  - spec/support/rails_helpers.rb
157
180
  - usr/bin/release.sh
158
181
  homepage: https://github.com/amkisko/seed_builder.rb
@@ -192,4 +215,5 @@ test_files:
192
215
  - spec/seed_builder/loader_spec.rb
193
216
  - spec/seed_builder_spec.rb
194
217
  - spec/spec_helper.rb
218
+ - spec/support/junit_formatter.rb
195
219
  - spec/support/rails_helpers.rb