sequelize-rails 0.2.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.
@@ -0,0 +1,153 @@
1
+ module SequelizeRails
2
+ module Railties
3
+ class LogSubscriber < ActiveSupport::LogSubscriber
4
+ IGNORE_PAYLOAD_NAMES = ["SCHEMA", "EXPLAIN"]
5
+
6
+ class_attribute :backtrace_cleaner, default: ActiveSupport::BacktraceCleaner.new
7
+
8
+ def self.runtime=(value)
9
+ Thread.current["sequel_sql_runtime"] = value
10
+ end
11
+
12
+ def self.runtime
13
+ Thread.current["sequel_sql_runtime"] ||= 0
14
+ end
15
+
16
+ def self.count=(value)
17
+ Thread.current["sequel_sql_count"] = value
18
+ end
19
+
20
+ def self.count
21
+ Thread.current["sequel_sql_count"] ||= 0
22
+ end
23
+
24
+ def self.reset_runtime
25
+ previous = runtime
26
+ self.runtime = 0
27
+ previous
28
+ end
29
+
30
+ def self.reset_count
31
+ previous = count
32
+ self.count = 0
33
+ previous
34
+ end
35
+
36
+ def sql(event)
37
+ self.class.runtime += event.duration
38
+ self.class.count += 1
39
+ return unless logger.debug?
40
+
41
+ payload = event.payload
42
+
43
+ return if IGNORE_PAYLOAD_NAMES.include?(payload[:name])
44
+
45
+ name = format("%s (%.1fms)", payload[:name], event.duration)
46
+ sql = payload[:sql].squeeze(" ")
47
+ binds = nil
48
+
49
+ if payload[:binds]&.any?
50
+ casted_params = type_casted_binds(payload[:type_casted_binds])
51
+
52
+ binds = []
53
+ payload[:binds].each_with_index do |attr, i|
54
+ attribute_name = if attr.respond_to?(:name)
55
+ attr.name
56
+ elsif attr.respond_to?(:[]) && attr[i].respond_to?(:name)
57
+ attr[i].name
58
+ end
59
+
60
+ filtered_params = filter(attribute_name, casted_params[i])
61
+
62
+ binds << render_bind(attr, filtered_params)
63
+ end
64
+ binds = binds.inspect
65
+ binds.prepend(" ")
66
+ end
67
+
68
+ name = colorize_payload_name(name, payload[:name])
69
+ sql = color(sql, sql_color(sql), true) if colorize_logging
70
+
71
+ debug " #{name} #{sql}#{binds}"
72
+ end
73
+
74
+ private
75
+
76
+ def type_casted_binds(casted_binds)
77
+ casted_binds.respond_to?(:call) ? casted_binds.call : casted_binds
78
+ end
79
+
80
+ def render_bind(attr, value)
81
+ case attr
82
+ when ActiveModel::Attribute
83
+ if attr.type.binary? && attr.value
84
+ value = "<#{attr.value_for_database.to_s.bytesize} bytes of binary data>"
85
+ end
86
+ when Array
87
+ attr = attr.first
88
+ else
89
+ attr = nil
90
+ end
91
+
92
+ [attr&.name, value]
93
+ end
94
+
95
+ def colorize_payload_name(name, payload_name)
96
+ if payload_name.blank? || payload_name == "SQL" # SQL vs Model Load/Exists
97
+ color(name, WHITE, true)
98
+ else
99
+ color(name, CYAN, true)
100
+ end
101
+ end
102
+
103
+ def sql_color(sql)
104
+ case sql
105
+ when /\A\s*rollback/mi
106
+ RED
107
+ when /select .*for update/mi, /\A\s*lock/mi
108
+ CYAN
109
+ when /\A\s*select/i
110
+ CYAN
111
+ when /\A\s*insert/i
112
+ GREEN
113
+ when /\A\s*update/i
114
+ YELLOW
115
+ when /\A\s*delete/i
116
+ RED
117
+ when /transaction\s*\Z/i, /\A\s*begin/i, /\A\s*commit/i
118
+ BLUE
119
+ else
120
+ MAGENTA
121
+ end
122
+ end
123
+
124
+ def logger
125
+ ::Rails.application.config.sequel.logger
126
+ end
127
+
128
+ def debug(progname = nil, &block)
129
+ return unless super
130
+
131
+ if Rails.application.config.sequel.verbose_query_logs
132
+ log_query_source
133
+ end
134
+ end
135
+
136
+ def log_query_source
137
+ source = extract_query_source_location(caller)
138
+
139
+ if source
140
+ logger.debug(" ↳ #{source}")
141
+ end
142
+ end
143
+
144
+ def extract_query_source_location(locations)
145
+ backtrace_cleaner.clean(locations.lazy).first
146
+ end
147
+
148
+ def filter(name, value)
149
+ ActiveRecord::Base.inspection_filter.filter_param(name, value)
150
+ end
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,13 @@
1
+ module SequelizeRails
2
+ module TranslationSupport
3
+ def i18n_scope
4
+ :sequel
5
+ end
6
+
7
+ def lookup_ancestors
8
+ # ActiveModel uses the name of ancestors. Exclude unnamed classes, like
9
+ # those returned by Sequel::Model(...).
10
+ super.reject { |x| x.name.nil? }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SequelizeRails
4
+ VERSION = "0.2.0"
5
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "sequelize_rails/version"
4
+ require "sequelize_rails/railtie"
5
+ require "sequelize_rails/translation_support"
6
+
7
+ # Plugins
8
+ require "sequel/plugins/pretty_print"
9
+
10
+ # Generators
11
+ require "rails/generators"
12
+ require "sequelize_rails/generators/migration/migration_generator"
13
+ require "sequelize_rails/generators/model/model_generator"
14
+ require "sequelize_rails/generators/application_record/application_record_generator"
15
+
16
+ module SequelizeRails
17
+ mattr_accessor :configurations
18
+
19
+ # Opens a database connection based on the given configuration name
20
+ def self.connect_to config_name, opts = {}
21
+ config = SequelizeRails.configurations.resolve(config_name).configuration_hash.dup
22
+ config[:adapter] = "sqlite" if config[:adapter] == "sqlite3"
23
+ config[:max_connections] ||= config.delete(:pool) if config[:pool]
24
+ config[:pool_timeout] ||= config.delete(:timeout) / 1000 if config[:timeout]
25
+ Dir.chdir Rails.root do
26
+ Sequel.connect config, opts
27
+ end
28
+ end
29
+ end
data/lib/tasks.rake ADDED
@@ -0,0 +1,201 @@
1
+ # frozen_string_literal: true
2
+
3
+ # These tasks were copied from activerecord/lib/active_record/railties/databases.rake
4
+ # Lines that have been changed will be commented out with the replacement below
5
+
6
+ require "active_record"
7
+ require "active_support/configuration_file"
8
+ require "active_support/deprecation"
9
+
10
+ databases = ActiveRecord::Tasks::DatabaseTasks.setup_initial_database_yaml
11
+
12
+ ns = :db
13
+ db_namespace = namespace ns do
14
+ # Changed: this task was commented out
15
+ # desc "Set the environment value for the database"
16
+ # task "environment:set" => :load_config do
17
+ # raise ActiveRecord::EnvironmentStorageError unless ActiveRecord::InternalMetadata.enabled?
18
+ # ActiveRecord::InternalMetadata.create_table
19
+ # ActiveRecord::InternalMetadata[:environment] = ActiveRecord::Base.connection.migration_context.current_environment
20
+ # end
21
+
22
+ # Changed: this task now only checks the loaded environment
23
+ task check_protected_environments: :load_config do
24
+ # Disconnect any potentially-existing Sequel database connections
25
+ Sequel::DATABASES.each(&:disconnect)
26
+ raise "Error: the #{Rails.env} environment is a protected environment." unless Rails.env.test? || Rails.env.development?
27
+ end
28
+
29
+ task load_config: :environment do
30
+ if ActiveRecord::Base.configurations.empty?
31
+ # Changed: the active_record railtie may not be loaded, so we need to load the database configuration directly
32
+ # ActiveRecord::Base.configurations = ActiveRecord::Tasks::DatabaseTasks.database_configuration
33
+ ActiveRecord::Base.configurations = Rails.application.config.database_configuration
34
+ # This line was also added
35
+ ActiveRecord::Base.establish_connection
36
+ end
37
+
38
+ ActiveRecord::Migrator.migrations_paths = ActiveRecord::Tasks::DatabaseTasks.migrations_paths
39
+ end
40
+
41
+ namespace :create do
42
+ task all: :load_config do
43
+ ActiveRecord::Tasks::DatabaseTasks.create_all
44
+ end
45
+
46
+ ActiveRecord::Tasks::DatabaseTasks.for_each(databases) do |name|
47
+ desc "Create #{name} database for current environment"
48
+ task name => :load_config do
49
+ db_config = ActiveRecord::Base.configurations.configs_for(env_name: Rails.env, name: name)
50
+ ActiveRecord::Tasks::DatabaseTasks.create(db_config)
51
+ end
52
+ end
53
+ end
54
+
55
+ desc "Creates the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:create:all to create all databases in the config). Without RAILS_ENV or when RAILS_ENV is development, it defaults to creating the development and test databases, except when DATABASE_URL is present."
56
+ task create: [:load_config] do
57
+ ActiveRecord::Tasks::DatabaseTasks.create_current
58
+ end
59
+
60
+ namespace :drop do
61
+ task all: [:load_config, :check_protected_environments] do
62
+ ActiveRecord::Tasks::DatabaseTasks.drop_all
63
+ end
64
+
65
+ ActiveRecord::Tasks::DatabaseTasks.for_each(databases) do |name|
66
+ desc "Drop #{name} database for current environment"
67
+ task name => [:load_config, :check_protected_environments] do
68
+ db_config = ActiveRecord::Base.configurations.configs_for(env_name: Rails.env, name: name)
69
+ ActiveRecord::Tasks::DatabaseTasks.drop(db_config)
70
+ end
71
+ end
72
+ end
73
+
74
+ desc "Drops the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:drop:all to drop all databases in the config). Without RAILS_ENV or when RAILS_ENV is development, it defaults to dropping the development and test databases, except when DATABASE_URL is present."
75
+ task drop: [:load_config, :check_protected_environments] do
76
+ db_namespace[:"drop:_unsafe"].invoke
77
+ end
78
+
79
+ task "drop:_unsafe": [:load_config] do
80
+ ActiveRecord::Tasks::DatabaseTasks.drop_current
81
+ end
82
+
83
+ namespace :purge do
84
+ task all: [:load_config, :check_protected_environments] do
85
+ ActiveRecord::Tasks::DatabaseTasks.purge_all
86
+ end
87
+ end
88
+
89
+ # desc "Truncates tables of each database for current environment"
90
+ task truncate_all: [:load_config, :check_protected_environments] do
91
+ ActiveRecord::Tasks::DatabaseTasks.truncate_all
92
+ end
93
+
94
+ # desc "Empty the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:purge:all to purge all databases in the config). Without RAILS_ENV it defaults to purging the development and test databases, except when DATABASE_URL is present."
95
+ task purge: [:load_config, :check_protected_environments] do
96
+ ActiveRecord::Tasks::DatabaseTasks.purge_current
97
+ end
98
+
99
+ ############################################################################
100
+ # end of tasks from activerecord/lib/active_record/railties/databases.rake #
101
+ ############################################################################
102
+
103
+ # Initializes a database migrator
104
+ def migrator opts = {}
105
+ if ENV["VERSION"] && ENV["VERSION"].to_i > 0
106
+ opts[:version] = ENV["VERSION"].to_i
107
+ end
108
+ ::Sequel::TimestampMigrator.new(Sequel::DATABASES.first, ActiveRecord::Migrator.migrations_paths.first, opts)
109
+ end
110
+
111
+ # Opens a connection to the primary database and loads the migrator
112
+ task connection: [:environment] do
113
+ require "sequel/core"
114
+ Sequel.extension :migration
115
+ SequelizeRails.connect_to :primary
116
+ end
117
+
118
+ # desc "Backs up the database from DATABASE_URL or config/database.yml for the current RAILS_ENV"
119
+ # task dump: [] do
120
+ # end
121
+
122
+ desc "Migrate the database"
123
+ task migrate: [:connection] do
124
+ migrator.run
125
+ end
126
+
127
+ namespace :migrate do
128
+ # desc "Runs the \"down\" method for the last applied migration"
129
+ task down: [:connection] do
130
+ target = (migrator.applied_migrations[-2] || "0_").split("_", 2).first.to_i
131
+ migrator(target: target).run
132
+ end
133
+
134
+ # desc "Runs the \"up\" method for the next pending migration"
135
+ task up: [:connection] do
136
+ pending = migrator.migration_tuples.first
137
+ if pending
138
+ target = pending[1].split("_", 2).first.to_i
139
+ migrator(target: target).run
140
+ end
141
+ end
142
+
143
+ desc "Rolls back the last migration and re-runs it"
144
+ task redo: [:down, :up]
145
+
146
+ desc "Displays the status of the database migrations"
147
+ task status: [:connection] do
148
+ pending = migrator.migration_tuples.count
149
+ if pending == 1
150
+ puts "1 pending migration"
151
+ else
152
+ puts "#{pending} pending migrations"
153
+ end
154
+ end
155
+ end
156
+
157
+ desc "Runs #{ns}:setup if the database does not exist or #{ns}:migrate if it does"
158
+ task prepare: [] do
159
+ Rake::Task[:"#{ns}:connection"].invoke
160
+ Rake::Task[:"#{ns}:migrate"].invoke
161
+ rescue Sequel::DatabaseConnectionError
162
+ Rake::Task[:"#{ns}:setup"].invoke
163
+ end
164
+
165
+ desc "Runs #{ns}:drop, #{ns}:setup"
166
+ task reset: [:"#{ns}:drop", :"#{ns}:setup"]
167
+
168
+ # desc "Restores the backup for database from DATABASE_URL or config/database.yml for the current RAILS_ENV"
169
+ # task restore: [:connection] do
170
+ # end
171
+
172
+ desc "Rolls back the last migration"
173
+ task rollback: [:"migrate:down"]
174
+
175
+ # namespace :schema do
176
+ # namespace :cache do
177
+ # desc "Clears the database schema and indicies caches"
178
+ # task clear: [] do
179
+ # end
180
+
181
+ # desc "Creates the database schema and indicies caches"
182
+ # task dump: [] do
183
+ # end
184
+ # end
185
+
186
+ # desc "Creates a backup of just the database's schema"
187
+ # task dump: [] do
188
+ # end
189
+
190
+ # desc "Restores the database's schema from backup"
191
+ # task load: [] do
192
+ # end
193
+ # end
194
+
195
+ # desc "Loads the seed data from db/seeds.rb"
196
+ # task seed: [] do
197
+ # end
198
+
199
+ desc "Runs the #{ns}:create, #{ns}:migrate, #{ns}:seed tasks"
200
+ task setup: [:"#{ns}:create", :"#{ns}:migrate", :"#{ns}:seed"]
201
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/sequelize_rails/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "sequelize-rails"
7
+ spec.version = ::SequelizeRails::VERSION
8
+ spec.authors = ["Kenaniah Cerny"]
9
+ spec.email = ["kenaniah@gmail.com"]
10
+
11
+ spec.summary = "A gem for using Sequel with Rails natively."
12
+ spec.description = "This gem provides the railtie that allows Sequel to hook into Rails as an alternative or supplement to ActiveRecord."
13
+ spec.homepage = "https://github.com/kenaniah/sequelize-rails"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2.6.0"
16
+
17
+ spec.metadata["allowed_push_host"] = "https://rubygems.org/"
18
+
19
+ spec.metadata["homepage_uri"] = spec.homepage
20
+ spec.metadata["source_code_uri"] = spec.homepage
21
+ spec.metadata["changelog_uri"] = spec.homepage + "/blob/main/CHANGELOG.md"
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`.split("\x0").reject do |f|
27
+ (f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
28
+ end
29
+ end
30
+ spec.bindir = "exe"
31
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ["lib"]
33
+
34
+ spec.add_dependency "activerecord", ">= 6.0.0"
35
+ spec.add_dependency "rails", ">= 6.0.0"
36
+ spec.add_dependency "sequel", ">= 5.0.0"
37
+
38
+ spec.add_development_dependency "appraisal"
39
+ spec.add_development_dependency "minitest-reporters"
40
+ spec.add_development_dependency "pg"
41
+ spec.add_development_dependency "pry"
42
+ spec.add_development_dependency "rake"
43
+ spec.add_development_dependency "sqlite3"
44
+
45
+ # For more information and examples about making a new gem, check out our
46
+ # guide at: https://bundler.io/guides/creating_gem.html
47
+ end
@@ -0,0 +1,4 @@
1
+ module SequelizeRails
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,206 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sequelize-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Kenaniah Cerny
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2022-06-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 6.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 6.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 6.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 6.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: sequel
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 5.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 5.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: appraisal
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: minitest-reporters
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pg
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sqlite3
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: This gem provides the railtie that allows Sequel to hook into Rails as
140
+ an alternative or supplement to ActiveRecord.
141
+ email:
142
+ - kenaniah@gmail.com
143
+ executables: []
144
+ extensions: []
145
+ extra_rdoc_files: []
146
+ files:
147
+ - ".standard.yml"
148
+ - Appraisals
149
+ - CHANGELOG.md
150
+ - Gemfile
151
+ - Gemfile.lock
152
+ - LICENSE.txt
153
+ - README.md
154
+ - Rakefile
155
+ - bin/console
156
+ - bin/setup
157
+ - bin/test
158
+ - gemfiles/.bundle/config
159
+ - gemfiles/rails_6.gemfile
160
+ - gemfiles/rails_7.gemfile
161
+ - lib/sequel/extensions/sequel_instrumentation.rb
162
+ - lib/sequel/plugins/pretty_print.rb
163
+ - lib/sequelize-rails.rb
164
+ - lib/sequelize_rails.rb
165
+ - lib/sequelize_rails/db_console.rb
166
+ - lib/sequelize_rails/generators/application_record/application_record_generator.rb
167
+ - lib/sequelize_rails/generators/application_record/templates/application_record.rb.tt
168
+ - lib/sequelize_rails/generators/migration/migration_generator.rb
169
+ - lib/sequelize_rails/generators/migration/templates/migration.rb.erb
170
+ - lib/sequelize_rails/generators/model/model_generator.rb
171
+ - lib/sequelize_rails/railtie.rb
172
+ - lib/sequelize_rails/railties/controller_runtime.rb
173
+ - lib/sequelize_rails/railties/log_subscriber.rb
174
+ - lib/sequelize_rails/translation_support.rb
175
+ - lib/sequelize_rails/version.rb
176
+ - lib/tasks.rake
177
+ - sequelize-rails.gemspec
178
+ - sig/sequelize_rails.rbs
179
+ homepage: https://github.com/kenaniah/sequelize-rails
180
+ licenses:
181
+ - MIT
182
+ metadata:
183
+ allowed_push_host: https://rubygems.org/
184
+ homepage_uri: https://github.com/kenaniah/sequelize-rails
185
+ source_code_uri: https://github.com/kenaniah/sequelize-rails
186
+ changelog_uri: https://github.com/kenaniah/sequelize-rails/blob/main/CHANGELOG.md
187
+ post_install_message:
188
+ rdoc_options: []
189
+ require_paths:
190
+ - lib
191
+ required_ruby_version: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: 2.6.0
196
+ required_rubygems_version: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ requirements: []
202
+ rubygems_version: 3.2.33
203
+ signing_key:
204
+ specification_version: 4
205
+ summary: A gem for using Sequel with Rails natively.
206
+ test_files: []