fuzzy_where 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +2 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +1 -0
- data/.simplecov +0 -0
- data/.travis.yml +24 -1
- data/CHANGELOG.md +9 -2
- data/MIT-LICENSE +1 -1
- data/README.md +20 -10
- data/fuzzy_where.gemspec +2 -3
- data/gemfiles/active_record_40.gemfile +7 -3
- data/gemfiles/active_record_41.gemfile +7 -3
- data/gemfiles/active_record_42.gemfile +7 -3
- data/lib/fuzzy_where/active_record_model_extension.rb +9 -4
- data/lib/fuzzy_where/config.rb +23 -20
- data/lib/fuzzy_where/fuzzy_derivation.rb +1 -1
- data/lib/fuzzy_where/fuzzy_relation_builder.rb +20 -1
- data/lib/fuzzy_where/predicate_membership_degree.rb +6 -9
- data/lib/fuzzy_where/version.rb +1 -1
- data/lib/generators/fuzzy_where/config_generator.rb +2 -2
- data/lib/generators/fuzzy_where/predicate_generator.rb +3 -2
- data/lib/generators/fuzzy_where/templates/fuzzy_where_config.rb +1 -1
- metadata +23 -9
- data/gemfiles/active_record_40.gemfile.lock +0 -97
- data/gemfiles/active_record_41.gemfile.lock +0 -95
- data/gemfiles/active_record_42.gemfile.lock +0 -116
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51471d96225661d9babb08615f40728df70476ae
|
4
|
+
data.tar.gz: 02b0af8e7efcbe6c982c3763eb772dfbd0b0b5f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d70169d28a6617c52b26e2612522e4160a693d43c1b10d09b12a5ff4d657be86f9ec0d313c2485bd001dd25ef53decb26a98361b01dd79b2161139490d5a3800
|
7
|
+
data.tar.gz: 241f22537ae065c72d1ec2e62a229098a0223a001417b3c38cc936cb365531de153b76d4ea18ca3c1c9fc65e0affb63e644b0e2f3d8f2c1807cb585cee9723f3
|
data/.codeclimate.yml
ADDED
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/.gitignore
CHANGED
data/.simplecov
ADDED
File without changes
|
data/.travis.yml
CHANGED
@@ -1,3 +1,26 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 2.
|
3
|
+
- 2.0.0
|
4
|
+
- 2.1
|
5
|
+
- 2.2.3
|
6
|
+
- 2.3.0
|
7
|
+
- ruby-head
|
8
|
+
- jruby
|
9
|
+
- jruby-head
|
10
|
+
|
11
|
+
gemfile:
|
12
|
+
- gemfiles/active_record_40.gemfile
|
13
|
+
- gemfiles/active_record_41.gemfile
|
14
|
+
- gemfiles/active_record_42.gemfile
|
15
|
+
|
16
|
+
sudo: false
|
17
|
+
|
18
|
+
script: 'bundle exec rake spec'
|
19
|
+
|
20
|
+
cache: bundler
|
21
|
+
|
22
|
+
matrix:
|
23
|
+
allow_failures:
|
24
|
+
- rvm: ruby-head
|
25
|
+
- rvm: jruby-head
|
26
|
+
fast_finish: true
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
###
|
1
|
+
### master
|
2
|
+
|
3
|
+
### 0.6.0 - 2016-01-08
|
4
|
+
|
5
|
+
* Travis, coveralls and code climate integrations
|
6
|
+
* Add calibration option to `fuzzy_where`
|
7
|
+
|
8
|
+
### 0.5.0 - 2015-07-05
|
2
9
|
|
3
10
|
* enhancements
|
4
11
|
* add fuzzy predicate generator
|
@@ -9,7 +16,7 @@
|
|
9
16
|
### 0.1.4 - 2015-06-21
|
10
17
|
|
11
18
|
* bug fixes
|
12
|
-
*
|
19
|
+
* Fix query derivation
|
13
20
|
|
14
21
|
### 0.1.3 - 2015-06-09
|
15
22
|
|
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
# FuzzyWhere
|
2
|
+
[![Gem Version](https://badge.fury.io/rb/fuzzy_where.svg)](http://badge.fury.io/rb/fuzzy_where)
|
3
|
+
[![Build Status](https://travis-ci.org/koombea/fuzzy_where.svg?branch=master)](https://travis-ci.org/koombea/fuzzy_where)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/koombea/fuzzy_where/badges/gpa.svg)](https://codeclimate.com/github/koombea/fuzzy_where)
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/koombea/fuzzy_where/badge.svg?branch=master&service=github)](https://coveralls.io/github/koombea/fuzzy_where)
|
2
6
|
|
3
7
|
An `ActiveRecord` implementation of [SQLf](http://en.wikipedia.org/wiki/SQLf).
|
4
8
|
At this moment it allows you to load fuzzy definitions from a yaml file and use
|
5
|
-
them as
|
9
|
+
them as `WHERE` conditions. More features from SQLf will be added to this gem in future iterations.
|
6
10
|
|
7
11
|
## Installation
|
8
12
|
|
@@ -14,22 +18,28 @@ gem 'fuzzy_where'
|
|
14
18
|
|
15
19
|
And then execute:
|
16
20
|
|
17
|
-
|
21
|
+
```console
|
22
|
+
bundle
|
23
|
+
```
|
18
24
|
|
19
25
|
Or install it yourself as:
|
20
26
|
|
21
|
-
|
27
|
+
```console
|
28
|
+
gem install fuzzy_where
|
29
|
+
```
|
22
30
|
|
23
|
-
|
31
|
+
Finally generate the configuration files:
|
24
32
|
|
25
|
-
|
33
|
+
```console
|
34
|
+
rails generate fuzzy_where:config
|
35
|
+
```
|
26
36
|
|
27
37
|
## Usage
|
28
38
|
|
29
|
-
Fuzzy predicates are stored in `config/fuzzy_predicates.yml`. You can use a generator to populate
|
39
|
+
Fuzzy predicates are stored in `config/fuzzy_predicates.yml`. You can use a generator to populate this file.
|
30
40
|
|
31
41
|
```console
|
32
|
-
rails
|
42
|
+
rails generate fuzzy_where:predicate PREDICATE min core1 core2 max
|
33
43
|
```
|
34
44
|
|
35
45
|
Replace PREDICATE with the name you wish to use for you linguistic expression and set the values for the trapezoid function.
|
@@ -37,7 +47,7 @@ Replace PREDICATE with the name you wish to use for you linguistic expression an
|
|
37
47
|
### Example:
|
38
48
|
|
39
49
|
```console
|
40
|
-
rails
|
50
|
+
rails generate fuzzy_where:predicate young 10 15 20 25
|
41
51
|
```
|
42
52
|
|
43
53
|
Will produce:
|
@@ -51,7 +61,7 @@ young:
|
|
51
61
|
max: 25
|
52
62
|
```
|
53
63
|
|
54
|
-
Then you can use your definitions as
|
64
|
+
Then you can use your definitions as follows:
|
55
65
|
|
56
66
|
```ruby
|
57
67
|
Person.fuzzy_where(age: :young)
|
@@ -67,4 +77,4 @@ Person.fuzzy_where(age: :young)
|
|
67
77
|
|
68
78
|
## License
|
69
79
|
|
70
|
-
MIT License. Copyright 2015 Koombea. http://koombea.com
|
80
|
+
MIT License. Copyright 2015-2016 Koombea. http://koombea.com
|
data/fuzzy_where.gemspec
CHANGED
@@ -15,17 +15,16 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.license = 'MIT'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir = 'exe'
|
19
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
18
|
spec.require_paths = ['lib']
|
21
19
|
|
22
20
|
spec.add_dependency 'activesupport', '~> 4.0', '>= 4.0.0'
|
23
21
|
spec.add_dependency 'actionpack', '~> 4.0', '>= 4.0.0'
|
24
22
|
spec.add_dependency 'activerecord', '~> 4.0', '>= 4.0.0'
|
25
23
|
|
26
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
27
25
|
spec.add_development_dependency 'rake', '~> 10.0'
|
28
26
|
spec.add_development_dependency 'rspec', '~> 3.2', '>= 3.2.0'
|
27
|
+
spec.add_development_dependency 'coveralls', '~>0.8.0'
|
29
28
|
spec.add_development_dependency 'database_cleaner', '~> 1.4.1'
|
30
29
|
spec.add_development_dependency 'yard', '~> 0.8.7', '>= 0.8.0'
|
31
30
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'activerecord', '~> 4.0.0', :
|
3
|
+
gem 'activerecord', '~> 4.0.0', require: 'active_record'
|
4
4
|
gem 'rspec-rails', '~> 3.2.0'
|
5
5
|
gem 'generator_spec', '~>0.9.0'
|
6
6
|
|
7
7
|
platforms :ruby do
|
8
|
-
if RUBY_VERSION >
|
8
|
+
if RUBY_VERSION > '2.1.0'
|
9
9
|
gem 'sqlite3'
|
10
10
|
gem 'test-unit'
|
11
11
|
else
|
@@ -13,4 +13,8 @@ platforms :ruby do
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
|
16
|
+
platforms :jruby do
|
17
|
+
gem 'activerecord-jdbcsqlite3-adapter', '>= 1.3.0'
|
18
|
+
end
|
19
|
+
|
20
|
+
gemspec path: '../'
|
@@ -1,15 +1,19 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'activerecord', '~> 4.1.0', :
|
3
|
+
gem 'activerecord', '~> 4.1.0', require: 'active_record'
|
4
4
|
gem 'rspec-rails', '~> 3.2.0'
|
5
5
|
gem 'generator_spec', '~>0.9.0'
|
6
6
|
|
7
7
|
platforms :ruby do
|
8
|
-
if RUBY_VERSION >
|
8
|
+
if RUBY_VERSION > '2.1.0'
|
9
9
|
gem 'sqlite3'
|
10
10
|
else
|
11
11
|
gem 'sqlite3', '1.3.8'
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
platforms :jruby do
|
16
|
+
gem 'activerecord-jdbcsqlite3-adapter', '>= 1.3.0'
|
17
|
+
end
|
18
|
+
|
19
|
+
gemspec path: '../'
|
@@ -1,16 +1,20 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'activerecord', '~> 4.2.0', :
|
3
|
+
gem 'activerecord', '~> 4.2.0', require: 'active_record'
|
4
4
|
gem 'test-unit'
|
5
5
|
gem 'rspec-rails', '~> 3.2.0'
|
6
6
|
gem 'generator_spec', '~>0.9.0'
|
7
7
|
|
8
8
|
platforms :ruby do
|
9
|
-
if RUBY_VERSION >
|
9
|
+
if RUBY_VERSION > '2.1.0'
|
10
10
|
gem 'sqlite3'
|
11
11
|
else
|
12
12
|
gem 'sqlite3', '1.3.8'
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
|
16
|
+
platforms :jruby do
|
17
|
+
gem 'activerecord-jdbcsqlite3-adapter', '>= 1.3.0'
|
18
|
+
end
|
19
|
+
|
20
|
+
gemspec path: '../'
|
@@ -10,13 +10,18 @@ module FuzzyWhere
|
|
10
10
|
class << self
|
11
11
|
define_method(FuzzyWhere.config.where_method_name) do |conditions|
|
12
12
|
conditions ||= {}
|
13
|
-
|
14
|
-
fail ArgumentError,
|
15
|
-
"conditions must be a Hash, got #{conditions.inspect}"
|
16
|
-
end
|
13
|
+
validate_conditions(conditions)
|
17
14
|
FuzzyRelationBuilder.new(quoted_table_name, where(nil), conditions)
|
18
15
|
.build
|
19
16
|
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def validate_conditions(conditions)
|
21
|
+
return if conditions.respond_to?(:key)
|
22
|
+
fail ArgumentError,
|
23
|
+
"conditions must be a Hash, got #{conditions.inspect}"
|
24
|
+
end
|
20
25
|
end
|
21
26
|
end
|
22
27
|
end
|
data/lib/fuzzy_where/config.rb
CHANGED
@@ -5,17 +5,18 @@ require 'active_support/configurable'
|
|
5
5
|
|
6
6
|
# SQLf implementation for ActiveRecord
|
7
7
|
module FuzzyWhere
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
def self.configure(&_block)
|
13
|
-
yield @config ||= FuzzyWhere::Configuration.new
|
14
|
-
end
|
8
|
+
class << self
|
9
|
+
# @!attribute [r] config
|
10
|
+
# @return [FuzzyWhere::Configuration] gem configuration
|
11
|
+
attr_reader :config
|
15
12
|
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
# Configures global settings for FuzzyWhere
|
14
|
+
# FuzzyWhere.configure do |config|
|
15
|
+
# config.where_method_name = :fuzzy_where
|
16
|
+
# end
|
17
|
+
def configure(&_block)
|
18
|
+
yield @config ||= FuzzyWhere::Configuration.new
|
19
|
+
end
|
19
20
|
end
|
20
21
|
|
21
22
|
# {FuzzyWhere} Configuration class
|
@@ -28,6 +29,9 @@ module FuzzyWhere
|
|
28
29
|
# @!attribute [rw] membership_degree_column_name
|
29
30
|
# @return [String] membership degree column name definition
|
30
31
|
config_accessor :membership_degree_column_name
|
32
|
+
# @!attribute [rw] calibration_name
|
33
|
+
# @return [String] calibration condition name definition
|
34
|
+
config_accessor :calibration_name
|
31
35
|
# @!attribute [rw] predicates_file
|
32
36
|
# configuration file location
|
33
37
|
config_accessor :predicates_file
|
@@ -47,22 +51,21 @@ module FuzzyWhere
|
|
47
51
|
# @return [Hash] fuzzy predicate definitions
|
48
52
|
def load_yml(path)
|
49
53
|
fail ConfigError, 'The configuration file is not defined.' unless path
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
fail ConfigError, "The configuration file #{
|
55
|
-
elsif !
|
56
|
-
fail ConfigError, "The configuration file #{
|
57
|
-
elsif !path.readable?
|
58
|
-
fail ConfigError, "The configuration file #{@path} is not readable."
|
54
|
+
file = path.is_a?(Pathname) ? path : Pathname.new(path)
|
55
|
+
if !file.exist?
|
56
|
+
fail ConfigError, "The configuration file #{path} was not found."
|
57
|
+
elsif !file.file?
|
58
|
+
fail ConfigError, "The configuration file #{path} is not a file."
|
59
|
+
elsif !file.readable?
|
60
|
+
fail ConfigError, "The configuration file #{path} is not readable."
|
59
61
|
end
|
60
|
-
HashWithIndifferentAccess.new(YAML.load_file(
|
62
|
+
HashWithIndifferentAccess.new(YAML.load_file(file))
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
64
66
|
configure do |config|
|
65
67
|
config.where_method_name = :fuzzy_where
|
66
68
|
config.membership_degree_column_name = :membership_degree
|
69
|
+
config.calibration_name = :calibration
|
67
70
|
end
|
68
71
|
end
|
@@ -8,7 +8,7 @@ module FuzzyWhere
|
|
8
8
|
attr_reader :query
|
9
9
|
|
10
10
|
# New FuzzyDerivation intance
|
11
|
-
# @param query [ActiveRecord_Relation] query
|
11
|
+
# @param query [ActiveRecord_Relation] query to append
|
12
12
|
# @param table [String] table name
|
13
13
|
# @param column [String] column name
|
14
14
|
# @param fuzzy_predicate [Hash] fuzzy predicate
|
@@ -24,12 +24,13 @@ module FuzzyWhere
|
|
24
24
|
|
25
25
|
# New FuzzyRelationBuilder intance
|
26
26
|
# @param table [String] table name
|
27
|
-
# @param relation [ActiveRecord_Relation] query
|
27
|
+
# @param relation [ActiveRecord_Relation] query to append
|
28
28
|
# @param conditions [Hash] fuzzy conditions
|
29
29
|
def initialize(table, relation, conditions)
|
30
30
|
@table = table
|
31
31
|
@conditions = conditions
|
32
32
|
@relation = relation
|
33
|
+
@calibration = calibration
|
33
34
|
@membership_degrees = []
|
34
35
|
end
|
35
36
|
|
@@ -39,11 +40,25 @@ module FuzzyWhere
|
|
39
40
|
def build
|
40
41
|
process_conditions
|
41
42
|
add_membership_column
|
43
|
+
add_calibration_column
|
42
44
|
order_by_membership_degree
|
43
45
|
end
|
44
46
|
|
45
47
|
private
|
46
48
|
|
49
|
+
def calibration
|
50
|
+
@calibration = @conditions.delete(FuzzyWhere.config.calibration_name)
|
51
|
+
@calibration ||= 0.5
|
52
|
+
validate_calibration
|
53
|
+
end
|
54
|
+
|
55
|
+
def validate_calibration
|
56
|
+
Float @calibration
|
57
|
+
rescue
|
58
|
+
raise ArgumentError,
|
59
|
+
"calibration must be a Float, got #{@calibration.inspect}"
|
60
|
+
end
|
61
|
+
|
47
62
|
def process_conditions
|
48
63
|
@conditions.each do |column, predicate|
|
49
64
|
pred_def = load_fuzzy_predicate_definition(predicate)
|
@@ -77,6 +92,10 @@ module FuzzyWhere
|
|
77
92
|
.select("#{@table}.*, (#{membership_degree}) AS #{name}")
|
78
93
|
end
|
79
94
|
|
95
|
+
def add_calibration_column
|
96
|
+
@relation = @relation.where("(#{membership_degree}) >= ?", @calibration)
|
97
|
+
end
|
98
|
+
|
80
99
|
def membership_degree
|
81
100
|
if @membership_degrees.size > 1
|
82
101
|
min_membership_degree
|
@@ -17,8 +17,8 @@ module FuzzyWhere
|
|
17
17
|
@fuzzy_predicate = fuzzy_predicate
|
18
18
|
end
|
19
19
|
|
20
|
-
# Take instance
|
21
|
-
# Based on
|
20
|
+
# Take instance attributes and return a calculations for them
|
21
|
+
# Based on fuzzy set trapezium function
|
22
22
|
# @return [String] the calculation query to be used for the column
|
23
23
|
def membership_function
|
24
24
|
min = @fuzzy_predicate[:min]
|
@@ -40,17 +40,15 @@ module FuzzyWhere
|
|
40
40
|
def decreasing
|
41
41
|
"CASE WHEN #{less_than(:core2, true)} THEN 1.0 "\
|
42
42
|
"WHEN #{greater_than(:core2)} AND #{less_than(:max)} THEN "\
|
43
|
-
"(#{right_border_formula}) "
|
44
|
-
'ELSE 0 END'
|
43
|
+
"(#{right_border_formula}) ELSE 0 END"
|
45
44
|
end
|
46
45
|
|
47
|
-
#
|
46
|
+
# Increasing function calculation
|
48
47
|
# @return [String] condition representation for membership calculation
|
49
48
|
def increasing
|
50
49
|
"CASE WHEN #{greater_than(:core1, true)} THEN 1.0 "\
|
51
50
|
"WHEN #{greater_than(:min)} AND #{less_than(:core1)} THEN "\
|
52
|
-
"(#{left_border_formula}) "
|
53
|
-
'ELSE 0 END'
|
51
|
+
"(#{left_border_formula}) ELSE 0 END"
|
54
52
|
end
|
55
53
|
|
56
54
|
# Unimodal function calculation
|
@@ -61,8 +59,7 @@ module FuzzyWhere
|
|
61
59
|
"WHEN #{greater_than(:min)} AND #{less_than(:core1)} THEN "\
|
62
60
|
"(#{left_border_formula})"\
|
63
61
|
"WHEN #{greater_than(:core2)} AND #{less_than(:max)} THEN "\
|
64
|
-
"(#{right_border_formula}) "
|
65
|
-
'ELSE 0 END'
|
62
|
+
"(#{right_border_formula}) ELSE 0 END"
|
66
63
|
end
|
67
64
|
|
68
65
|
def greater_than(x, equal = false)
|
data/lib/fuzzy_where/version.rb
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
module FuzzyWhere
|
3
3
|
module Generators #:nodoc
|
4
4
|
# Generate gem configuration files
|
5
|
-
class ConfigGenerator < Rails::Generators::Base
|
5
|
+
class ConfigGenerator < ::Rails::Generators::Base
|
6
6
|
source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
7
7
|
|
8
8
|
desc <<DESC
|
9
9
|
Description:
|
10
|
-
Copies FuzzyWhere configuration
|
10
|
+
Copies FuzzyWhere configuration files to your application's initializer directory.
|
11
11
|
DESC
|
12
12
|
# Create FuzzyWhere config file
|
13
13
|
def copy_config_file
|
@@ -2,7 +2,7 @@
|
|
2
2
|
module FuzzyWhere
|
3
3
|
module Generators #:nodoc
|
4
4
|
# Generate a new fuzzy predicate
|
5
|
-
class PredicateGenerator < Rails::Generators::NamedBase
|
5
|
+
class PredicateGenerator < ::Rails::Generators::NamedBase
|
6
6
|
argument :attributes, type: :array, default: [], banner: '1 4 infinite infinite'
|
7
7
|
|
8
8
|
desc <<DESC
|
@@ -12,7 +12,8 @@ DESC
|
|
12
12
|
# Add Fuzzy predicate
|
13
13
|
def add_fuzzy_predicate
|
14
14
|
return if attributes.empty?
|
15
|
-
append_to_file 'config/fuzzy_predicates.yml',
|
15
|
+
append_to_file 'config/fuzzy_predicates.yml',
|
16
|
+
predicate_content(name, attributes)
|
16
17
|
end
|
17
18
|
|
18
19
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fuzzy_where
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gustavo Bazan
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -76,14 +76,14 @@ dependencies:
|
|
76
76
|
requirements:
|
77
77
|
- - "~>"
|
78
78
|
- !ruby/object:Gem::Version
|
79
|
-
version: '1.
|
79
|
+
version: '1.7'
|
80
80
|
type: :development
|
81
81
|
prerelease: false
|
82
82
|
version_requirements: !ruby/object:Gem::Requirement
|
83
83
|
requirements:
|
84
84
|
- - "~>"
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
version: '1.
|
86
|
+
version: '1.7'
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: rake
|
89
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,6 +118,20 @@ dependencies:
|
|
118
118
|
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
120
|
version: 3.2.0
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: coveralls
|
123
|
+
requirement: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - "~>"
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: 0.8.0
|
128
|
+
type: :development
|
129
|
+
prerelease: false
|
130
|
+
version_requirements: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - "~>"
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: 0.8.0
|
121
135
|
- !ruby/object:Gem::Dependency
|
122
136
|
name: database_cleaner
|
123
137
|
requirement: !ruby/object:Gem::Requirement
|
@@ -159,8 +173,11 @@ executables: []
|
|
159
173
|
extensions: []
|
160
174
|
extra_rdoc_files: []
|
161
175
|
files:
|
176
|
+
- ".codeclimate.yml"
|
177
|
+
- ".coveralls.yml"
|
162
178
|
- ".gitignore"
|
163
179
|
- ".rspec"
|
180
|
+
- ".simplecov"
|
164
181
|
- ".travis.yml"
|
165
182
|
- ".yardopts"
|
166
183
|
- CHANGELOG.md
|
@@ -173,11 +190,8 @@ files:
|
|
173
190
|
- config/initializers/fuzzy_where_config.rb
|
174
191
|
- fuzzy_where.gemspec
|
175
192
|
- gemfiles/active_record_40.gemfile
|
176
|
-
- gemfiles/active_record_40.gemfile.lock
|
177
193
|
- gemfiles/active_record_41.gemfile
|
178
|
-
- gemfiles/active_record_41.gemfile.lock
|
179
194
|
- gemfiles/active_record_42.gemfile
|
180
|
-
- gemfiles/active_record_42.gemfile.lock
|
181
195
|
- lib/fuzzy_where.rb
|
182
196
|
- lib/fuzzy_where/active_record_model_extension.rb
|
183
197
|
- lib/fuzzy_where/config.rb
|
@@ -211,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
225
|
version: '0'
|
212
226
|
requirements: []
|
213
227
|
rubyforge_project:
|
214
|
-
rubygems_version: 2.
|
228
|
+
rubygems_version: 2.5.1
|
215
229
|
signing_key:
|
216
230
|
specification_version: 4
|
217
231
|
summary: SQLf
|
@@ -1,97 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../
|
3
|
-
specs:
|
4
|
-
fuzzy_where (0.1.4)
|
5
|
-
actionpack (~> 4.0, >= 4.0.0)
|
6
|
-
activerecord (~> 4.0, >= 4.0.0)
|
7
|
-
activesupport (~> 4.0, >= 4.0.0)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
actionpack (4.0.13)
|
13
|
-
activesupport (= 4.0.13)
|
14
|
-
builder (~> 3.1.0)
|
15
|
-
erubis (~> 2.7.0)
|
16
|
-
rack (~> 1.5.2)
|
17
|
-
rack-test (~> 0.6.2)
|
18
|
-
activemodel (4.0.13)
|
19
|
-
activesupport (= 4.0.13)
|
20
|
-
builder (~> 3.1.0)
|
21
|
-
activerecord (4.0.13)
|
22
|
-
activemodel (= 4.0.13)
|
23
|
-
activerecord-deprecated_finders (~> 1.0.2)
|
24
|
-
activesupport (= 4.0.13)
|
25
|
-
arel (~> 4.0.0)
|
26
|
-
activerecord-deprecated_finders (1.0.4)
|
27
|
-
activesupport (4.0.13)
|
28
|
-
i18n (~> 0.6, >= 0.6.9)
|
29
|
-
minitest (~> 4.2)
|
30
|
-
multi_json (~> 1.3)
|
31
|
-
thread_safe (~> 0.1)
|
32
|
-
tzinfo (~> 0.3.37)
|
33
|
-
arel (4.0.2)
|
34
|
-
builder (3.1.4)
|
35
|
-
database_cleaner (1.4.1)
|
36
|
-
diff-lcs (1.2.5)
|
37
|
-
erubis (2.7.0)
|
38
|
-
generator_spec (0.9.3)
|
39
|
-
activesupport (>= 3.0.0)
|
40
|
-
railties (>= 3.0.0)
|
41
|
-
i18n (0.7.0)
|
42
|
-
minitest (4.7.5)
|
43
|
-
multi_json (1.11.0)
|
44
|
-
power_assert (0.2.3)
|
45
|
-
rack (1.5.5)
|
46
|
-
rack-test (0.6.3)
|
47
|
-
rack (>= 1.0)
|
48
|
-
railties (4.0.13)
|
49
|
-
actionpack (= 4.0.13)
|
50
|
-
activesupport (= 4.0.13)
|
51
|
-
rake (>= 0.8.7)
|
52
|
-
thor (>= 0.18.1, < 2.0)
|
53
|
-
rake (10.4.2)
|
54
|
-
rspec (3.2.0)
|
55
|
-
rspec-core (~> 3.2.0)
|
56
|
-
rspec-expectations (~> 3.2.0)
|
57
|
-
rspec-mocks (~> 3.2.0)
|
58
|
-
rspec-core (3.2.3)
|
59
|
-
rspec-support (~> 3.2.0)
|
60
|
-
rspec-expectations (3.2.1)
|
61
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
62
|
-
rspec-support (~> 3.2.0)
|
63
|
-
rspec-mocks (3.2.1)
|
64
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
65
|
-
rspec-support (~> 3.2.0)
|
66
|
-
rspec-rails (3.2.3)
|
67
|
-
actionpack (>= 3.0, < 4.3)
|
68
|
-
activesupport (>= 3.0, < 4.3)
|
69
|
-
railties (>= 3.0, < 4.3)
|
70
|
-
rspec-core (~> 3.2.0)
|
71
|
-
rspec-expectations (~> 3.2.0)
|
72
|
-
rspec-mocks (~> 3.2.0)
|
73
|
-
rspec-support (~> 3.2.0)
|
74
|
-
rspec-support (3.2.2)
|
75
|
-
sqlite3 (1.3.10)
|
76
|
-
test-unit (3.1.2)
|
77
|
-
power_assert
|
78
|
-
thor (0.19.1)
|
79
|
-
thread_safe (0.3.5)
|
80
|
-
tzinfo (0.3.44)
|
81
|
-
yard (0.8.7.6)
|
82
|
-
|
83
|
-
PLATFORMS
|
84
|
-
ruby
|
85
|
-
|
86
|
-
DEPENDENCIES
|
87
|
-
activerecord (~> 4.0.0)
|
88
|
-
bundler (~> 1.8)
|
89
|
-
database_cleaner (~> 1.4.1)
|
90
|
-
fuzzy_where!
|
91
|
-
generator_spec (~> 0.9.0)
|
92
|
-
rake (~> 10.0)
|
93
|
-
rspec (~> 3.2, >= 3.2.0)
|
94
|
-
rspec-rails (~> 3.2.0)
|
95
|
-
sqlite3
|
96
|
-
test-unit
|
97
|
-
yard (~> 0.8.7, >= 0.8.0)
|
@@ -1,95 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../
|
3
|
-
specs:
|
4
|
-
fuzzy_where (0.1.4)
|
5
|
-
actionpack (~> 4.0, >= 4.0.0)
|
6
|
-
activerecord (~> 4.0, >= 4.0.0)
|
7
|
-
activesupport (~> 4.0, >= 4.0.0)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
actionpack (4.1.10)
|
13
|
-
actionview (= 4.1.10)
|
14
|
-
activesupport (= 4.1.10)
|
15
|
-
rack (~> 1.5.2)
|
16
|
-
rack-test (~> 0.6.2)
|
17
|
-
actionview (4.1.10)
|
18
|
-
activesupport (= 4.1.10)
|
19
|
-
builder (~> 3.1)
|
20
|
-
erubis (~> 2.7.0)
|
21
|
-
activemodel (4.1.10)
|
22
|
-
activesupport (= 4.1.10)
|
23
|
-
builder (~> 3.1)
|
24
|
-
activerecord (4.1.10)
|
25
|
-
activemodel (= 4.1.10)
|
26
|
-
activesupport (= 4.1.10)
|
27
|
-
arel (~> 5.0.0)
|
28
|
-
activesupport (4.1.10)
|
29
|
-
i18n (~> 0.6, >= 0.6.9)
|
30
|
-
json (~> 1.7, >= 1.7.7)
|
31
|
-
minitest (~> 5.1)
|
32
|
-
thread_safe (~> 0.1)
|
33
|
-
tzinfo (~> 1.1)
|
34
|
-
arel (5.0.1.20140414130214)
|
35
|
-
builder (3.2.2)
|
36
|
-
database_cleaner (1.4.1)
|
37
|
-
diff-lcs (1.2.5)
|
38
|
-
erubis (2.7.0)
|
39
|
-
generator_spec (0.9.3)
|
40
|
-
activesupport (>= 3.0.0)
|
41
|
-
railties (>= 3.0.0)
|
42
|
-
i18n (0.7.0)
|
43
|
-
json (1.8.3)
|
44
|
-
minitest (5.7.0)
|
45
|
-
rack (1.5.5)
|
46
|
-
rack-test (0.6.3)
|
47
|
-
rack (>= 1.0)
|
48
|
-
railties (4.1.10)
|
49
|
-
actionpack (= 4.1.10)
|
50
|
-
activesupport (= 4.1.10)
|
51
|
-
rake (>= 0.8.7)
|
52
|
-
thor (>= 0.18.1, < 2.0)
|
53
|
-
rake (10.4.2)
|
54
|
-
rspec (3.2.0)
|
55
|
-
rspec-core (~> 3.2.0)
|
56
|
-
rspec-expectations (~> 3.2.0)
|
57
|
-
rspec-mocks (~> 3.2.0)
|
58
|
-
rspec-core (3.2.3)
|
59
|
-
rspec-support (~> 3.2.0)
|
60
|
-
rspec-expectations (3.2.1)
|
61
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
62
|
-
rspec-support (~> 3.2.0)
|
63
|
-
rspec-mocks (3.2.1)
|
64
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
65
|
-
rspec-support (~> 3.2.0)
|
66
|
-
rspec-rails (3.2.3)
|
67
|
-
actionpack (>= 3.0, < 4.3)
|
68
|
-
activesupport (>= 3.0, < 4.3)
|
69
|
-
railties (>= 3.0, < 4.3)
|
70
|
-
rspec-core (~> 3.2.0)
|
71
|
-
rspec-expectations (~> 3.2.0)
|
72
|
-
rspec-mocks (~> 3.2.0)
|
73
|
-
rspec-support (~> 3.2.0)
|
74
|
-
rspec-support (3.2.2)
|
75
|
-
sqlite3 (1.3.10)
|
76
|
-
thor (0.19.1)
|
77
|
-
thread_safe (0.3.5)
|
78
|
-
tzinfo (1.2.2)
|
79
|
-
thread_safe (~> 0.1)
|
80
|
-
yard (0.8.7.6)
|
81
|
-
|
82
|
-
PLATFORMS
|
83
|
-
ruby
|
84
|
-
|
85
|
-
DEPENDENCIES
|
86
|
-
activerecord (~> 4.1.0)
|
87
|
-
bundler (~> 1.8)
|
88
|
-
database_cleaner (~> 1.4.1)
|
89
|
-
fuzzy_where!
|
90
|
-
generator_spec (~> 0.9.0)
|
91
|
-
rake (~> 10.0)
|
92
|
-
rspec (~> 3.2, >= 3.2.0)
|
93
|
-
rspec-rails (~> 3.2.0)
|
94
|
-
sqlite3
|
95
|
-
yard (~> 0.8.7, >= 0.8.0)
|
@@ -1,116 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../
|
3
|
-
specs:
|
4
|
-
fuzzy_where (0.1.4)
|
5
|
-
actionpack (~> 4.0, >= 4.0.0)
|
6
|
-
activerecord (~> 4.0, >= 4.0.0)
|
7
|
-
activesupport (~> 4.0, >= 4.0.0)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
actionpack (4.2.3)
|
13
|
-
actionview (= 4.2.3)
|
14
|
-
activesupport (= 4.2.3)
|
15
|
-
rack (~> 1.6)
|
16
|
-
rack-test (~> 0.6.2)
|
17
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
18
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
19
|
-
actionview (4.2.3)
|
20
|
-
activesupport (= 4.2.3)
|
21
|
-
builder (~> 3.1)
|
22
|
-
erubis (~> 2.7.0)
|
23
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
24
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
25
|
-
activemodel (4.2.3)
|
26
|
-
activesupport (= 4.2.3)
|
27
|
-
builder (~> 3.1)
|
28
|
-
activerecord (4.2.3)
|
29
|
-
activemodel (= 4.2.3)
|
30
|
-
activesupport (= 4.2.3)
|
31
|
-
arel (~> 6.0)
|
32
|
-
activesupport (4.2.3)
|
33
|
-
i18n (~> 0.7)
|
34
|
-
json (~> 1.7, >= 1.7.7)
|
35
|
-
minitest (~> 5.1)
|
36
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
37
|
-
tzinfo (~> 1.1)
|
38
|
-
arel (6.0.0)
|
39
|
-
builder (3.2.2)
|
40
|
-
database_cleaner (1.4.1)
|
41
|
-
diff-lcs (1.2.5)
|
42
|
-
erubis (2.7.0)
|
43
|
-
generator_spec (0.9.3)
|
44
|
-
activesupport (>= 3.0.0)
|
45
|
-
railties (>= 3.0.0)
|
46
|
-
i18n (0.7.0)
|
47
|
-
json (1.8.3)
|
48
|
-
loofah (2.0.2)
|
49
|
-
nokogiri (>= 1.5.9)
|
50
|
-
mini_portile (0.6.2)
|
51
|
-
minitest (5.7.0)
|
52
|
-
nokogiri (1.6.6.2)
|
53
|
-
mini_portile (~> 0.6.0)
|
54
|
-
power_assert (0.2.3)
|
55
|
-
rack (1.6.4)
|
56
|
-
rack-test (0.6.3)
|
57
|
-
rack (>= 1.0)
|
58
|
-
rails-deprecated_sanitizer (1.0.3)
|
59
|
-
activesupport (>= 4.2.0.alpha)
|
60
|
-
rails-dom-testing (1.0.6)
|
61
|
-
activesupport (>= 4.2.0.beta, < 5.0)
|
62
|
-
nokogiri (~> 1.6.0)
|
63
|
-
rails-deprecated_sanitizer (>= 1.0.1)
|
64
|
-
rails-html-sanitizer (1.0.2)
|
65
|
-
loofah (~> 2.0)
|
66
|
-
railties (4.2.3)
|
67
|
-
actionpack (= 4.2.3)
|
68
|
-
activesupport (= 4.2.3)
|
69
|
-
rake (>= 0.8.7)
|
70
|
-
thor (>= 0.18.1, < 2.0)
|
71
|
-
rake (10.4.2)
|
72
|
-
rspec (3.2.0)
|
73
|
-
rspec-core (~> 3.2.0)
|
74
|
-
rspec-expectations (~> 3.2.0)
|
75
|
-
rspec-mocks (~> 3.2.0)
|
76
|
-
rspec-core (3.2.3)
|
77
|
-
rspec-support (~> 3.2.0)
|
78
|
-
rspec-expectations (3.2.1)
|
79
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
80
|
-
rspec-support (~> 3.2.0)
|
81
|
-
rspec-mocks (3.2.1)
|
82
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
83
|
-
rspec-support (~> 3.2.0)
|
84
|
-
rspec-rails (3.2.3)
|
85
|
-
actionpack (>= 3.0, < 4.3)
|
86
|
-
activesupport (>= 3.0, < 4.3)
|
87
|
-
railties (>= 3.0, < 4.3)
|
88
|
-
rspec-core (~> 3.2.0)
|
89
|
-
rspec-expectations (~> 3.2.0)
|
90
|
-
rspec-mocks (~> 3.2.0)
|
91
|
-
rspec-support (~> 3.2.0)
|
92
|
-
rspec-support (3.2.2)
|
93
|
-
sqlite3 (1.3.10)
|
94
|
-
test-unit (3.1.2)
|
95
|
-
power_assert
|
96
|
-
thor (0.19.1)
|
97
|
-
thread_safe (0.3.5)
|
98
|
-
tzinfo (1.2.2)
|
99
|
-
thread_safe (~> 0.1)
|
100
|
-
yard (0.8.7.6)
|
101
|
-
|
102
|
-
PLATFORMS
|
103
|
-
ruby
|
104
|
-
|
105
|
-
DEPENDENCIES
|
106
|
-
activerecord (~> 4.2.0)
|
107
|
-
bundler (~> 1.8)
|
108
|
-
database_cleaner (~> 1.4.1)
|
109
|
-
fuzzy_where!
|
110
|
-
generator_spec (~> 0.9.0)
|
111
|
-
rake (~> 10.0)
|
112
|
-
rspec (~> 3.2, >= 3.2.0)
|
113
|
-
rspec-rails (~> 3.2.0)
|
114
|
-
sqlite3
|
115
|
-
test-unit
|
116
|
-
yard (~> 0.8.7, >= 0.8.0)
|