easy_filter 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ODZhZjIwNWYwMDBmNjYwNzUxMjM0ZDdmYmE5MGIwYWNhMTBlMDEzMw==
5
- data.tar.gz: !binary |-
6
- OTQ5Y2ExMDEyMWJkNzE5OGJiMGJlNGNjMGEzOWI2MmQ5NTNlMzI2Yw==
2
+ SHA1:
3
+ metadata.gz: 33a6ad9f7885ba310d7af29cfbcc4079bdfe873b
4
+ data.tar.gz: aebb6dbfa96193f59ace2196b4cc53d4574f0baf
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NjRhYWUzMTc5NTRmZmU0NDZkZjJhODE3NWQ3YTk0Mzk0ZGNhNjZkOWY4N2Q4
10
- ZDU3YjA3ZmE0N2VkM2NiMDJlN2Y3ZTZiZDdmMzhjOTkxNGNhYzU5NjA4NTNh
11
- YzMyZTc1ODkzNjM3NmU4NWJjZjU3ZDI2MmE3ZDY5OTA3OTU5Nzk=
12
- data.tar.gz: !binary |-
13
- OTZhNDdmYjY0ZWIzYjI4MzdlZjVjZjY3N2Y3ODRhMWViMDU0MDg5NzVmMjc2
14
- Zjc0MGViNDhhNTBhNjdlNWUxYTVhNGEyM2U0ZDUxYzcwYTEwNDg1YmIyZTkw
15
- MDMyOGJmNDI2NzYzY2ZhMGUwNTFhMjg0NDlkNTE1YjgwMWZmNjU=
6
+ metadata.gz: c3185343808ee0ea0f6c2a717dad50b7e253f05ee959c6f3fe3441e7213d6c7c13830ceebcd8d5d572f7506353202d3470783a7e96b0a87f1d42122732a21c27
7
+ data.tar.gz: bb892f3bfbceaf2a07a727e4cb91bd19905425a0a4660c28872b4bbd5e661cf5213a3c4cba4be04b1e79ff362dbe247bcf2a1a0c8fd3f6e2abfe1214afa9fd26
@@ -1,112 +1,23 @@
1
- ###########################
2
- # Configuration for rubocop
3
- #
4
- # Most of these are disabling existing cops, primarily
5
- # due to a smattering of different styles and loose
6
- # guidlines for contributions.
7
- #
8
- # Any of these may be changed.
9
-
10
1
  MethodLength:
11
2
  Max: 200
12
3
 
13
4
  LineLength:
14
5
  Max: 160
15
6
 
16
- HashSyntax:
17
- Enabled: false
18
-
19
- # Prefer single-quotes
20
- StringLiterals:
21
- Enabled: false
22
-
23
- AlignParameters:
24
- Enabled: false
25
-
26
- SpaceAroundOperators:
27
- Enabled: false
28
-
29
- Encoding:
30
- Enabled: false
31
-
32
- PercentR:
33
- Enabled: false
34
-
35
- SpaceAroundBraces:
7
+ FileName:
36
8
  Enabled: false
37
9
 
38
- FavorPercentR:
10
+ PerceivedComplexity:
39
11
  Enabled: false
40
12
 
41
- AndOr:
13
+ CyclomaticComplexity:
42
14
  Enabled: false
43
15
 
44
- EmptyLineBetweenDefs:
16
+ ClassLength:
45
17
  Enabled: false
46
18
 
47
- SpaceInsideHashLiteralBraces:
48
- Enabled: false
49
-
50
- SymbolName:
51
- Enabled: false
52
-
53
- ReduceArguments:
54
- Enabled: false
55
-
56
- RescueException:
57
- Enabled: false
58
-
59
- Syntax:
60
- Enabled: false
61
-
62
- WordArray:
19
+ Documentation:
63
20
  Enabled: false
64
21
 
65
22
  IfUnlessModifier:
