mysql2_query_filter 0.0.7 → 0.1.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: c513f2df9750b6025486434600dbae552d94beee
4
- data.tar.gz: 0be4a4270f245156dd2c6459b77ff6d2c77daaf2
3
+ metadata.gz: 0d022676c32d776a551477f215d2cf8497bf1f0c
4
+ data.tar.gz: 34358b98e6940db5055810320e4d2d477f22bf63
5
5
  SHA512:
6
- metadata.gz: 205205f2f6caae4c965283c5ab85285f5b9d7887012786db1c1f91f095da5bc82b3029d676d87449e739271a8d293237e7b66cffeeac19db2bc069359a45e8c4
7
- data.tar.gz: 3501a15686fd83490f91073f40461dc1301e9e1c60c10d85914b858856d395a8f06a96aa52efc0e9c923d437d070495d867b77c7b7525c08e10744ac03a54254
6
+ metadata.gz: 1b5a352c96146904d8dfe339957bd2cdbbc1bc07b6b81c829631074d48d56767a351175549d4936a8a9620fce0fc86008c07ec276f7f119f7b35d2a6d087d717
7
+ data.tar.gz: 66584176d34607f657f8d88268f8d6a3d78f994f4244538a70e068d6210c32793624303aea7fae03ce6b9cbd1885b740cb7a96daf604fbd71fef9eec138fbfd5
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --require spec_helper
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 2.1.5
5
+ - 2.2.1
6
+ script:
7
+ - bundle install
8
+ - bundle exec rake
data/README.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  Filtering framework for [Mysql2](https://github.com/brianmario/mysql2).
4
4
 
5
+ [![Gem Version](https://badge.fury.io/rb/mysql2_query_filter.svg)](http://badge.fury.io/rb/mysql2_query_filter)
6
+ [![Build Status](https://travis-ci.org/winebarrel/mysql2_query_filter.svg?branch=master)](https://travis-ci.org/winebarrel/mysql2_query_filter)
7
+
5
8
  ## Installation
6
9
 
7
10
  Add this line to your application's Gemfile:
@@ -23,7 +26,7 @@ Or install it yourself as:
23
26
  ```ruby
24
27
  require 'mysql2_query_filter'
25
28
 
26
- class MyFilter < Mysql2QueryFilter::Plugin::Filter
29
+ class MyFilter < Mysql2QueryFilter::Base
27
30
  def filter(sql, query_options)
28
31
  p sql
29
32
  p query_options
data/Rakefile CHANGED
@@ -1,2 +1,5 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
2
3
 
4
+ RSpec::Core::RakeTask.new('spec')
5
+ task :default => :spec
@@ -2,9 +2,9 @@ require 'mysql2'
2
2
 
3
3
  require 'mysql2_query_filter/version'
4
4
 
5
+ require 'mysql2_query_filter/base'
5
6
  require 'mysql2_query_filter/mysql2_client_ext'
6
7
  require 'mysql2_query_filter/plugin'
7
- require 'mysql2_query_filter/plugin/filter'
8
8
  require 'mysql2_query_filter/query_filter'
9
9
 
10
10
  Mysql2::Client.class_eval do
@@ -30,4 +30,12 @@ module Mysql2QueryFilter
30
30
  def self.disable!
31
31
  @@enabled = false
32
32
  end
33
+
34
+ def self.disable!
35
+ @@enabled = false
36
+ end
37
+
38
+ def self.clear!
39
+ @@query_filter.clear!
40
+ end
33
41
  end
@@ -1,4 +1,4 @@
1
- class Mysql2QueryFilter::Plugin::Filter
1
+ class Mysql2QueryFilter::Base
2
2
  def initialize(options)
3
3
  @options = options.dup
4
4
  end
@@ -9,7 +9,7 @@ class Mysql2QueryFilter::QueryFilter
9
9
  end
10
10
 
11
11
  def add(filter_class, options = {})
12
- unless filter_class < Mysql2QueryFilter::Plugin::Filter
12
+ unless filter_class < Mysql2QueryFilter::Base
13
13
  raise "Invalid plug-in has been appended: #{filter_class}"
14
14
  end
15
15
 
@@ -21,4 +21,8 @@ class Mysql2QueryFilter::QueryFilter
21
21
  fltr.filter(sql, query_options)
22
22
  end
23
23
  end
24
+
25
+ def clear!
26
+ @filters.clear
27
+ end
24
28
  end
@@ -1,3 +1,3 @@
1
1
  module Mysql2QueryFilter
2
- VERSION = '0.0.7'
2
+ VERSION = '0.1.0'
3
3
  end
@@ -21,4 +21,5 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'mysql2'
22
22
  spec.add_development_dependency 'bundler'
23
23
  spec.add_development_dependency 'rake'
24
+ spec.add_development_dependency 'rspec', '>= 3.0.0'
24
25
  end
@@ -0,0 +1,9 @@
1
+ module Mysql2QueryFilter::Plugin
2
+ class Test < Mysql2QueryFilter::Base
3
+ Mysql2QueryFilter::Plugin.register(:test_plugin, self)
4
+
5
+ def filter(sql, query_options)
6
+ sql << ' through plugin'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,42 @@
1
+ describe Mysql2QueryFilter do
2
+ let(:client) { Mysql2::Client.new }
3
+
4
+ context 'when using filters' do
5
+ let(:filter1) do
6
+ Class.new(Mysql2QueryFilter::Base) do
7
+ def filter(sql, query_options); sql << ' through filter1'; end
8
+ end
9
+ end
10
+
11
+ let(:filter2) do
12
+ Class.new(Mysql2QueryFilter::Base) do
13
+ def filter(sql, query_options); sql << ' through filter2'; end
14
+ end
15
+ end
16
+
17
+ before do
18
+ Mysql2QueryFilter.configure do |filter|
19
+ filter.add filter1
20
+ filter.add filter2
21
+ end
22
+ end
23
+
24
+ it do
25
+ expect(client).to receive(:query_without_filter).with('select 1 through filter1 through filter2')
26
+ client.query('select 1')
27
+ end
28
+ end
29
+
30
+ context 'when using a plug-in' do
31
+ before do
32
+ Mysql2QueryFilter.configure do |filter|
33
+ filter.plugin :test_plugin
34
+ end
35
+ end
36
+
37
+ it do
38
+ expect(client).to receive(:query_without_filter).with('select 1 through plugin')
39
+ client.query('select 1')
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,11 @@
1
+ require 'mysql2_query_filter'
2
+
3
+ RSpec.configure do |config|
4
+ config.before(:all) do
5
+ Mysql2QueryFilter.enable!
6
+ end
7
+
8
+ config.before(:each) do
9
+ Mysql2QueryFilter.clear!
10
+ end
11
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mysql2_query_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-10 00:00:00.000000000 Z
11
+ date: 2015-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mysql2
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 3.0.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.0
55
69
  description: Filtering framework for Mysql2.
56
70
  email:
57
71
  - sgwr_dts@yahoo.co.jp
@@ -60,18 +74,22 @@ extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
76
  - .gitignore
77
+ - .rspec
78
+ - .travis.yml
63
79
  - Gemfile
64
80
  - LICENSE.txt
65
81
  - README.md
66
82
  - Rakefile
67
83
  - lib/mysql2_query_filter.rb
84
+ - lib/mysql2_query_filter/base.rb
68
85
  - lib/mysql2_query_filter/mysql2_client_ext.rb
69
86
  - lib/mysql2_query_filter/plugin.rb
70
- - lib/mysql2_query_filter/plugin/filter.rb
71
- - lib/mysql2_query_filter/plugins.rb
72
87
  - lib/mysql2_query_filter/query_filter.rb
73
88
  - lib/mysql2_query_filter/version.rb
74
89
  - mysql2_query_filter.gemspec
90
+ - spec/mysql2_query_filter/plugin/test_plugin.rb
91
+ - spec/mysql2_query_filter_spec.rb
92
+ - spec/spec_helper.rb
75
93
  homepage: https://github.com/winebarrel/mysql2_query_filter
76
94
  licenses:
77
95
  - MIT
@@ -96,4 +114,7 @@ rubygems_version: 2.0.14
96
114
  signing_key:
97
115
  specification_version: 4
98
116
  summary: Filtering framework for Mysql2.
99
- test_files: []
117
+ test_files:
118
+ - spec/mysql2_query_filter/plugin/test_plugin.rb
119
+ - spec/mysql2_query_filter_spec.rb
120
+ - spec/spec_helper.rb
@@ -1,27 +0,0 @@
1
- class Mysql2QueryFilter::Plugins
2
- @@plugins = {}
3
-
4
- def self.register(name, klass)
5
- name = name.to_s
6
-
7
- if @@plugins.has_key?(name)
8
- raise "Plugin has already been registered: #{name}"
9
- end
10
-
11
- @@plugins[name] = klass
12
- end
13
-
14
- def self.[](name)
15
- name = name.to_s
16
-
17
- require "mysql2_query_filter/plugin/#{name}"
18
-
19
- plugin = @@plugins[name]
20
-
21
- unless plugin
22
- raise "Plugin is not found: #{name}"
23
- end
24
-
25
- plugin
26
- end
27
- end