rails_core_extensions 0.4.0 → 0.6.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
  SHA256:
3
- metadata.gz: e6f3d03a0f590162030b45af40b62bc06cf43070b39329e128ecc8019a4dd493
4
- data.tar.gz: 7464ef1b358eabf26b9acbf981c0521839ac2ab0188b4b5e684faedeedfacf23
3
+ metadata.gz: c7a7bd9b6bb639dc50a122b94ee7b46128875ab70b493d2c0846f795308ae5ef
4
+ data.tar.gz: b5ed7c23cb5b1102a7332c31c7df5291a8b6f19fd3417283af991e122ce8cbd6
5
5
  SHA512:
6
- metadata.gz: ecb48e82f04873abc00679c6527e0e00f629e8e654747969a3f69eb0939730eca1272de3710f4e5308cd65b563483f599cafa5c15543a7b470aa4ba065713b14
7
- data.tar.gz: 03fc9650d0d19bb1bb46c871f16becb722afdc65e061405e60e54c38e858ac74f91e8df5e83a453970473ba1d15c18c80614984c439a41c9e56ff7ae6da4d71b
6
+ metadata.gz: 1f9327c73a62ed82c97dac61fa7eed4bb56ab1c54a1993e7299abdddb6c3c3d316889e422f7c6eaf889a7819628f84599b86c565740034053fd4e9674dbc06d5
7
+ data.tar.gz: 3afa1de1ffe2875da34aa4cacff8081101f979c9c92d5528956394ea32c35176904368c888cfb4c58c82d9cd169a5d33064ac9ce6e883020b9b90a19d1736ad3
@@ -35,7 +35,6 @@ Style/IfUnlessModifier:
35
35
  Description: Favor modifier if/unless usage when you have a single-line body.
36
36
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
37
37
  Enabled: false
38
- MaxLineLength: 100
39
38
  Style/OptionHash:
40
39
  Description: Don't use option hashes when you can use keyword arguments.
41
40
  Enabled: false
@@ -98,40 +97,16 @@ Style/SingleLineMethods:
98
97
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-single-line-methods
99
98
  Enabled: false
100
99
  AllowIfMethodIsEmpty: true
101
- Style/StringLiterals:
102
- Description: Checks if uses of quotes match the configured preference.
103
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-string-literals
104
- Enabled: true
105
- EnforcedStyle: single_quotes
106
- SupportedStyles:
107
- - single_quotes
108
- - double_quotes
109
- Style/StringLiteralsInInterpolation:
110
- Description: Checks if uses of quotes inside expressions in interpolated strings
111
- match the configured preference.
112
- Enabled: true
113
- EnforcedStyle: single_quotes
114
- SupportedStyles:
115
- - single_quotes
116
- - double_quotes
117
100
  Style/TrailingCommaInArguments:
118
101
  Description: Checks for trailing comma in argument lists.
119
102
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas
120
103
  EnforcedStyleForMultiline: comma
121
- SupportedStyles:
122
- - comma
123
- - consistent_comma
124
- - no_comma
125
104
  Enabled: true
126
- Style/TrailingCommaInLiteral:
105
+ Style/TrailingCommaInArrayLiteral:
127
106
  Description: Checks for trailing comma in array and hash literals.
128
107
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas
129
108
  EnforcedStyleForMultiline: comma
130
- SupportedStyles:
131
- - comma
132
- - consistent_comma
133
- - no_comma
134
- Enabled: true
109
+ Enabled: true
135
110
  Metrics/AbcSize:
136
111
  Description: A calculated magnitude based on number of assignments, branches, and
137
112
  conditions.
@@ -235,9 +210,8 @@ Lint/HandleExceptions:
235
210
  Description: Don't suppress exception.
236
211
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
237
212
  Enabled: false
238
- Lint/LiteralInCondition:
239
- Description: Checks of literals used in conditions.
240
- Enabled: false
241
213
  Lint/LiteralInInterpolation:
242
214
  Description: Checks for literals used in interpolation.
243
215
  Enabled: false
216
+ Style/FrozenStringLiteralComment:
217
+ Enabled: false
@@ -1,16 +1,19 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3
4
3
  - 2.4
5
4
  - 2.5
5
+ matrix:
6
+ exclude:
7
+ - rvm: 2.4
8
+ gemfile: gemfiles/rails6.gemfile
9
+
6
10
  script: "bundle exec rake spec"
7
11
  gemfile:
8
- - gemfiles/rails4.gemfile
9
12
  - gemfiles/rails5.gemfile
