jquery_query_builder-rails 0.1.0 → 0.2.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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +70 -2
  3. data/lib/jquery_query_builder-rails.rb +2 -3
  4. data/lib/jquery_query_builder/evaluator.rb +100 -0
  5. data/lib/jquery_query_builder/operator.rb +48 -0
  6. data/lib/jquery_query_builder/operators/begins_with.rb +9 -0
  7. data/lib/jquery_query_builder/operators/between.rb +9 -0
  8. data/lib/jquery_query_builder/operators/contains.rb +9 -0
  9. data/lib/jquery_query_builder/operators/ends_with.rb +9 -0
  10. data/lib/jquery_query_builder/operators/equal.rb +9 -0
  11. data/lib/jquery_query_builder/operators/greater.rb +9 -0
  12. data/lib/jquery_query_builder/operators/greater_or_equal.rb +9 -0
  13. data/lib/jquery_query_builder/operators/in.rb +9 -0
  14. data/lib/jquery_query_builder/operators/is_empty.rb +9 -0
  15. data/lib/jquery_query_builder/operators/is_not_empty.rb +9 -0
  16. data/lib/jquery_query_builder/operators/is_not_null.rb +9 -0
  17. data/lib/jquery_query_builder/operators/is_null.rb +9 -0
  18. data/lib/jquery_query_builder/operators/less.rb +9 -0
  19. data/lib/jquery_query_builder/operators/less_or_equal.rb +9 -0
  20. data/lib/jquery_query_builder/operators/not_begins_with.rb +9 -0
  21. data/lib/jquery_query_builder/operators/not_between.rb +9 -0
  22. data/lib/jquery_query_builder/operators/not_contains.rb +9 -0
  23. data/lib/jquery_query_builder/operators/not_ends_with.rb +9 -0
  24. data/lib/jquery_query_builder/operators/not_equal.rb +9 -0
  25. data/lib/jquery_query_builder/operators/not_in.rb +9 -0
  26. data/lib/jquery_query_builder/rails/engine.rb +7 -0
  27. data/lib/jquery_query_builder/rails/version.rb +1 -1
  28. data/lib/jquery_query_builder/rule.rb +64 -0
  29. data/lib/jquery_query_builder/rule_group.rb +26 -0
  30. metadata +71 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee785e1ac307e057202ab3528d8c5fc3127cd981
4
- data.tar.gz: 40c5c765ae70e7219a075ad646ce1a1357999999
3
+ metadata.gz: 21eabfc82ba1b10f2f86fc1b5a373fce3b787a25
4
+ data.tar.gz: 242467b72d023ec7574792f90711cc59b695f7fe
5
5
  SHA512:
6
- metadata.gz: 5c4a7726931819dbd397d3a2230b713b1a32966a7bd7f43458f89216ae7dfec471ad7b3d05e5d9e01d5bbd33df32c2c82c54d0e3144fc377ccdfb2cbdee91d5e
7
- data.tar.gz: ee20cd90062921090e1f6bc6e224df97c0fafcb4fcc55e5934041e5fc5129b4f9a35dc1a44fba0415e704f3e58b4aa5c16dc42e047e9481af4cdedd2c5bd1c85
6
+ metadata.gz: bf8fc6b0d04145a56c2c15fc0decec875f4c8b179fe1a37581b81a6d89cb56cf5326d384f19e8020acf321c2613948c3e122251ce7653eb5d182461c4207df02
7
+ data.tar.gz: 9647417717b125078c313f76bf58db43cd200c62ae78f5a78688335b26984b5ca1166f86ac39d20b0f60041219ee4ed10a837d30194db2cd889e18a09d62c67d
data/README.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # jQuery QueryBuilder - rails
2
2
 
