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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f2ac7b8599723e023de076d8fc62821ede76d464
4
- data.tar.gz: ad7a63c1e1870fdacd2368537f75edac40d4e9f0
3
+ metadata.gz: 1806296fef46316305e648f51c31a3934d511be8
4
+ data.tar.gz: 4ae4555629a1e049acf0c702d9181d0f56b266e4
5
5
  SHA512:
6
- metadata.gz: f86af039695928eb8396def84a17a5e5b396795fb06fe77859753b587fcd62bde1328a6fb3c2c2f833927a0040dfbaa1145da2ac1363967450b428e071c9dfe0
7
- data.tar.gz: cdd395bde546846f181254d74aeccbc9d9aecd6a607e930f82fe6a6741f10cdf14082f7d9a96ae469382c238514b58a0cdb1480bd8a3e1d9835fd1efa4a12f51
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/init_injection"
7
+ require "sqlite_ext/db_method_prepends"
8
8
 
9
9
  end
10
10
 
11
11
  class SQLite3::Database
12
- prepend SqliteExt::InitInjection
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
@@ -1,3 +1,3 @@
1
1
  module SqliteExt
2
- VERSION = '1.2.0'
2
+ VERSION = '1.3.0'
3
3
  end
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.2.0
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/init_injection.rb
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