10
- notifications:
11
- email:
12
- - support@travellink.com.au
13
- flowdock:
14
- secure: A0XTB5fVkDI9PSeyA4kMIckB4EPdoBlCIae+zatkcqlUJcqTc9wMFSrlnjzA4x+ramqGlwprPXUtEGVVEJwBcoaUjSOnNqZjeRAE1HuZ3D91/UaXZArp+skTGkO/qqek6pSYsAwODN5Q/Fr0qpV6cRzUuQ9nvGA/8sg/Ano2Cno=
13
+ - gemfiles/rails6.gemfile
15
14
  sudo: false
16
15
  cache: bundler
16
+ # Due to this issue, stil not resolved: travis-ci/travis-ci#8969
17
+ before_install:
18
+ - gem update --system
19
+ - gem install bundler
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.0
4
+
5
+ * [TT-5542] Remove Rails 4 support
6
+ * [TT-5642] Fixed sortable so it can sort on empty scopes
7
+
8
+ ## 0.5.0
9
+
10
+ * Support include_blank properly (was broken)
11
+
3
12
  ## 0.4.0 (Removes Rails3 Support)
4
13
 
5
14
  * [TT-3778] Store the cacheable attributes in memory for the duration of the request
@@ -2,5 +2,5 @@ source :rubygems
2
2
  gemspec :path => '../'
3
3
 
4
4
  group :development, :test do
5
- gem 'activerecord', '~> 4.0'
5
+ gem 'activerecord', '~> 6.0.0.rc1'
6
6
  end
@@ -52,9 +52,9 @@ module RailsCoreExtensions
52
52
  def boolean_select_tag(name, *args)
53
53
  options = args.extract_options!
54
54
  options ||= {}
55
- opts = [['Yes', '1'], ['No', '0']]
56
- opts = [blank_option] + opts if options[:include_blank]
57
- select_tag name, options_for_select(opts, options[:selected])
55
+ yes_no_opts = [%w[Yes 1], %w[No 0]]
56
+ option_tags = options_for_select(yes_no_opts, options[:selected])
57
+ select_tag name, option_tags, options.except(:selected)
58
58
  end
59
59
  end
60
60
  end
@@ -15,21 +15,18 @@ module RailsCoreExtensions
15
15
 
16
16
  def sort
17
17
  scope = @params[:scope].try(:to_sym)
18
+ @params[scope] = nil if @params[scope].blank?
18
19
 
19
- param_key = @controller_name.singularize
20
- param_key += "_#{@params[scope]}" if scope
21
-
22
- params_collection = @params["#{param_key}_body".to_sym]
23
-
24
- if params_collection.blank?
25
- name = "#{scope.to_s.gsub('_id', '')}_#{@params[scope]}_body".to_sym
26
- params_collection = @params[name]
20
+ body_key = @controller_name.singularize + (@params[scope] ? "_#{@params[scope]}" : '')
21
+ sorted_id_list = @params["#{body_key}_body".to_sym]
22
+ if sorted_id_list.blank?
23
+ sorted_id_list = @params["#{scope.to_s.gsub('_id', '')}_#{@params[scope]}_body".to_sym]
27
24
  end
28
25
 
29
26
  collection = @klass.reorder(:position)
30
- collection = collection.where(@params.slice(scope.to_sym)) if scope
27
+ collection = collection.where(@params.slice(scope)) unless scope.blank?
31
28
 
32
- sort_collection(collection, params_collection.map(&:to_i))
29
+ sort_collection(collection, sorted_id_list.map(&:to_i))
33
30
  end
34
31
 
35
32
  private
@@ -1,3 +1,3 @@
1
1
  module RailsCoreExtensions
2
- VERSION = '0.4.0'
2
+ VERSION = '0.6.0'
3
3
  end
@@ -19,16 +19,17 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_dependency 'activerecord', ['>= 4.0.0']
23
- spec.add_dependency 'actionpack', ['>= 4.0.0']
22
+ spec.add_dependency 'activerecord', ['>= 5.0.0']
23
+ spec.add_dependency 'actionpack', ['>= 5.0.0']
24
24
 
25
- spec.add_development_dependency 'bundler', '~> 1.3'
25
+ spec.add_development_dependency 'bundler', '~> 2.0'
26
26
  spec.add_development_dependency 'rake'
27
27
  spec.add_development_dependency 'rspec'
28
28
  spec.add_development_dependency 'activerecord-nulldb-adapter'
29
29
  spec.add_development_dependency 'coverage-kit'
30
30
  spec.add_development_dependency 'simplecov-rcov'
31
31
  spec.add_development_dependency 'coveralls'
