paramore 3.8.0 → 3.8.4

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: c3bb9a50f6bb63dc53c88d85e39689b00ef649e0a025cef6819499b38eceed03
4
- data.tar.gz: f2b156953e944825ebf6f4a9952b777ad35bbda553354d9ffcb9dcc0cfc6d6b6
3
+ metadata.gz: 0cc67c79a09ee03ca89162f574ff3b6fda2b24bedc6e3a20ec5c0e780e9999c1
4
+ data.tar.gz: 24895561218cf93fb309b31c40b370ddd0cd0899986342d0b1d847f11459525f
5
5
  SHA512:
6
- metadata.gz: 7c587bfe07b88eaa6fa15cfba9b901feaa39c19b95a37f0c930b4074e38c0f8b8321b08a25e25dcf57df7e73b53a3b9d76eaf4a61861d7d9c6f2afa710a6832f
7
- data.tar.gz: 6cded21a8fd8dad5ef7a0b26fc9faed8b9ac046a3a46ee85ac5f950ccb406a500a5c66fce564956978a12f11a02c7ad1148fdeb3a9a09097fe931dcdf8d85221
6
+ metadata.gz: 28cf57ff69601f5a351a817b104111595bf1fb7a05cefa14066701710c389b7dfef68c07098f88865e2aa0db358ce4987c9a71aa9b76553f9fcd9817f851c1d2
7
+ data.tar.gz: 0ce7299a531ee49b3695c542873932326561bb8ae6b7af812071b41f1ac45ef11e89e3004c5a628005afdc9e3884c47d5b632656b889b4e6a6bcbc20dc761a5c
@@ -14,6 +14,16 @@ module Paramore
14
14
  else
15
15
  raise Paramore::NilParameter, name
16
16
  end
17
+ elsif value == ''
18
+ if field.allow_empty?
19
+ return typecast_value(field.type, '', name)
20
+ elsif field.default?
21
+ return field.default
22
+ elsif field.nullable?
23
+ return
24
+ else
25
+ raise Paramore::NilParameter, name
26
+ end
17
27
  end
18
28
 
19
29
  case field.type
@@ -22,11 +32,7 @@ module Paramore
22
32
  when Array
23
33
  typecast_array(field, value, name)
24
34
  else
25
- if value == '' && !field.allow_empty? && field.nullable?
26
- field.default? ? field.default : nil
27
- else
28
- typecast_value(field.type, value, name)
29
- end
35
+ typecast_value(field.type, value, name)
30
36
  end
31
37
  end
32
38
 
@@ -30,20 +30,33 @@ module Paramore
30
30
  define_method(accessor_name) do |rails_parameters = params|
31
31
  return instance_variable_get("@#{accessor_name}") if instance_variable_defined?("@#{accessor_name}")
32
32
 
33
- if rails_parameters[required_parameter_name].nil? && types_definition.default
33
+ if rails_parameters[required_parameter_name].nil? && types_definition.default?
34
34
  instance_variable_set("@#{accessor_name}", types_definition.default)
35
35
  return instance_variable_get("@#{accessor_name}")
36
36
  end
37
37
 
38
- permitted_params = rails_parameters
39
- .require(required_parameter_name)
40
- .permit(permitted_parameter_argument)
38
+ required_params = rails_parameters.require(required_parameter_name)
39
+ should_permit = permitted_parameter_argument.any? && required_params.is_a?(ActionController::Parameters)
40
+
41
+ permitted_params =
42
+ if should_permit
43
+ required_params.permit(permitted_parameter_argument)
44
+ else
45
+ required_params
46
+ end
41
47
 
42
48
  parameter_values =
43
49
  if types_definition.is_a?(Paramore::Field)
44
- permitted_params.merge(
45
- Paramore::CastParameters.run(types_definition, permitted_params.to_hash.with_indifferent_access)
46
- ).permit!
50
+ if should_permit
51
+ permitted_params.merge(
52
+ Paramore::CastParameters.run(
53
+ types_definition,
54
+ permitted_params.to_hash.with_indifferent_access
55
+ )
56
+ ).permit!
57
+ else
58
+ Paramore::CastParameters.run(types_definition, permitted_params)
59
+ end
47
60
  else
48
61
  permitted_params.permit!
49
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paramore
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.0
4
+ version: 3.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Kairevičius
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-11 00:00:00.000000000 Z
11
+ date: 2021-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-rails
@@ -115,7 +115,7 @@ licenses:
115
115
  - MIT
116
116
  metadata: {}
117
117
  post_install_message: |
118
- Thank you for installing Paramore 3.8.0 !
118
+ Thank you for installing Paramore 3.8.4 !
119
119
  From the command line you can run `paramore` to generate a configuration file
120
120
 
121
121
  More details here : https://github.com/lumzdas/paramore/blob/master/README.md