sqlite_ext 1.4.0 → 1.5.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: 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