sqlite3_ar_regexp 1.0.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.
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/README.markdown +12 -0
- data/Rakefile +1 -0
- data/changelog.markdown +2 -0
- data/lib/sqlite3_ar_regexp.rb +6 -0
- data/lib/sqlite3_ar_regexp/extension.rb +21 -0
- data/lib/sqlite3_ar_regexp/version.rb +3 -0
- data/spec/regexp_spec.rb +17 -0
- data/spec/test.sqlite3 +0 -0
- data/sqlite3_ar_regexp.gemspec +26 -0
- metadata +108 -0
data/Gemfile
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# SQLite3 ActiveRecord REGEXP
|
2
|
+
This adds REGEXP support to SQLite3 in ActiveRecord.
|
3
|
+
|
4
|
+
## Installation
|
5
|
+
$ gem install sqlite3_ar_regexp
|
6
|
+
|
7
|
+
If you're using Bundler, add this to your Gemfile.
|
8
|
+
|
9
|
+
gem 'sqlite3_ar_regexp'
|
10
|
+
|
11
|
+
## Credits
|
12
|
+
The original code for this was done by Joe Yates and can be found at http://titusd.co.uk/2010/01/31/regular-expressions-in-sqlite/.
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/changelog.markdown
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# borrowed from http://titusd.co.uk/2010/01/31/regular-expressions-in-sqlite/
|
2
|
+
|
3
|
+
module SQLite3ARRegexp
|
4
|
+
module Extension
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
def initialize(db, logger, config)
|
9
|
+
super
|
10
|
+
db.create_function('regexp', 2) do |func, pattern, expression|
|
11
|
+
regexp = Regexp.new(pattern.to_s, Regexp::IGNORECASE)
|
12
|
+
if expression.to_s.match(regexp)
|
13
|
+
func.result = 1
|
14
|
+
else
|
15
|
+
func.result = 0
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/spec/regexp_spec.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'sqlite3_ar_regexp'
|
2
|
+
|
3
|
+
describe 'SQLite3ARRegexp::Extension' do
|
4
|
+
before(:all) do
|
5
|
+
ActiveRecord::Base.establish_connection(
|
6
|
+
:adapter => 'sqlite3',
|
7
|
+
:database => 'spec/test.sqlite3'
|
8
|
+
)
|
9
|
+
|
10
|
+
class NobelPrizeWinner < ActiveRecord::Base
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should give ActiveRecord::ConnectionAdapters::SQLite3Adapter "REGEXP" support' do
|
15
|
+
NobelPrizeWinner.where('first_name REGEXP "al|ma"').count.should == 3
|
16
|
+
end
|
17
|
+
end
|
data/spec/test.sqlite3
ADDED
Binary file
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "sqlite3_ar_regexp/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "sqlite3_ar_regexp"
|
7
|
+
s.version = SQLite3ARRegexp::VERSION
|
8
|
+
s.authors = ["Aaron Lasseigne"]
|
9
|
+
s.email = ["alasseigne@sei-mi.com"]
|
10
|
+
s.homepage = "https://github.com/sei-mi/sqlite3_ar_regexp"
|
11
|
+
s.summary = %q{Adds REGEXP support for SQLite3 in ActiveRecord.}
|
12
|
+
s.description = %q{Adds REGEXP support for SQLite3 in ActiveRecord.}
|
13
|
+
|
14
|
+
s.rubyforge_project = "sqlite3_ar_regexp"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_runtime_dependency 'sqlite3'
|
22
|
+
s.add_runtime_dependency 'activerecord', '~> 3.0'
|
23
|
+
|
24
|
+
s.add_development_dependency 'rspec'
|
25
|
+
s.add_development_dependency 'rake'
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sqlite3_ar_regexp
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Aaron Lasseigne
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-11-11 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sqlite3
|
16
|
+
requirement: &70304124621440 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70304124621440
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activerecord
|
27
|
+
requirement: &70304124620940 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70304124620940
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &70304124620520 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70304124620520
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: &70304124620060 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70304124620060
|
58
|
+
description: Adds REGEXP support for SQLite3 in ActiveRecord.
|
59
|
+
email:
|
60
|
+
- alasseigne@sei-mi.com
|
61
|
+
executables: []
|
62
|
+
extensions: []
|
63
|
+
extra_rdoc_files: []
|
64
|
+
files:
|
65
|
+
- .gitignore
|
66
|
+
- Gemfile
|
67
|
+
- README.markdown
|
68
|
+
- Rakefile
|
69
|
+
- changelog.markdown
|
70
|
+
- lib/sqlite3_ar_regexp.rb
|
71
|
+
- lib/sqlite3_ar_regexp/extension.rb
|
72
|
+
- lib/sqlite3_ar_regexp/version.rb
|
73
|
+
- spec/regexp_spec.rb
|
74
|
+
- spec/test.sqlite3
|
75
|
+
- sqlite3_ar_regexp.gemspec
|
76
|
+
homepage: https://github.com/sei-mi/sqlite3_ar_regexp
|
77
|
+
licenses: []
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
hash: 1598588507831330270
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
hash: 1598588507831330270
|
100
|
+
requirements: []
|
101
|
+
rubyforge_project: sqlite3_ar_regexp
|
102
|
+
rubygems_version: 1.8.6
|
103
|
+
signing_key:
|
104
|
+
specification_version: 3
|
105
|
+
summary: Adds REGEXP support for SQLite3 in ActiveRecord.
|
106
|
+
test_files:
|
107
|
+
- spec/regexp_spec.rb
|
108
|
+
- spec/test.sqlite3
|