sqlite_ext 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/sqlite_ext.rb +2 -2
- data/lib/sqlite_ext/db_method_prepends.rb +48 -0
- data/lib/sqlite_ext/version.rb +1 -1
- metadata +2 -2
- data/lib/sqlite_ext/init_injection.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1806296fef46316305e648f51c31a3934d511be8
|
4
|
+
data.tar.gz: 4ae4555629a1e049acf0c702d9181d0f56b266e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f68fee690742d66fd5b164ff0e0aa57cc1da3a10de38b4e963f59c9fae1e3d357ad776fd8e090ca09a8ca22e27760b845ab3a135efb0b474acc3f45b5714ba4
|
7
|
+
data.tar.gz: 3aa7004a593da3578ab7218658b06feea7f30faf62a023d4e2dcd424d01b4c0cf8390ad57171ce9c30af509571968a2c6f6ef88b16b2f861531db92a96d5b79b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
### 1.3.0 - 2016-05-25
|
2
|
+
* Features
|
3
|
+
* Adds `SQLite3::Database.function_created?` to check whether a
|
4
|
+
function with a given name has been created on the target instance.
|
5
|
+
|
1
6
|
### 1.2.0 - 2016-05-25
|
2
7
|
* Enhancements
|
3
8
|
* `SqliteExt.register_ruby_math` no longer re-registers functions when
|
data/lib/sqlite_ext.rb
CHANGED
@@ -4,12 +4,12 @@ require "sqlite3"
|
|
4
4
|
module SqliteExt
|
5
5
|
|
6
6
|
require "sqlite_ext/version"
|
7
|
-
require "sqlite_ext/
|
7
|
+
require "sqlite_ext/db_method_prepends"
|
8
8
|
|
9
9
|
end
|
10
10
|
|
11
11
|
class SQLite3::Database
|
12
|
-
prepend SqliteExt::
|
12
|
+
prepend SqliteExt::DbMethodPrepends
|
13
13
|
end
|
14
14
|
|
15
15
|
module SqliteExt
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'set'
|
2
|
+
|
3
|
+
module SqliteExt
|
4
|
+
|
5
|
+
module DbMethodPrepends
|
6
|
+
|
7
|
+
# Adds functions registered with SqliteExt to each new
|
8
|
+
# instance before it is returned from `.new` or `.open`or is
|
9
|
+
# passed to the given block.
|
10
|
+
def initialize(file, *other_init_args)
|
11
|
+
if block_given?
|
12
|
+
super file, *other_init_args do
|
13
|
+
SqliteExt.enhance_db_session self
|
14
|
+
yield self
|
15
|
+
end
|
16
|
+
else
|
17
|
+
super
|
18
|
+
SqliteExt.enhance_db_session self
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_function(name, arity, *other_args, &block)
|
23
|
+
super
|
24
|
+
created_function_names << name_key_from(name)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Given a name, returns true if a function of that hane has
|
28
|
+
# been created on the target instance. The name lookup is
|
29
|
+
# case-insensitive, and either a string or a symbol may be
|
30
|
+
# supplied.
|
31
|
+
def function_created?(name)
|
32
|
+
name_key = name_key_from(name)
|
33
|
+
created_function_names.include?(name_key)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def name_key_from(name)
|
39
|
+
"#{name}".upcase
|
40
|
+
end
|
41
|
+
|
42
|
+
def created_function_names
|
43
|
+
@created_function_names ||= Set.new
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
data/lib/sqlite_ext/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqlite_ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Jorgensen
|
@@ -85,7 +85,7 @@ files:
|
|
85
85
|
- bin/console
|
86
86
|
- bin/setup
|
87
87
|
- lib/sqlite_ext.rb
|
88
|
-
- lib/sqlite_ext/
|
88
|
+
- lib/sqlite_ext/db_method_prepends.rb
|
89
89
|
- lib/sqlite_ext/version.rb
|
90
90
|
- sqlite_ext.gemspec
|
91
91
|
homepage: https://github.com/stevecj/sqlite_ext
|
@@ -1,24 +0,0 @@
|
|
1
|
-
module SqliteExt
|
2
|
-
|
3
|
-
# This module is prepended to `SQLite3::Database` to inject new
|
4
|
-
# initialization behavior.
|
5
|
-
module InitInjection
|
6
|
-
|
7
|
-
# Adds functions registered with SqliteExt to each new
|
8
|
-
# instance before it is returned from `.new` or `.open`or is
|
9
|
-
# passed to the given block.
|
10
|
-
def initialize(file, *other_init_args)
|
11
|
-
if block_given?
|
12
|
-
super file, *other_init_args do
|
13
|
-
SqliteExt.enhance_db_session self
|
14
|
-
yield self
|
15
|
-
end
|
16
|
-
else
|
17
|
-
super
|
18
|
-
SqliteExt.enhance_db_session self
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|