sqlite_ext 1.4.0 → 1.5.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 +4 -0
- data/lib/sqlite_ext.rb +11 -4
- data/lib/sqlite_ext/db_auto_creates_registered_functions.rb +46 -0
- data/lib/sqlite_ext/db_tracks_created_functions.rb +49 -0
- data/lib/sqlite_ext/version.rb +1 -1
- data/sqlite_ext.gemspec +0 -2
- metadata +5 -4
- data/lib/sqlite_ext/db_method_prepends.rb +0 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd7b308ce26c7f7a13835a8571ff9a85e109c2f2
|
4
|
+
data.tar.gz: 0acafadc5726755b082b72499cfde2158bcbac1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb2f0156cd58b075f3c514cc65add907dc005bcafa321e9e4dcf65fe089142b473e37606d8b6fa9fbf56806bee1f45b2089099f747faa7ad1e73aa751bd58e80
|
7
|
+
data.tar.gz: 0fa8d6a00d9f7d9cd93d2321f13002b2ac34bd6ebd36276b41a6e8212d75cb3613800295b93beed834d09d7d66f3a1ee61b8307488062c20b26ecece9ea7429c
|
data/CHANGELOG.md
CHANGED
data/lib/sqlite_ext.rb
CHANGED
@@ -2,14 +2,21 @@ gem "sqlite3"
|
|
2
2
|
require "sqlite3"
|
3
3
|
|
4
4
|
module SqliteExt
|
5
|
-
|
6
5
|
require "sqlite_ext/version"
|
7
|
-
require "sqlite_ext/
|
8
|
-
|
6
|
+
require "sqlite_ext/db_tracks_created_functions"
|
7
|
+
require "sqlite_ext/db_auto_creates_registered_functions"
|
9
8
|
end
|
10
9
|
|
11
10
|
class SQLite3::Database
|
12
|
-
|
11
|
+
if RUBY_VERSION.split('.').first.to_i >= 2
|
12
|
+
puts 'Ruby >= 2'
|
13
|
+
prepend SqliteExt::DbTracksCreatedFunctions
|
14
|
+
prepend SqliteExt::DbAutoCreatesRegisteredFunctions
|
15
|
+
else
|
16
|
+
puts 'Ruby < 2'
|
17
|
+
include SqliteExt::DbTracksCreatedFunctions
|
18
|
+
include SqliteExt::DbAutoCreatesRegisteredFunctions
|
19
|
+
end
|
13
20
|
end
|
14
21
|
|
15
22
|
module SqliteExt
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'set'
|
2
|
+
|
3
|
+
module SqliteExt
|
4
|
+
|
5
|
+
module DbAutoCreatesRegisteredFunctions
|
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
|
+
if RUBY_VERSION.split('.').first.to_i >= 2
|
11
|
+
|
12
|
+
def initialize(file, *other_init_args)
|
13
|
+
if block_given?
|
14
|
+
super file, *other_init_args do
|
15
|
+
SqliteExt.enhance_db_session self
|
16
|
+
yield self
|
17
|
+
end
|
18
|
+
else
|
19
|
+
super
|
20
|
+
SqliteExt.enhance_db_session self
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
else
|
25
|
+
|
26
|
+
def self.included(other)
|
27
|
+
orig_initialize = other.instance_method(:initialize)
|
28
|
+
|
29
|
+
other.send :define_method, :initialize, proc{ |file, *other_init_args, &block|
|
30
|
+
if block
|
31
|
+
orig_initialize.bind(self).call file, *other_init_args do
|
32
|
+
SqliteExt.enhance_db_session self
|
33
|
+
block.call self
|
34
|
+
end
|
35
|
+
else
|
36
|
+
orig_initialize.bind(self).call file, *other_init_args
|
37
|
+
SqliteExt.enhance_db_session self
|
38
|
+
end
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'set'
|
2
|
+
|
3
|
+
module SqliteExt
|
4
|
+
|
5
|
+
module DbTracksCreatedFunctions
|
6
|
+
|
7
|
+
# Adds recording of names of created functions to
|
8
|
+
# `create_function`.
|
9
|
+
if RUBY_VERSION.split('.').first.to_i >= 2
|
10
|
+
|
11
|
+
def create_function(name, arity, *other_args, &block)
|
12
|
+
super
|
13
|
+
created_function_names << name_key_from(name)
|
14
|
+
end
|
15
|
+
|
16
|
+
else
|
17
|
+
|
18
|
+
def self.included(other)
|
19
|
+
orig_create_function = other.instance_method(:create_function)
|
20
|
+
other.send :define_method, :create_function, proc{ |name, arity, *other_args, &block|
|
21
|
+
orig_create_function.bind(self).call name, arity, *other_args, &block
|
22
|
+
created_function_names << name_key_from(name)
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
# Given a name, returns true if a function of that hane has
|
29
|
+
# been created on the target instance. The name lookup is
|
30
|
+
# case-insensitive, and either a string or a symbol may be
|
31
|
+
# supplied.
|
32
|
+
def function_created?(name)
|
33
|
+
name_key = name_key_from(name)
|
34
|
+
created_function_names.include?(name_key)
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def name_key_from(name)
|
40
|
+
"#{name}".upcase
|
41
|
+
end
|
42
|
+
|
43
|
+
def created_function_names
|
44
|
+
@created_function_names ||= Set.new
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/lib/sqlite_ext/version.rb
CHANGED
data/sqlite_ext.gemspec
CHANGED
@@ -19,8 +19,6 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.required_ruby_version = '>= 2.0'
|
23
|
-
|
24
22
|
spec.add_dependency "sqlite3", "~> 1.3"
|
25
23
|
|
26
24
|
spec.add_development_dependency "bundler", "~> 1.12"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqlite_ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Jorgensen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqlite3
|
@@ -85,7 +85,8 @@ files:
|
|
85
85
|
- bin/console
|
86
86
|
- bin/setup
|
87
87
|
- lib/sqlite_ext.rb
|
88
|
-
- lib/sqlite_ext/
|
88
|
+
- lib/sqlite_ext/db_auto_creates_registered_functions.rb
|
89
|
+
- lib/sqlite_ext/db_tracks_created_functions.rb
|
89
90
|
- lib/sqlite_ext/version.rb
|
90
91
|
- sqlite_ext.gemspec
|
91
92
|
homepage: https://github.com/stevecj/sqlite_ext
|
@@ -100,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
101
|
requirements:
|
101
102
|
- - ">="
|
102
103
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
104
|
+
version: '0'
|
104
105
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
106
|
requirements:
|
106
107
|
- - ">="
|
@@ -1,48 +0,0 @@
|
|
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
|