bridgetown_sequel 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4e6ca1a45fc7d41e356530445901efee54620d9bc048bff13f09dae01bfcefe9
4
+ data.tar.gz: 1d02ccdb71b8d20ca461c10f57ac4e991f6398f590e7fef959858885e4fb6d21
5
+ SHA512:
6
+ metadata.gz: 4fa744caa34d8afcd16b40bcf4f44af91d40b7caae93feec04573a4827cf690a25fc1cdc6381ffcdb15c7cdc4e3bae582ed0a387549b628f200813d2e0b3468f
7
+ data.tar.gz: 010b80725bb53f34b71e27c72c7e1e20b29bac183d9acd8b720c43b7b25677d1edf15a1229acf48c138ed5405710ed5f27b127d01a47a6e5898b8c74b87cd3e4
@@ -0,0 +1,32 @@
1
+ name: Tests
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - "*"
7
+ push:
8
+ branches:
9
+ - main
10
+
11
+ jobs:
12
+ build:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ ruby_version: [3.1.3, 3.2.1, 3.3.0]
17
+ bridgetown_version: [1.3.4]
18
+ continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
19
+ # Has to be top level to cache properly
20
+ env:
21
+ BUNDLE_JOBS: 3
22
+ BUNDLE_PATH: "vendor/bundle"
23
+ BRIDGETOWN_VERSION: ${{ matrix.bridgetown_version }}
24
+ steps:
25
+ - uses: actions/checkout@master
26
+ - name: Setup Ruby
27
+ uses: ruby/setup-ruby@v1
28
+ with:
29
+ ruby-version: ${{ matrix.ruby_version }}
30
+ bundler-cache: true
31
+ - name: Test with Rake
32
+ run: script/cibuild
data/.gitignore ADDED
@@ -0,0 +1,40 @@
1
+ /vendor
2
+ /.bundle/
3
+ /.yardoc
4
+ /Gemfile.lock
5
+ /_yardoc/
6
+ /coverage/
7
+ /doc/
8
+ /pkg/
9
+ /spec/reports/
10
+ /tmp/
11
+ *.bundle
12
+ *.so
13
+ *.o
14
+ *.a
15
+ mkmf.log
16
+ *.gem
17
+ Gemfile.lock
18
+ .bundle
19
+ .ruby-version
20
+
21
+ # Node
22
+ node_modules
23
+ .npm
24
+ .node_repl_history
25
+
26
+ # Yarn
27
+ yarn-error.log
28
+ yarn-debug.log*
29
+ .pnp/
30
+ .pnp.js
31
+
32
+ # Yarn Integrity file
33
+ .yarn-integrity
34
+
35
+ test/dest
36
+ .bridgetown-metadata
37
+ .bridgetown-cache
38
+ .bridgetown-webpack
39
+
40
+ .env
data/.rubocop.yml ADDED
@@ -0,0 +1,37 @@
1
+ require: rubocop-bridgetown
2
+
3
+ inherit_gem:
4
+ rubocop-bridgetown: .rubocop.yml
5
+
6
+ AllCops:
7
+ TargetRubyVersion: 3.1
8
+
9
+ Exclude:
10
+ - .gitignore
11
+ - .rubocop.yml
12
+ - "*.gemspec"
13
+
14
+ - Gemfile.lock
15
+ - CHANGELOG.md
16
+ - LICENSE.txt
17
+ - README.md
18
+ - Rakefile
19
+ - bridgetown.automation.rb
20
+
21
+ - script/**/*
22
+ - test/fixtures/**/*
23
+ - vendor/**/*
24
+
25
+ Metrics/BlockLength:
26
+ Exclude:
27
+ - lib/tasks/*.rake
28
+
29
+ Metrics/ParameterLists:
30
+ Enabled: false
31
+
32
+ Style/FrozenStringLiteralComment:
33
+ Enabled: false
34
+
35
+ Style/HashSyntax:
36
+ Exclude:
37
+ - lib/tasks/*.rake
data/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ - ...
11
+
12
+ ## [1.0.0] - 2024-04-03
13
+
14
+ - First version of the Bridgetown Sequel gem.
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+ gemspec
5
+
6
+ gem "bridgetown", ENV["BRIDGETOWN_VERSION"] if ENV["BRIDGETOWN_VERSION"]
7
+
8
+ group :test do
9
+ gem "minitest"
10
+ gem "minitest-profile"
11
+ gem "minitest-reporters"
12
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2023-present Jared White & Bridgetown maintainers
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,146 @@
1
+ # Bridgetown Sequel
2
+
3
+ A Bridgetown plugin to make it easy to integrate and use [Sequel](https://sequel.jeremyevans.net), a popular database toolkit for Ruby.
4
+
5
+ It's been tested only with PostgreSQL, but it should support any of the databases supported by Sequel.
6
+
7
+ ## Installation
8
+
9
+ Run this command to add this plugin to your site's Gemfile:
10
+
11
+ ```shell
12
+ bundle add bridgetown_sequel
13
+ ```
14
+
15
+ Then add the database URI and initializer to your configuration in `config/initializers.rb` (note that the initializer _must_ be excepted from the `sequel_tasks` context):
16
+
17
+ ```ruby
18
+ database_uri ENV.fetch("DATABASE_URL", "postgres://localhost/your_database_name_here_#{Bridgetown.env}")
19
+
20
+ except :sequel_tasks do
21
+ init :bridgetown_sequel
22
+ end
23
+ ```
24
+
25
+ You'll also want to add this plugin's Rake tasks to your `Rakefile`:
26
+
27
+ ```rb
28
+ # This is at the top of your Rakefile already:
29
+ Bridgetown.load_tasks
30
+
31
+ # Now add this:
32
+ require "bridgetown_sequel"
33
+ Bridgetown::Sequel.load_tasks
34
+ ```
35
+
36
+ Finally, you'll want to create a `models` folder at the top-level of your site repo, as well as a `migrations` folder.
37
+
38
+ ## Usage
39
+
40
+ To add your first database table & model, first you'll want to add a model file to your new `models` folder. It can look as simple as this:
41
+
42
+ ```rb
43
+ # models/project.rb
44
+
45
+ class Project < Sequel::Model
46
+ # you can add optional model configuration along with your own Ruby code here later...
47
+ end
48
+ ```
49
+
50
+ Next, you'll want to create a migration. Run the following command:
51
+
52
+ ```shell
53
+ bin/bridgetown db::migrations:new name=create_projects
54
+ ```
55
+
56
+ And modify the new `migrations/001_create_projects.rb` file to look something like this:
57
+
58
+ ```rb
59
+ Sequel.migration do
60
+ change do
61
+ create_table(:projects) do
62
+ primary_key :id
63
+ String :name, null: false
64
+ String :category
65
+ Integer :order, default: 0
66
+
67
+ DateTime :created_at
68
+ DateTime :updated_at
69
+ end
70
+ end
71
+ end
72
+ ```
73
+
74
+ Now let's set up the database and run migrations. First, run this command (you only need to do this once for your repo):
75
+
76
+ ```shell
77
+ bin/bridgetown db:setup
78
+ ```
79
+
80
+ Then run migrations:
81
+
82
+ ```shell
83
+ bin/bridgetown db:migrate
84
+ ```
85
+
86
+ This will create the `projects` table and annotate your `models/project.rb` file with comments showing the table schema.
87
+
88
+ Now let's test your model. Run `bin/bridgetown console` (or `bin/bt c` for short):
89
+
90
+ ```rb
91
+ > Project.create(name: "My new project")
92
+
93
+ > project = Project[1]
94
+ ```
95
+
96
+ You should now see that you can save and load project records in your database.
97
+
98
+ If you ever need to drop your database and start over, run `bin/bridgetown db:drop`.
99
+
100
+ ### Optional Configuration
101
+
102
+ You can pass various options to the `bridgetown_sequel` initializer to customize the behavior of Sequel:
103
+
104
+ ```rb
105
+ init :bridgetown_sequel do
106
+ connection_options do # pass options to Sequel's `connect` method
107
+ # This adds a nice console debugging feature, aka `Project.dataset.print`
108
+ extensions [:pretty_table]
109
+ end
110
+ skip_autoload true # only set to `true` if you're manually configuring your autoload settings
111
+ models_dir "another_folder" # change the default `models` to something else
112
+ model_setup ->(model) do # here you can add `Sequel::Model` plugins to apply to all your models
113
+ model.plugin :update_or_create
114
+ end
115
+ end
116
+ ```
117
+
118
+ At any time after the initializer is run, you can access `Bridgetown.database` (aliased `db`) anywhere in your Ruby code to access the Sequel connection object. (This is equivalent to the `DB` constant you see in a lot of Sequel documentation.) For example, in your console:
119
+
120
+ ```rb
121
+ > db = Bridgetown.db
122
+ > db.fetch("SELECT * FROM projects ORDER BY name desc LIMIT 1").first
123
+ > db["SELECT COUNT(*) FROM projects"].first[:count]
124
+ ```
125
+
126
+ Raw SQL statements won't be logged out-of-the-box, but you can attach Bridgetown's logger to Sequel. Just add this statement right after your initializer:
127
+
128
+ ```rb
129
+ Bridgetown.db.loggers << Bridgetown.logger
130
+ ```
131
+
132
+ For a quick reference on what you can do with the Sequel DSL, check out this [handy cheat sheet](https://sequel.jeremyevans.net/rdoc/files/doc/cheat_sheet_rdoc.html).
133
+
134
+ ## Testing
135
+
136
+ * Run `bundle exec rake test` to run the test suite
137
+ * Or run `script/cibuild` to validate with Rubocop and Minitest together.
138
+
139
+ ## Contributing
140
+
141
+ 1. Fork it (https://github.com/bridgetownrb/bridgetown_sequel/fork)
142
+ 2. Clone the fork using `git clone` to your local development machine.
143
+ 3. Create your feature branch (`git checkout -b my-new-feature`)
144
+ 4. Commit your changes (`git commit -am 'Add some feature'`)
145
+ 5. Push to the branch (`git push origin my-new-feature`)
146
+ 6. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << "test"
6
+ t.libs << "lib"
7
+ t.test_files = FileList["test/**/test_*.rb"]
8
+ t.warning = false
9
+ end
10
+
11
+ task :default => :test
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/bridgetown_sequel/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "bridgetown_sequel"
7
+ spec.version = BridgetownSequel::VERSION
8
+ spec.author = "Bridgetown Team"
9
+ spec.email = "maintainers@bridgetownrb.com"
10
+ spec.summary = "Bridgetown plugin for integrating the Sequel database gem"
11
+ spec.homepage = "https://github.com/bridgetownrb/bridgetown_sequel"
12
+ spec.license = "MIT"
13
+
14
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r!^(test|script|spec|features|frontend)/!) }
15
+ spec.test_files = spec.files.grep(%r!^test/!)
16
+ spec.require_paths = ["lib"]
17
+
18
+ spec.required_ruby_version = ">= 3.1.0"
19
+
20
+ spec.add_dependency "bridgetown", ">= 1.3.0"
21
+ spec.add_dependency "sequel", ">= 5.76"
22
+ spec.add_dependency "sequel-annotate", ">= 1.7"
23
+
24
+ spec.add_development_dependency "bundler"
25
+ spec.add_development_dependency "rake", ">= 13.0"
26
+ spec.add_development_dependency "rubocop-bridgetown", "~> 0.3"
27
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BridgetownSequel
4
+ VERSION = "1.0.0"
5
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bridgetown"
4
+
5
+ # Needs export OBJC_DISABLE_INITIALIZE_FORK_SAFETY="yes" on macOS
6
+ # See: https://stackoverflow.com/questions/52671926/rails-may-have-been-in-progress-in-another-thread-when-fork-was-called
7
+ require "sequel"
8
+
9
+ module Bridgetown
10
+ module Sequel
11
+ def self.load_tasks(models_dir: "models")
12
+ ENV["BRIDGETOWN_SEQUEL_MODELS_DIR"] ||= models_dir
13
+ load File.expand_path("tasks/sequel_database.rake", __dir__)
14
+ end
15
+ end
16
+ end
17
+
18
+ Bridgetown.initializer :bridgetown_sequel do |
19
+ config,
20
+ models_dir: ENV.fetch("BRIDGETOWN_SEQUEL_MODELS_DIR", "models"),
21
+ skip_autoload: false,
22
+ model_setup: -> {},
23
+ connection_options: {}
24
+ |
25
+ unless skip_autoload
26
+ config.autoload_paths << {
27
+ path: models_dir,
28
+ eager: true,
29
+ }
30
+ end
31
+
32
+ config.database_models_dir = models_dir
33
+
34
+ # Add a `Bridgetown.database` convenience method
35
+ Bridgetown.define_singleton_method :database do
36
+ Sequel::DATABASES.first
37
+ end
38
+ Bridgetown.singleton_class.alias_method :db, :database
39
+
40
+ # Connect to the Database
41
+ config.database_connection_options = connection_options
42
+ # Example URI: postgres://user:password@localhost/blog
43
+ Sequel.connect(config.database_uri, **connection_options)
44
+
45
+ # Set up model plugins
46
+ Sequel::Model.plugin :timestamps
47
+ model_setup.(Sequel::Model)
48
+ end
@@ -0,0 +1,119 @@
1
+ namespace :db do
2
+ desc "Create the configured database"
3
+ task :setup => :environment do
4
+ run_initializers context: :sequel_tasks
5
+ database_name = File.basename(site.config.database_uri)
6
+ sh "createdb #{database_name}"
7
+
8
+ automation do
9
+ say_status :database, "Database created."
10
+ end
11
+ rescue RuntimeError
12
+ nil
13
+ end
14
+
15
+ desc "Drop the configured database"
16
+ task :drop => :environment do
17
+ run_initializers context: :sequel_tasks
18
+ answer = nil
19
+ automation do
20
+ answer = ask "Are you sure you want to drop the database? Type Y to continue, N to cancel:"
21
+ end
22
+ next unless answer.casecmp?("y")
23
+
24
+ database_name = File.basename(site.config.database_uri)
25
+ sh "dropdb #{database_name}"
26
+
27
+ automation do
28
+ say_status :database, "Database dropped."
29
+ end
30
+ rescue RuntimeError
31
+ nil
32
+ end
33
+
34
+ desc "Run database migrations"
35
+ task :migrate, [:version] => :environment do |_t, args|
36
+ run_initializers context: :sequel_tasks
37
+
38
+ require "sequel"
39
+ Sequel.extension :migration
40
+ version = args[:version].to_i if args[:version]
41
+
42
+ options = site.config.database_connection_options || {}
43
+ Sequel.connect(site.config.database_uri, logger: Logger.new($stderr), **options) do |db|
44
+ Sequel::Migrator.run(db, "migrations", target: version)
45
+ end
46
+
47
+ puts
48
+ automation do
49
+ say_status :database, "Migration complete."
50
+ end
51
+
52
+ Bundler.original_system "bin/bridgetown db:annotate"
53
+ end
54
+
55
+ namespace :migrations do
56
+ desc "Create a new migration file with the specified name"
57
+ task :new, [:filename] => :environment do |t, args|
58
+ run_initializers context: :sequel_tasks
59
+
60
+ # thanks to standalone-migrations gem for inspiration here
61
+ name = args[:filename] || ENV.fetch("filename", nil)
62
+ # options = args[:options] || ENV['options'] # TODO
63
+
64
+ unless name
65
+ automation do
66
+ say_status :database, "You must provide a migration name to generate.", :red
67
+ say_status :database,
68
+ "For example: bin/bridgetown #{t.name} filename=add_fields_to_model",
69
+ :red
70
+ end
71
+ abort
72
+ end
73
+
74
+ require "sequel"
75
+ Sequel.extension :migration
76
+ options = site.config.database_migration_connection_options || {}
77
+ Sequel.connect(site.config.database_uri, logger: Logger.new($stderr), **options) do |db|
78
+ current_version = begin
79
+ migrator = Sequel::IntegerMigrator.new(db, "migrations")
80
+ migrator.send(:latest_migration_version)
81
+ rescue Sequel::Migrator::Error
82
+ 0
83
+ end
84
+ new_version = (current_version + 1).to_s.rjust(3, "0")
85
+ automation do
86
+ create_file "migrations/#{new_version}_#{name}.rb", <<~RUBY
87
+ Sequel.migration do
88
+ change do
89
+ create_table(:table_name_here) do
90
+ primary_key :id
91
+ DateTime :created_at
92
+ DateTime :updated_at
93
+
94
+ # add your schema here
95
+ end
96
+ end
97
+ end
98
+ RUBY
99
+ say_status :database, "Migration created."
100
+ end
101
+ end
102
+ end
103
+ end
104
+
105
+ desc "Update model annotations"
106
+ task :annotate => :environment do
107
+ run_initializers context: :rake
108
+ models = Dir["#{site.config.database_models_dir}/*.rb"]
109
+
110
+ require "sequel/annotate"
111
+ Sequel::Annotate.annotate(models, border: true)
112
+
113
+ automation do
114
+ models.each { say_status :database, "Annotated #{_1}" }
115
+ end
116
+ rescue Sequel::DatabaseError
117
+ say_status :database, "Annotations failed. Perhaps you performed a rollback?", :red
118
+ end
119
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bridgetown_sequel
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Bridgetown Team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-04-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bridgetown
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.3.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.3.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: sequel
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '5.76'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '5.76'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sequel-annotate
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '13.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '13.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-bridgetown
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.3'
97
+ description:
98
+ email: maintainers@bridgetownrb.com
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files: []
102
+ files:
103
+ - ".github/workflows/tests.yml"
104
+ - ".gitignore"
105
+ - ".rubocop.yml"
106
+ - CHANGELOG.md
107
+ - Gemfile
108
+ - LICENSE.txt
109
+ - README.md
110
+ - Rakefile
111
+ - bridgetown_sequel.gemspec
112
+ - lib/bridgetown_sequel.rb
113
+ - lib/bridgetown_sequel/version.rb
114
+ - lib/tasks/sequel_database.rake
115
+ homepage: https://github.com/bridgetownrb/bridgetown_sequel
116
+ licenses:
117
+ - MIT
118
+ metadata: {}
119
+ post_install_message:
120
+ rdoc_options: []
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: 3.1.0
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ requirements: []
134
+ rubygems_version: 3.5.3
135
+ signing_key:
136
+ specification_version: 4
137
+ summary: Bridgetown plugin for integrating the Sequel database gem
138
+ test_files: []