66
- Enabled: false
67
-
68
- ParenthesesAroundCondition:
69
- Enabled: false
70
-
71
- MethodAndVariableSnakeCase:
72
- Enabled: false
73
-
74
- AvoidClassVars:
75
- Enabled: false
76
-
77
- WhileUntilModifier:
78
- Enabled: false
79
-
80
- Semicolon:
81
- Enabled: false
82
-
83
- UnlessElse:
84
- Enabled: false
85
-
86
- BlockNesting:
87
- Enabled: false
88
-
89
- Proc:
90
- Enabled: false
91
-
92
- # Global vars should be removed
93
- AvoidGlobalVars:
94
- Enabled: false
95
-
96
- # Probably some good ones in here.
97
- # Disabled for $? => $CHILD_STATUS
98
- AvoidPerlisms:
99
- Enabled: false
100
-
101
- Lambda:
102
- Enabled: false
103
-
104
- CollectionMethods:
105
- Enabled: false
106
-
107
- CaseIndentation:
108
- Enabled: false
109
-
110
- AllCops:
111
- Excludes:
112
- - vendor/**
23
+ Enabled: false
@@ -1 +1 @@
1
- ruby-1.9.3
1
+ ruby-2.1.6
@@ -1,6 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.9.3"
3
+ - "2.1.6"
4
4
  script:
5
5
  - bundle exec rubocop
6
- - bundle exec rake
6
+ - bundle exec rake
@@ -1,3 +1,32 @@
1
+ ## V0.2.0
2
+ * Correct Rubocop ABC errors with refactoring
3
+ * RSpec tests for field with more underscores
4
+ * Change sort_direction attributes
5
+ * Change ruby version to 2.1.6
6
+ * Some minor cosmetic changes
7
+ * Refactoring model_additions
8
+ * Remove blank line
9
+ * Correct rubocop config errors
10
+ * handle date type with from and to field
11
+ * Rails4 turbolinks correction
12
+ * new version
13
+ * jquery added to engine
14
+ * change parameter names in hash
15
+ * change downcase to underscore on class name conversion
16
+ * convert array item code to string for compare to request param
17
+ * Handle boolean column type
18
+ * Remove debug message
19
+
20
+ ## V0.1.1
21
+ * correct rubocop problems
22
+
23
+ ## V0.1.0
24
+ * Syntax change after refactoring
25
+ * Refactoring view helper and views
26
+ * add table name to column name if it isn't specified
27
+ * Add comment for easy_filter model addition
28
+ * Changes added to changelog
29
+
1
30
  ## V0.0.4
2
31
 
3
32
  * Added TravisCI
data/README.md CHANGED
@@ -53,9 +53,9 @@ Code in helper:
53
53
  ```ruby
54
54
  def model_statuses
55
55
  [
56
- { code: 'A', name: 'Status A', color: :default},
57
- { code: 'B', name: 'Status B', color: :info},
58
- { code: 'C', name: 'Status C', color: :warning},
56
+ { value: 'A', text: 'Status A', color: :default},
57
+ { value: 'B', text: 'Status B', color: :info},
58
+ { value: 'C', text: 'Status C', color: :warning},
59
59
  ]
60
60
  end
61
61
  ```
@@ -1,17 +1,27 @@
1
- $(document).ready(function() {
2
- $('ul.dropdown-filter li a').click(function (e) {
3
- html = $(this).html();
4
- $(this).parents('ul.dropdown-filter').prev().children().first().remove();
5
- $(this).parents('ul.dropdown-filter').prev().prepend(html);
6
- $(this).parents('div.dropdown').removeClass('open')
7
- $(this).parents('div.dropdown').find('input').first().val($(this).attr('data-target'));
1
+ //= require jquery
2
+ //= require jquery-ui
3
+
4
+ if (typeof Turbolinks !== 'undefined') {
5
+ $(document).on("page:change", function () {
6
+ init_easy_filter();
7
+ });
8
+ } else {
9
+ $(document).ready(function() {
10
+ init_easy_filter();
8
11
  });
9
- });
12
+ }
10
13
 
11
- $(document).ready(function() {
12
- $(".datepicker").datepicker($.datepicker.regional[ "hu" ]);
13
- $(".datepicker").each(function() { $(this).val($(this).attr('value')); });
14
- });
14
+ function init_easy_filter() {
15
+ $('ul.easy-filter-dropdown li a').click(function (e) {
16
+ html = $(this).html();
17
+ $(this).parents('ul.easy-filter-dropdown').prev().children().first().remove();
18
+ $(this).parents('ul.easy-filter-dropdown').prev().prepend(html);
19
+ $(this).parents('div.easy-filter-dropdown').removeClass('open')
20
+ $(this).parents('div.easy-filter-dropdown').find('input').first().val($(this).attr('data-target'));
21
+ });
22
+ $(".easy-filter-datepicker").datepicker($.datepicker.regional[ "hu" ]);
23
+ $(".easy-filter-datepicker").each(function() { $(this).val($(this).attr('value')); });
24
+ }
15
25
 
16
26
  /* Hungarian initialisation for the jQuery UI date picker plugin. */
