seed_builder 1.0.0 → 1.0.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: 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