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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e99ee0f6c66c7e55e973b02d7a9622f79b58da81
4
- data.tar.gz: faede6051495e25fa791dcd9f8b9d121d52289d3
3
+ metadata.gz: bd7b308ce26c7f7a13835a8571ff9a85e109c2f2
4
+ data.tar.gz: 0acafadc5726755b082b72499cfde2158bcbac1b
5
5
  SHA512:
6
- metadata.gz: 61b01e63fa525cc1dde7f9734299fb7bd7b358620a3a2e32dadebf779a7cdb2ba66c255b0a7da2ed173a4547035ecc80fb5727ccb485046820fb5922fc858e73
7
- data.tar.gz: f31a9220f5f51d89d6888c142d37ba37ebbed08c118f76ef5081fbd30eedc0a4f253b3864086d3db8cd22414445cdb77b2d3c0678c92682f621c34c3d5364df2
6
+ metadata.gz: cb2f0156cd58b075f3c514cc65add907dc005bcafa321e9e4dcf65fe089142b473e37606d8b6fa9fbf56806bee1f45b2089099f747faa7ad1e73aa751bd58e80
7
+ data.tar.gz: 0fa8d6a00d9f7d9cd93d2321f13002b2ac34bd6ebd36276b41a6e8212d75cb3613800295b93beed834d09d7d66f3a1ee61b8307488062c20b26ecece9ea7429c
@@ -1,3 +1,7 @@
1
+ ### 1.5.0 - 2016-05-26
2
+ * Enhancements
3
+ * Now works with Ruby versions prior to 2.x.
4
+
1
5
  ### 1.4.0 - 2016-05-26
2
6
  * Enhancements
3
7
  * `SqliteExt.register_ruby_math` now also registers `pi`, `e`, `mod`,
@@ -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/db_method_prepends"
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
- prepend SqliteExt::DbMethodPrepends
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
@@ -1,3 +1,3 @@
1
1
  module SqliteExt
2
- VERSION = '1.4.0'
2
+ VERSION = '1.5.0'
3
3
  end
@@ -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.0
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-26 00:00:00.000000000 Z
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/db_method_prepends.rb
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: '2.0'
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