eitil 1.1.8 → 1.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 553e46e2412cfb314a151d30836ee432400c76a6df65f11a97bcedf5b7f988d1
4
- data.tar.gz: 70e2e7fcc0318f80580a1354645b7cdf74361aff39e863a3f18ec688557a0dfd
3
+ metadata.gz: a233118971dbb65f4191fa093109a25178e90ba7b036d60d4a2af89641881e47
4
+ data.tar.gz: 400bd4e6843244dc54ee9f22b2713e0cf5372b94a226d7fe0f9b5215d5db1fc5
5
5
  SHA512:
6
- metadata.gz: ab78b467f0161f4d8e2af95eb734cfddea9acac0bb7b1cfffd50bff2d7debdcc8840d76f00a3e9f51c430bd0cf7796bf2cb11509536a788afd192adcb343b506
7
- data.tar.gz: 21ed2ec339292a9b9349610c72179f7dd55bbf0fa6849be0b7f7c76d8b6ec11e2e1067da7135b277a161759eef136439d5b69248154a1aa5634830b15ff87977
6
+ metadata.gz: 685e95309951ecaa9d8b512aa571a84ae4f822360da6b8c44b651f993dce65ed64c2a90e1d45f5c5a05a704060b78d8f13ac19b41e7eeb2d74cea6c50a505bfe
7
+ data.tar.gz: e8fb9af5d30cd42340dcb745c6e802d50f79fed880658d20aea864aa14dcc15ce1d66ec96d46ff211d76e8bcbeb4aad65b67f02c1d917d214712ba2d7a959667
@@ -1,14 +1,18 @@
1
1
 
2
2
  # require "eitil_core/application_controller/permit_model_atts"
3
3
 
4
+ require "pry"
5
+
4
6
  module ActionController
5
7
  class Parameters
6
8
 
7
- def permit_model_atts(*models, include: nil, except: nil)
9
+ def permit_model_atts(*models, include: nil, except: nil, arrays: nil, hashes: nil)
8
10
 
9
- models = models.is_a?(Array) ? models : [models]
10
- except = except.is_a?(Array) ? except : [except]
11
+ models = models.is_a?(Array) ? models : [models]
12
+ except = except.is_a?(Array) ? except : [except]
11
13
  include = include.is_a?(Array) ? include : [include]
14
+ arrays = arrays.is_a?(Array) ? arrays : [arrays]
15
+ hashes = hashes.is_a?(Array) ? hashes : [hashes]
12
16
 
13
17
  columns = models.map do |model|
14
18
  model.columns_hash.keys.map &:to_sym
@@ -17,8 +21,23 @@ module ActionController
17
21
  default_reject = %i( id updated_at created_at )
18
22
  given_reject = except.map { |key| key&.to_sym }
19
23
  accepted_values = columns + include - default_reject - given_reject
24
+
25
+ arrays = arrays.all?(&:present?) ? arrays.each_with_object({}) { |i,h| h[i] = [] } : nil
26
+ hashes = hashes.all?(&:present?) ? hashes.each_with_object({}) { |i,h| h[i] = {} } : nil
27
+
28
+ if arrays.blank? and hashes.blank?
29
+ return self.permit(*accepted_values)
30
+
31
+ elsif arrays.blank?
32
+ return self.permit(*accepted_values, **hashes)
33
+
34
+ elsif hashes.blank?
35
+ return self.permit(*accepted_values, **arrays)
36
+
37
+ else
38
+ return self.permit(*accepted_values, **arrays, **hashes)
20
39
 
21
- return self.permit(*accepted_values)
40
+ end
22
41
  end
23
42
 
24
43
  end
data/lib/eitil/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Eitil
2
2
 
3
- VERSION = '1.1.8'
3
+ VERSION = '1.1.9'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eitil
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jurriaan Schrofer