3
+ This gem has 2 parts.
4
+ - [Assets needed for the jquery-query-builder plugin for the rails asset pipeline](#asset-pipeline-part)
5
+ - [Ruby evaluator for the json rule output from jquery-query-builder](#ruby-rule-evaluator)
6
+
7
+ # Asset Pipeline Part
8
+
3
9
  jquery_query_builer-rails wraps the [query-builder.js](http://querybuilder.js.org//) library
4
10
  and some of its dependencies in a rails engine for simple use with the asset pipeline provided by Rails 3.1 and higher.
5
11
 
@@ -51,6 +57,68 @@ After that you can use the QueryBuilder to any \<div\> you want.
51
57
  Read more here:
52
58
  [jQuery QueryBuilder](http://querybuilder.js.org//)
53
59
 
54
- Coming Soon:
60
+ # Ruby Rule Evaluator
61
+
62
+ You can use the evaluator to check if objects match the json rules produced by the jQuery plugin.
63
+
64
+ Objects are hashes or other objects that can be accessed with hash-like bracket functionality e.g. object['test'].
65
+
66
+ ## Example Usage
67
+ ```ruby
68
+ rule_json = %|{
69
+ "condition": "AND",
70
+ "rules": [{
71
+ "id": "Integer_Question",
72
+ "field": "Integer_Question",
73
+ "type": "integer",
74
+ "input": "text",
75
+ "operator": "equal",
76
+ "value": "5"
77
+ }]
78
+ }|
79
+
80
+ object_1 = {'Integer_Question' => 5}
81
+ object_2 = {'Integer_Question' => 15}
82
+ objects = [object_1, object_2]
83
+
84
+ evaluator = JqueryQueryBuilder::Evaluator.new(rule_json)
85
+ evaluator.object_matches_rules?(object_1) #=> true
86
+ evaluator.object_matches_rules?(object_2) #=> false
87
+
88
+ evaluator.get_matching_objects(objects) #=> [object_1]
89
+ ```
90
+
91
+ Note: For the constructor, you can pass in a JSON string or an already parsed object.
92
+
93
+ ## Operators
94
+
95
+ All the default operators have been implemented.
96
+
97
+ If you need to extend the operators with custom ones you have, just create a class for the operator.
98
+ The class name should be the camelized version of the underscored operator.
99
+
100
+ e.g. For the operator "equals_five" the class name should be "EqualsFive".
101
+
102
+ The class must have an evaluate(input, value), even if a value is not required.
103
+
104
+ e.g.
105
+ ```ruby
106
+ # config/intializers/jquery_query_builder_operators.rb
107
+ module JqueryQueryBuilder
108
+ module Operators
109
+ class EqualsFive
110
+ def evaluate(input, ignored_value)
111
+ input == 5
112
+ end
113
+ end
114
+ end
115
+ end
116
+ ```
117
+
118
+ ## Contributing
55
119
 
56
- Ruby evaluator for the json output.
120
+ 1. Fork it
121
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
122
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
123
+ 4. Push to the branch (`git push origin my-new-feature`)
124
+ 5. Create new Pull Request
@@ -1,9 +1,8 @@
1
1
  require "jquery_query_builder/rails/version"
2
+ require "jquery_query_builder/evaluator"
2
3
 
3
4
  module JqueryQueryBuilder
4
5
  module Rails
5
- class Engine < ::Rails::Engine
6
- # Get rails to add app, lib, vendor to load path
7
- end
6
+ require 'jquery_query_builder/rails/engine' if defined?(::Rails)
8
7
  end
9
8
  end
@@ -0,0 +1,100 @@
1
+ require 'active_support/core_ext/hash/indifferent_access'
2
+ require 'active_support/core_ext/object/blank'
3
+ require 'active_support/core_ext/string/inflections'
4
+ require 'jquery_query_builder/operator'
5
+ require 'jquery_query_builder/rule_group'
6
+ require 'jquery_query_builder/rule'
7
+ require 'json'
8
+
9
+ module JqueryQueryBuilder
10
+ class Evaluator
11
+ attr_accessor :parsed_rule_set
12
+ def initialize(rule_set)
13
+ if rule_set.is_a? String
14
+ #assuming the json was passed in
15
+ self.parsed_rule_set = JSON.parse(rule_set)
16
+ else
17
+ self.parsed_rule_set = rule_set
18
+ end
19
+ end
20
+
21
+ def get_matching_objects(objects)
22
+ objects.select{|o| object_matches_rules?(o)}
23
+ end
24
+
25
+ def object_matches_rules?(object)
26
+ RuleGroup.new(parsed_rule_set).evaluate(object)
27
+ end
28
+ end
29
+ end
30
+
31
+
32
+ __END__
33
+ Example rules:
34
+
35
+ {
36
+ "condition": "AND",
37
+ "rules": [{
38
+ "id": "Decimal_Question",
39
+ "field": "Decimal_Question",
40
+ "type": "double",
41
+ "input": "text",
42
+ "operator": "equal",
43
+ "value": "1.2"
44
+ }, {
45
+ "condition": "AND",
46
+ "rules": [{
47
+ "id": "Date_Question",
48
+ "field": "Date_Question",
49
+ "type": "date",
50
+ "input": "text",
51
+ "operator": "greater",
52
+ "value": "2016-07-19"
53
+ }, {
54
+ "id": "Yes_No_Question",
55
+ "field": "Yes_No_Question",
56
+ "type": "boolean",
57
+ "input": "select",
58
+ "operator": "equal",
59
+ "value": "true"
60
+ }]
61
+ }, {
62
+ "condition": "OR",
63
+ "rules": [{
64
+ "id": "Select_Question",
65
+ "field": "Select_Question",
66
+ "type": "string",
67
+ "input": "select",
68
+ "operator": "equal",
69
+ "value": "First Option"
70
+ }, {
71
+ "id": "Password_Question",
72
+ "field": "Password_Question",
73
+ "type": "string",
74
+ "input": "text",
75
+ "operator": "equal",
76
+ "value": "asd"
77
+ }]
78
+ }, {
79
+ "id": "Subform.Free_Text_Question",
80
+ "field": "Subform.Free_Text_Question",
81
+ "type": "string",
82
+ "input": "text",
83
+ "operator": "is_not_empty",
84
+ "value": null
85
+ }]
86
+ }
87
+
88
+ ------------
89
+
90
+ {
91
+ "condition": "AND",
92
+ "rules": [{
93
+ "id": "Integer_Question",
94
+ "field": "Integer_Question",
95
+ "type": "integer",
96
+ "input": "text",
97
+ "operator": "equal",
98
+ "value": "5"
99
+ }]
100
+ }
@@ -0,0 +1,48 @@
1
+ #require all the operators
2
+ Dir[File.join(File.dirname(__FILE__) + '/operators', "**/*.rb")].each do |f|
3
+ require f
4
+ end
5
+
6
+ module JqueryQueryBuilder
7
+ class Operator
8
+ SPECIAL_CASE_MAP = {
9
+ }
10
+
11
+ def self.get_operator_class(operator)
12
+ operator_class = SPECIAL_CASE_MAP[operator] || operator.camelize
13
+
14
+ begin
15
+ operator_class = "#{operator_module}::#{operator_class}".constantize
16
+ rescue NameError
17
+ raise "Unknown operator #{operator} used."
18
+ end
19
+ end
20
+
21
+ def self.operator_module
22
+ "JqueryQueryBuilder::Operators"
23
+ end
24
+ end
25
+ end
26
+
27
+ __END__
28
+
29
+ equal
30
+ not_equal
31
+ in
32
+ not_in
33
+ less
34
+ less_or_equal
35
+ greater
36
+ greater_or_equal
37
+ between
38
+ not_between
39
+ begins_with
40
+ not_begins_with
41
+ contains
42
+ not_contains
43
+ ends_with
44
+ not_ends_with
45
+ is_empty
46
+ is_not_empty
47
+ is_null
48
+ is_not_null
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class BeginsWith
4
+ def evaluate(left, right)
5
+ left.start_with?(right)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class Between
4
+ def evaluate(input, bounds)
5
+ input > bounds[0] && input < bounds[1]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class Contains
4
+ def evaluate(left, right)
5
+ left.include?(right)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class EndsWith
4
+ def evaluate(left, right)
5
+ left.end_with?(right)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class Equal
4
+ def evaluate(left, right)
5
+ left == right
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class Greater
4
+ def evaluate(left, right)
5
+ left > right
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class GreaterOrEqual
4
+ def evaluate(left, right)
5
+ left >= right
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class In
4
+ def evaluate(left, right)
5
+ right.include?(left)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class IsEmpty
4
+ def evaluate(input, value)
5
+ input.blank?
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class IsNotEmpty
4
+ def evaluate(input, value)
5
+ input.present?
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class IsNotNull
4
+ def evaluate(input, value)
5
+ !input.nil?
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class IsNull
4
+ def evaluate(input, value)
5
+ input.nil?
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class Less
4
+ def evaluate(left, right)
5
+ left < right
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class LessOrEqual
4
+ def evaluate(left, right)
5
+ left <= right
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class NotBeginsWith
4
+ def evaluate(left, right)
5
+ !left.start_with?(right)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class NotBetween
4
+ def evaluate(input, bounds)
5
+ input <= bounds[0] || input >= bounds[1]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class NotContains
4
+ def evaluate(left, right)
5
+ !left.include?(right)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class NotEndsWith
4
+ def evaluate(left, right)
5
+ !left.end_with?(right)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class NotEqual
4
+ def evaluate(left, right)
5
+ left != right
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module JqueryQueryBuilder
2
+ module Operators
3
+ class NotIn
4
+ def evaluate(left, right)
5
+ !right.include?(left)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ module JqueryQueryBuilder
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ # Get rails to add app, lib, vendor to load path
5
+ end
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  module JqueryQueryBuilder
2
2
  module Rails
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -0,0 +1,64 @@
1
+ module JqueryQueryBuilder
2
+ class Rule
3
+ attr_accessor :id, :field, :type, :input, :operator, :value
4
+ def initialize(rule_hash)
5
+ self.id = rule_hash['id']
6
+ self.field = rule_hash['field']
7
+ self.type = rule_hash['type']
8
+ self.input = rule_hash['input']
9
+ self.operator = rule_hash['operator']
10
+ self.value = rule_hash['value']
11
+ end
12
+
13
+ def evaluate(object)
14
+ get_operator.evaluate(get_input(object), get_value)
15
+ end
16
+
17
+ def get_operator
18
+ JqueryQueryBuilder::Operator.get_operator_class(operator).new
19
+ end
20
+
21
+ def get_input(object)
22
+ fields = field.split('.')
23
+ result = object
24
+ fields.each do |field|
25
+ result = object[field]
26
+ break if result.nil?
27
+ end
28
+ if result.is_a? Array
29
+ result.map{|v| typecast_value(v)}
30
+ else
31
+ typecast_value(result)
32
+ end
33
+ end
34
+
35
+ def get_value
36
+ if value.is_a? Array
37
+ value.map{|v| typecast_value(v)}
38
+ else
39
+ typecast_value(value)
40
+ end
41
+ end
42
+
43
+ def typecast_value(value_to_cast)
44
+ case type
45
+ when 'string'
46
+ value_to_cast.to_s
47
+ when 'integer'
48
+ value_to_cast.to_i
49
+ when 'double'
50
+ value_to_cast.to_f
51
+ when 'date'
52
+ value_to_cast.is_a?(String) ? Date.parse(value_to_cast) : value_to_cast
53
+ when 'time'
54
+ value_to_cast.is_a?(String) ? Time.parse(value_to_cast) : value_to_cast
55
+ when 'datetime'
56
+ value_to_cast.is_a?(String) ? DateTime.parse(value_to_cast) : value_to_cast
57
+ when 'boolean'
58
+ value_to_cast == 'Yes' || value_to_cast == 'yes' || value_to_cast == 'True' || value_to_cast == 'true' || value_to_cast == true
59
+ else
60
+ value_to_cast
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,26 @@
1
+ module JqueryQueryBuilder
2
+ class RuleGroup
3
+ attr_accessor :condition, :rules
4
+ def initialize(rule_group_hash)
5
+ self.condition = rule_group_hash['condition']
6
+ self.rules = rule_group_hash['rules']
7
+ end
8
+
9
+ def evaluate(object)
10
+ case condition
11
+ when "AND"
12
+ rules.all?{|rule| get_rule_object(rule).evaluate(object) }
13
+ when "OR"
14
+ rules.any?{|rule| get_rule_object(rule).evaluate(object) }
15
+ end
16
+ end
17
+
18
+ def get_rule_object(rule)
19
+ if rule['rules'].present?
20
+ RuleGroup.new(rule)
21
+ else
22
+ Rule.new(rule)
23
+ end
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery_query_builder-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Hirst
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-13 00:00:00.000000000 Z
11
+ date: 2016-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.3
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.8.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: bundler
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +108,20 @@ dependencies:
80
108
  - - ">="
81
109
  - !ruby/object:Gem::Version
82
110
  version: 3.2.12
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
83
125
  description:
84
126
  email:
85
127
  - hirst.mat@gmail.com
@@ -91,7 +133,32 @@ files:
91
133
  - LICENSE.txt
92
134
  - README.md
93
135
  - lib/jquery_query_builder-rails.rb
136
+ - lib/jquery_query_builder/evaluator.rb
137
+ - lib/jquery_query_builder/operator.rb
138
+ - lib/jquery_query_builder/operators/begins_with.rb
139
+ - lib/jquery_query_builder/operators/between.rb
140
+ - lib/jquery_query_builder/operators/contains.rb
141
+ - lib/jquery_query_builder/operators/ends_with.rb
142
+ - lib/jquery_query_builder/operators/equal.rb
143
+ - lib/jquery_query_builder/operators/greater.rb
144
+ - lib/jquery_query_builder/operators/greater_or_equal.rb
145
+ - lib/jquery_query_builder/operators/in.rb
146
+ - lib/jquery_query_builder/operators/is_empty.rb
147
+ - lib/jquery_query_builder/operators/is_not_empty.rb
148
+ - lib/jquery_query_builder/operators/is_not_null.rb
149
+ - lib/jquery_query_builder/operators/is_null.rb
150
+ - lib/jquery_query_builder/operators/less.rb
151
+ - lib/jquery_query_builder/operators/less_or_equal.rb
152
+ - lib/jquery_query_builder/operators/not_begins_with.rb
153
+ - lib/jquery_query_builder/operators/not_between.rb
154
+ - lib/jquery_query_builder/operators/not_contains.rb
155
+ - lib/jquery_query_builder/operators/not_ends_with.rb
156
+ - lib/jquery_query_builder/operators/not_equal.rb
157
+ - lib/jquery_query_builder/operators/not_in.rb
158
+ - lib/jquery_query_builder/rails/engine.rb
94
159
  - lib/jquery_query_builder/rails/version.rb
160
+ - lib/jquery_query_builder/rule.rb
161
+ - lib/jquery_query_builder/rule_group.rb
95
162
  - vendor/assets/javascripts/doT.js
96
163
  - vendor/assets/javascripts/jquery.extendext.js
97
164
  - vendor/assets/javascripts/query-builder.js
@@ -120,6 +187,6 @@ rubyforge_project:
120
187
  rubygems_version: 2.4.8
121
188
  signing_key:
122
189
  specification_version: 4
123
- summary: The jQuery Query Builder JavaScript library + Dependencies ready for the
124
- Rails Asset Pipeline.
190
+ summary: The jQuery Query Builder Rule Evaluator and JavaScript library + Dependencies
191
+ ready for the Rails Asset Pipeline.
125
192
  test_files: []