sqlite_ext 1.2.0 → 1.3.0

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
  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