17
27
  /* Written by Peter Kepes (https://github.com/kepes),
@@ -1,10 +1,10 @@
1
- <div class="dropdown">
1
+ <div class="dropdown easy-filter-dropdown">
2
2
  <%= hidden_field_tag("#{filter_prefixes[:main]}#{filter_prefixes[:exact]}#{filter[:field]}", request.params["#{filter_prefixes[:main]}#{filter_prefixes[:exact]}#{filter[:field]}"]) %>
3
3
  <% button_text = "<span>#{filter[:label]}</span>" %>
4
4
 
5
5
  <% filter[:items].each do |item|
6
- if request.params["#{filter_prefixes[:main]}#{filter_prefixes[:exact]}#{filter[:field]}"] == item[:code]
7
- button_text = "<span class=\"label label-#{item[:color]}\">#{item[:name]}</span>"
6
+ if request.params["#{filter_prefixes[:main]}#{filter_prefixes[:exact]}#{filter[:field]}"] == item[:value].to_s
7
+ button_text = "<span class=\"label label-#{item[:color]}\">#{item[:text]}</span>"
8
8
  break
9
9
  end
10
10
  end %>
@@ -12,9 +12,9 @@ end %>
12
12
  <button class="btn btn-default dropdown-toggle" type="button" id="dropdownFilterButton-<%= filter[:field] %>" data-toggle="dropdown"><%= button_text.html_safe %>
13
13
  <span class="caret"></span></button>
14
14
 
15
- <ul class="dropdown-menu dropdown-filter" aria-labelledby="dropdownFilterButton-<%= filter[:field] %>">
15
+ <ul class="dropdown-menu dropdown-filter easy-filter-dropdown" aria-labelledby="dropdownFilterButton-<%= filter[:field] %>">
16
16
  <% filter[:items].each do |item| %>
17
- <li role="presentation"><a role="menuitem" tabindex="-1" data-target="<%= item[:code] %>"><span class="label label-<%= item[:color]%>"><%= item[:name] %></span></a></li>
17
+ <li role="presentation"><a role="menuitem" tabindex="-1" data-target="<%= item[:value] %>"><span class="label label-<%= item[:color]%>"><%= item[:text] %></span></a></li>
18
18
  <% end %>
19
19
  </ul>
20
20
  </div>
@@ -1,2 +1,2 @@
1
- <%= text_field_tag("#{filter_prefixes[:main]}#{filter_prefixes[:from]}#{filter[:field]}", request.params["#{filter_prefixes[:main]}#{filter_prefixes[:from]}#{filter[:field]}"], class: 'form-control datepicker', placeholder: filter[:label]) %>
2
- <%= text_field_tag("#{filter_prefixes[:main]}#{filter_prefixes[:to]}#{filter[:field]}", request.params["#{filter_prefixes[:main]}#{filter_prefixes[:to]}#{filter[:field]}"], class: 'form-control datepicker', placeholder: filter[:label]) %>
1
+ <%= text_field_tag("#{filter_prefixes[:main]}#{filter_prefixes[:from]}#{filter[:field]}", request.params["#{filter_prefixes[:main]}#{filter_prefixes[:from]}#{filter[:field]}"], class: 'form-control easy-filter-datepicker', placeholder: filter[:label]) %>
2
+ <%= text_field_tag("#{filter_prefixes[:main]}#{filter_prefixes[:to]}#{filter[:field]}", request.params["#{filter_prefixes[:main]}#{filter_prefixes[:to]}#{filter[:field]}"], class: 'form-control easy-filter-datepicker', placeholder: filter[:label]) %>
@@ -23,4 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'rubocop'
24
24
  spec.add_development_dependency 'activerecord', '~> 3.2'
25
25
  spec.add_development_dependency 'sqlite3'
26
+ spec.add_runtime_dependency 'jquery-rails'
27
+ spec.add_runtime_dependency 'jquery-ui-rails'
26
28
  end
@@ -1,4 +1,6 @@
1
1
  module EasyFilter
2
2
  class Engine < ::Rails::Engine
3
+ require 'jquery-rails'
4
+ require 'jquery-ui-rails'
3
5
  end
4
6
  end
@@ -12,45 +12,70 @@ module EasyFilter
12
12
  exact: 'exact_',
13
13
  sort: 'sort',
14
14
  direction: 'direction' })
15
- filter = self
16
- params.each do |key, value|
17
- next unless key.start_with?(prefixes[:main]) && !value.blank? && key != "#{prefixes[:main]}button"
15
+ params = assign_defaults params, prefixes
16
+ create_filter params, prefixes
17
+ end
18
18
 
19
- field = del_prefix(key, prefixes[:main])
20
- filter = add_where(filter, field, value, prefixes)
21
- end
19
+ private
22
20
 
21
+ def assign_defaults(params, prefixes)
23
22
  params[prefixes[:sort]] ||= 'id'
24
23
  params[prefixes[:direction]] ||= 'desc'
24
+ params
25
+ end
26
+
27
+ def create_filter(params, prefixes)
28
+ filter = self
29
+ params.each do |key, value|
30
+ if key.start_with?(prefixes[:main]) && !value.blank? && key != "#{prefixes[:main]}button"
31
+ filter = add_where(filter, key, value, prefixes)
32
+ end
33
+ end
25
34
 
26
- sort_column = add_model params[prefixes[:sort]]
27
35
  # TODO: included model fields not in 'column_names'. Somehow need to check if given column name valid
28
36
  # sort_column = column_names.include?(params[prefixes[:sort]]) ? params[prefixes[:sort]] : add_model('id')
29
- sort_direction = %w(asc desc).include?(params[prefixes[:direction]]) ? params[prefixes[:direction]] : 'desc'
30
-
31
- filter.order("#{sort_column} #{sort_direction}")
37
+ filter.order("#{add_model params[prefixes[:sort]]} #{sort_direction(params, prefixes)}")
32
38
  end
33
39
 
34
- private
40
+ def sort_direction(params, prefixes)
41
+ %w(asc desc).include?(params[prefixes[:direction]]) ? params[prefixes[:direction]] : 'desc'
42
+ end
35
43
 
36
44
  def add_where(filter, field, value, prefixes)
37
- if field.start_with?(prefixes[:from])
38
- filter.where("#{add_model(del_prefix(field, prefixes[:from]))} >= ?", value)
45
+ f = prefixed? field, prefixes[:main]
46
+ return filter unless f
39
47
 
40
- elsif field.start_with?(prefixes[:to])
41
- filter.where("#{add_model(del_prefix(field, prefixes[:to]))} <= ?", value)
42
-
43
- elsif field.start_with?(prefixes[:exact])
44
- filter.where("#{add_model(del_prefix(field, prefixes[:exact]))} = ?", value)
48
+ f, op = get_operator f, prefixes
49
+ f = add_model f
45
50
 
51
+ if op.blank?
52
+ condition = "#{f} like ?"
53
+ value = "%#{value}%"
46
54
  else
47
- filter.where("#{add_model(field)} like ?", "%#{value}%")
55
+ condition = "#{f} #{op}"
48
56
  end
57
+
58
+ filter.where(condition, value)
49
59
  end
50
60
 
51
- def del_prefix(name, prefix)
52
- return name.gsub(prefix, '').to_s if name.start_with?(prefix)
53
- name
61
+ def prefixed?(text, prefix)
62
+ return false unless text.start_with? prefix
63
+ text.sub(prefix, '')
64
+ end
65
+
66
+ def get_operator(field, prefixes)
67
+ operators = {
68
+ prefixes[:from] => '>= ?',
69
+ prefixes[:to] => '<= ?',
70
+ prefixes[:exact] => '= ?'
71
+ }
72
+
73
+ operators.each do |k, v|
74
+ f = prefixed? field, k
75
+ return f, v if f
76
+ end
77
+
78
+ [field, nil]
54
79
  end
55
80
 
56
81
  def add_model(field)
@@ -1,4 +1,4 @@
1
1
  # EasyFilter version number
2
2
  module EasyFilter
3
- VERSION = '0.1.1'
3
+ VERSION = '0.2.0'
4
4
  end
@@ -18,20 +18,7 @@ module EasyFilter
18
18
 
19
19
  filters.each do |filter|
20
20
  f = determine_column filter, model_class
21
- form += render_easy 'form_field_open', prefixes
22
-
23
- case f[:col_type]
24
- when :datetime
25
- form += render_easy 'field_datetime', prefixes, f
26
-
27
- when :array
28
- form += render_easy 'field_array', prefixes, f
29
-
30
- else
31
- form += render_easy 'field_text', prefixes, f
32
- end
33
-
34
- form += render_easy 'form_field_close', prefixes
21
+ form += render_field f, prefixes
35
22
  end
36
23
 
37
24
  form += render_easy 'buttons', prefixes
@@ -40,25 +27,54 @@ module EasyFilter
40
27
 
41
28
  private
42
29
 
30
+ def render_field(filter, prefixes)
31
+ form = render_easy 'form_field_open', prefixes
32
+ view = column_view filter[:col_type]
33
+ form += render_easy view, prefixes, filter
34
+ form + render_easy('form_field_close', prefixes)
35
+ end
36
+
37
+ def column_view(col_type)
38
+ views = {
39
+ datetime: 'field_datetime',
40
+ date: 'field_datetime',
41
+ array: 'field_array'
42
+ }
43
+ view = views[col_type]
44
+ view ||= 'field_text'
45
+ view
46
+ end
47
+
43
48
  def determine_column(filter, model_class)
44
- filter = {field: filter.to_s} if filter.is_a?(Symbol) || filter.is_a?(String)
45
- p "debug:"
46
- p filter[:field]
47
- filter[:field] = filter[:field].to_s
49
+ filter = check_filter_values filter, model_class
48
50
 
49
- filter[:label] ||= t("activerecord.attributes.#{model_class.name.downcase}.#{filter[:field]}")
51
+ if filter[:items].nil?
52
+ filter[:col_type] = column_type_from_model model_class, filter[:field]
53
+ filter = check_boolean filter
54
+ else
55
+ filter[:col_type] = :array
56
+ end
50
57
 
51
- unless filter[:items].nil?
58
+ filter
59
+ end
60
+
61
+ def check_boolean(filter)
62
+ if filter[:col_type] == :boolean
63
+ filter[:items] = boolean_array
52
64
  filter[:col_type] = :array
53
- else
54
- model_class.columns.each do |column|
55
- if column.name == filter[:field]
56
- filter[:col_type] = column.type
57
- break
58
- end
59
- end
60
65
  end
66
+ filter
67
+ end
61
68
 
69
+ def column_type_from_model(model_class, field)
70
+ model_class.columns.each { |column| return column.type if column.name == field }
71
+ nil
72
+ end
73
+
74
+ def check_filter_values(filter, model_class)
75
+ filter = { field: filter.to_s } if filter.is_a?(Symbol) || filter.is_a?(String)
76
+ filter[:field] = filter[:field].to_s
77
+ filter[:label] ||= t("activerecord.attributes.#{model_class.name.underscore}.#{filter[:field]}")
62
78
  filter
63
79
  end
64
80
 
@@ -67,5 +83,10 @@ module EasyFilter
67
83
  locals: { filter_prefixes: prefixes,
68
84
  filter: filter }
69
85
  end
86
+
87
+ def boolean_array
88
+ [{ value: 1, text: t(:yes), color: :success, icon: 'check' },
89
+ { value: 0, text: t(:no), color: :danger, icon: 'remove' }]
90
+ end
70
91
  end
71
92
  end
@@ -11,6 +11,7 @@ class CreateUsersTable < ActiveRecord::Migration
11
11
  create_table :users do |t|
12
12
  t.string :name
13
13
  t.string :born
14
+ t.string :field_with_underscore
14
15
  end
15
16
  puts 'Users created'
16
17
  end
@@ -28,10 +29,10 @@ end
28
29
  describe EasyFilter::ModelAdditions do
29
30
  before(:all) do
30
31
  CreateUsersTable.migrate(:up)
31
- User.create!(id: 1, name: 'aaaa aaaa', born: '2001.01.01')
32
- User.create!(id: 2, name: 'aaaa bbbb', born: '2002.01.01')
33
- User.create!(id: 3, name: 'bbbb bbbb', born: '2003.01.01')
34
- User.create!(id: 4, name: 'aaaa cccc', born: '2004.01.01')
32
+ User.create!(id: 1, name: 'aaaa aaaa', born: '2001.01.01', field_with_underscore: 'aaaa')
33
+ User.create!(id: 2, name: 'aaaa bbbb', born: '2002.01.01', field_with_underscore: 'aaaa')
34
+ User.create!(id: 3, name: 'bbbb bbbb', born: '2003.01.01', field_with_underscore: 'bbbb')
35
+ User.create!(id: 4, name: 'aaaa cccc', born: '2004.01.01', field_with_underscore: 'aaaa')
35
36
  end
36
37
 
37
38
  after(:all) do
@@ -72,6 +73,14 @@ describe EasyFilter::ModelAdditions do
72
73
  expect(users.count).to eq(2)
73
74
  end
74
75
 
76
+ it 'should filter by first_name' do
77
+ users = User.scoped.easy_filter('filter_field_with_underscore' => 'aa')
78
+ expect(users.count).to eq(3)
79
+
80
+ users = User.scoped.easy_filter('filter_field_with_underscore' => 'bb')
81
+ expect(users.count).to eq(1)
82
+ end
83
+
75
84
  it 'should exact filter by id' do
76
85
  users = User.scoped.easy_filter('filter_exact_id' => '1')
77
86
  expect(users.count).to eq(1)
@@ -94,6 +103,5 @@ describe EasyFilter::ModelAdditions do
94
103
 
95
104
  users = User.scoped.easy_filter('filter_to_born' => '2003.01.01')
96
105
  expect(users.count).to eq(3)
97
-
98
106
  end
99
107
  end
metadata CHANGED
@@ -1,97 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Kepes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-06 00:00:00.000000000 Z
11
+ date: 2015-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activerecord
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '3.2'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.2'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: sqlite3
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: jquery-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: jquery-ui-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
125
  description: Filter and sort ActiveRecord model for Rails app with Bootstrap view
@@ -102,12 +130,12 @@ executables: []
102
130
  extensions: []
103
131
  extra_rdoc_files: []
104
132
  files:
105
- - .gitignore
106
- - .rspec
107
- - .rubocop.yml
108
- - .ruby-gemset
109
- - .ruby-version
110
- - .travis.yml
133
+ - ".gitignore"
134
+ - ".rspec"
135
+ - ".rubocop.yml"
136
+ - ".ruby-gemset"
137
+ - ".ruby-version"
138
+ - ".travis.yml"
111
139
  - CHANGELOG.md
112
140
  - Gemfile
113
141
  - LICENSE.txt
@@ -143,12 +171,12 @@ require_paths:
143
171
  - lib
144
172
  required_ruby_version: !ruby/object:Gem::Requirement
145
173
  requirements:
146
- - - ! '>='
174
+ - - ">="
147
175
  - !ruby/object:Gem::Version
148
176
  version: '0'
149
177
  required_rubygems_version: !ruby/object:Gem::Requirement
150
178
  requirements:
151
- - - ! '>='
179
+ - - ">="
152
180
  - !ruby/object:Gem::Version
153
181
  version: '0'
154
182
  requirements: []