32
+ spec.add_development_dependency 'rubocop'
32
33
  spec.add_development_dependency 'sqlite3'
33
34
  spec.add_development_dependency 'travis'
34
35
 
@@ -26,10 +26,9 @@ describe RailsCoreExtensions::Sortable do
26
26
  models.each(&:destroy)
27
27
  end
28
28
 
29
- let(:params) { { model_body: [one.id, thr.id, two.id] } }
30
29
  subject { RailsCoreExtensions::Sortable.new(params, 'models') }
31
30
 
32
- describe 'when unscoped' do
31
+ RSpec.shared_examples 'unscoped' do
33
32
  let(:scope) { Model.reorder(:position) }
34
33
  specify { expect(scope.pluck(:name)).to eq %w(One Two Thr) }
35
34
  it 'should correctly sort' do
@@ -38,6 +37,16 @@ describe RailsCoreExtensions::Sortable do
38
37
  end
39
38
  end
40
39
 
40
+ describe 'when unscoped due to blank scope' do
41
+ let(:params) { { model_body: [one.id, thr.id, two.id], scope: "" } }
42
+ it_behaves_like 'unscoped'
43
+ end
44
+
45
+ describe 'when unscoped due to lack of scope' do
46
+ let(:params) { { model_body: [one.id, thr.id, two.id] } }
47
+ it_behaves_like 'unscoped'
48
+ end
49
+
41
50
  describe 'when scoped' do
42
51
  let(:scope) { Model.where(category_id: 1).reorder(:position) }
43
52
  specify { expect(scope.pluck(:name)).to eq %w(One Two) }
@@ -1,6 +1,6 @@
1
- require 'rails_core_extensions/action_view_extensions'
1
+ require "rails_core_extensions/action_view_extensions"
2
2
 
3
- require 'action_view'
3
+ require "action_view"
4
4
 
5
5
  describe RailsCoreExtensions::ActionViewExtensions do
6
6
  before do
@@ -11,15 +11,30 @@ describe RailsCoreExtensions::ActionViewExtensions do
11
11
  end
12
12
  end
13
13
 
14
- after { Object.send(:remove_const, 'TestModel1') }
14
+ after { Object.send(:remove_const, "TestModel1") }
15
15
 
16
- subject { TestModel1.new }
16
+ let(:helper) { TestModel1.new }
17
17
 
18
- context '#boolean_select_tag' do
19
- it 'should generate and have selected element selected' do
20
- expect(subject.boolean_select_tag('name', selected: '0')).to eq(
21
- subject.select_tag('name', subject.options_for_select([['Yes', '1'], ['No', '0']], selected: '0'))
22
- )
18
+ context "#boolean_select_tag" do
19
+ let(:yes_no) { [%w[Yes 1], %w[No 0]] }
20
+ subject { helper.boolean_select_tag("name", args) }
21
+
22
+ context "when elements selected" do
23
+ let(:args) { { selected: 0 } }
24
+ let(:options) { helper.options_for_select(yes_no, selected: "0") }
25
+
26
+ it { is_expected.to eq helper.select_tag("name", options) }
27
+
28
+ context "and other options passed" do
29
+ let(:args) { { selected: "0", include_blank: "All" } }
30
+ it {
31
+ is_expected.to eq helper.select_tag(
32
+ "name",
33
+ options,
34
+ include_blank: "All",
35
+ )
36
+ }
37
+ end
23
38
  end
24
39
  end
25
40
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_core_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Noack
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-03-18 00:00:00.000000000 Z
12
+ date: 2019-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -17,42 +17,42 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 4.0.0
20
+ version: 5.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 4.0.0
27
+ version: 5.0.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: actionpack
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 4.0.0
34
+ version: 5.0.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: 4.0.0
41
+ version: 5.0.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: bundler
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '1.3'
48
+ version: '2.0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '1.3'
55
+ version: '2.0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rake
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -137,6 +137,20 @@ dependencies:
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: rubocop
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
140
154
  - !ruby/object:Gem::Dependency
141
155
  name: sqlite3
142
156
  requirement: !ruby/object:Gem::Requirement
@@ -211,8 +225,8 @@ files:
211
225
  - LICENSE.txt
212
226
  - README.md
213
227
  - Rakefile
214
- - gemfiles/rails4.gemfile
215
228
  - gemfiles/rails5.gemfile
229
+ - gemfiles/rails6.gemfile
216
230
  - lib/rails_core_extensions.rb
217
231
  - lib/rails_core_extensions/action_controller_sortable.rb
218
232
  - lib/rails_core_extensions/action_view_currency_extensions.rb