sqlpkg 0.1.1-x86_64-linux → 0.2.0-x86_64-linux

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: 72469641de420cedc2cda5f13efa63919512c94f5848df77edbc82c4b7e1b98c
4
- data.tar.gz: 47d388db8bb2d40e9e25d970acd01d7b1075d730891af9caae34a97cf876b3a0
3
+ metadata.gz: 6cf3633f1a63177aa1df5aedb22a9966bc027652205435a38c29800b9344e7dd
4
+ data.tar.gz: 436c06eef3be069eaa8092980676582798b889c093587aeee437a81fb3e8bbca
5
5
  SHA512:
6
- metadata.gz: f9ef11983c64193061a7c27f608208e71bed0fc96e82ed2c4dbe39a9ae73d186f59e6c3772b4066659c5881a3434d1f264d956205ec1a1aebfd47e41f358d904
7
- data.tar.gz: 7d970fdd91a9f24f052a573ba6cbd5f1bd9d6fcd65c0523929b48660e6946645b5e20065ce2bcdeb53b525b4209062e5f3526efd0de92b196d1bb784121e5358
6
+ metadata.gz: 88cfc505c675f710d6a0af78cadf4e7bd8c97cfd2bf6184b94d5088e4f7e50235c7ffc081364399195caa85491ac4cf52b5c3a7e7c7d9008f049b79e9d4daad0
7
+ data.tar.gz: b76901bf1cf92a1e15e27b59a0e36cdd01d0085fbe0cdfa162fcc8c3b67a95881e40b71ea7cf4eba76066f76737273716e58da8d88c7d0cb560bc2bc71ad12c4
data/README.md CHANGED
@@ -12,6 +12,22 @@ If bundler is not being used to manage dependencies, install the gem by executin
12
12
 
13
13
  $ gem install sqlpkg
14
14
 
15
+ After installing the gem, run the installer:
16
+
17
+ $ rails generate sqlpkg:install
18
+
19
+ The installer does three things:
20
+
21
+ 1. creates an empty `.sqlpkg/` directory, which ensures that `sqlpkg` will run in "project scope" and not "global scope" (see [the `sqlpkg-cli` README](https://github.com/nalgeon/sqlpkg-cli#project-vs-global-scope) for more information)
22
+ 2. creates an empty `sqlpkg.lock` file, which `sqlpkg` will use to store information about the installed packages (see [the `sqlpkg-cli` README](https://github.com/nalgeon/sqlpkg-cli#lockfile) for more information)
23
+ 3. creates an initializer file at `config/initializers/sqlpkg.rb` which will patch the `SQLite3Adapter` to automatically load the extensions installed in the `.sqlpkg/` directory whenever the database is opened
24
+
25
+ Once properly integrated into your Rails application, you can install any extension listed on [the `sqlpkg` registry](https://sqlpkg.org/all/) by executing:
26
+
27
+ $ bundle exec sqlpkg install PACKAGE_IDENTIFIER
28
+
29
+ When exploring the [the `sqlpkg` registry](https://sqlpkg.org/all/), the `PACKAGE_IDENTIFIER` needed to install an extension is the title found in the cards, always in `owner/name` format.
30
+
15
31
  This gem wraps the standalone executable version of the [sqlpkg-cli](https://github.com/nalgeon/sqlpkg-cli#download-and-install-preferred-method). These executables are platform specific, so there are actually separate underlying gems per platform, but the correct gem will automatically be picked for your platform.
16
32
 
17
33
  Supported platforms are:
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators/base"
4
+
5
+ module Sqlpkg
6
+ module Generators
7
+ class InstallGenerator < ::Rails::Generators::Base
8
+ source_root File.expand_path("templates", __dir__)
9
+
10
+ def ensure_sqlpkg_project_scope_directory
11
+ empty_directory ".sqlpkg"
12
+ end
13
+
14
+ def create_empty_sqlpkg_lockfile
15
+ create_file "sqlpkg.lock"
16
+ end
17
+
18
+ def copy_initializer_file
19
+ template "initializer.rb", "config/initializers/sqlpkg.rb"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ module SqlpkgLoader
2
+ def configure_connection
3
+ super
4
+
5
+ @raw_connection.enable_load_extension(true)
6
+ Dir.glob(".sqlpkg/**/*.{dll,so,dylib}") do |extension_path|
7
+ @raw_connection.load_extension(extension_path)
8
+ end
9
+ @raw_connection.enable_load_extension(false)
10
+ end
11
+ end
12
+
13
+ ActiveSupport.on_load(:active_record_sqlite3adapter) do
14
+ prepend SqlpkgLoader
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/railtie"
4
+
5
+ module Sqlpkg
6
+ class Railtie < ::Rails::Railtie
7
+ # Load the `sqlpkg:install` generator into the host Rails app
8
+ generators do
9
+ require_relative "generators/sqlpkg/install_generator"
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module Sqlpkg
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqlpkg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Stephen Margheim
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '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: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  description:
28
56
  email:
29
57
  - stephen.margheim@gmail.com
@@ -40,6 +68,9 @@ files:
40
68
  - exe/x86_64-linux/sqlpkg
41
69
  - lib/sqlpkg.rb
42
70
  - lib/sqlpkg/commands.rb
71
+ - lib/sqlpkg/generators/sqlpkg/install_generator.rb
72
+ - lib/sqlpkg/generators/sqlpkg/templates/initializer.rb
73
+ - lib/sqlpkg/railtie.rb
43
74
  - lib/sqlpkg/upstream.rb
44
75
  - lib/sqlpkg/version.rb
45
76
  homepage: https://github.com/fractaledmind/sqlpkg-ruby