paramore 3.6.1 → 3.7.0

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: e89aafd5746d660df92543a70a8112942680966a82e22175f07c4044d3953687
4
- data.tar.gz: 2528a6663d5bcc4571191b0a84f42098e7a7d29877589b52bf681257fbac4db8
3
+ metadata.gz: 7892599e7d615d8851d79fb96e02335dc65bf5edc26c1f075c2914a3cf073b30
4
+ data.tar.gz: 16105241093b7f0c931533a4b2712ba183404a1df40b57c30dc6f6f00c41f37d
5
5
  SHA512:
6
- metadata.gz: c75f36527373258191ba5fcc1c4e5243151858d17515e0a8f2b64ebeaa14ac6745d6e133158648d3398eeb9c8e6b758e9942da34c99eb76b9b80b2b71ceeef39
7
- data.tar.gz: 5ff9d3c4829a22667bb5b1f1080531f10c9a247442bf099dab611e2f9d9265f61ccd855f8b1f959f59a50b525ac7ee7cf2d4dcddeb1fbefb419e1b77d6873320
6
+ metadata.gz: 685214b2c04ee09db06517ef0014939b6bb135c97877deab6ab233bdfdb67812fcada89643d2473e528ee9ecff4b6daa18d3dafbdf3a650bab15ed8577ec1a91
7
+ data.tar.gz: '059f6eb4b4a00cba24b2aca2b1db26a2a1e6a10167bf2c1653be0d3858d1044c86c23042ef16a4f9233d19c04fa76b59dee276b0f87ca471a465fd85a36ad58c'
@@ -54,9 +54,11 @@ module Paramore
54
54
  def typecast_array(field, array, name)
55
55
  raise Paramore::ArrayExpected.new(name, array) unless array.is_a?(Array)
56
56
 
57
- array
57
+ result = array
58
58
  .reject { |unit| unit.to_s == '' && field.compact? }
59
59
  .map { |unit| cast(Paramore.field(field.type.first, null: true), unit) }
60
+
61
+ field.compact? ? result.compact : result
60
62
  end
61
63
 
62
64
  def typecast_value(type, value, name)
@@ -6,7 +6,7 @@ module Paramore
6
6
  null: false,
7
7
  compact: false,
8
8
  default: nil,
9
- empty: true,
9
+ empty: false,
10
10
  required: true,
11
11
  }.freeze
12
12
 
@@ -13,11 +13,15 @@ module Paramore
13
13
  parse_type(type.first)
14
14
  when Hash
15
15
  type.map do |name, field|
16
- case field.type
17
- when Array, Hash
18
- { name => parse_type(field.type) }
16
+ if field.wildly_keyed_hash?
17
+ { name => {} }
19
18
  else
20
- name
19
+ case field.type
20
+ when Array, Hash
21
+ { name => parse_type(field.type) }
22
+ else
23
+ name
24
+ end
21
25
  end
22
26
  end
23
27
  else
@@ -53,7 +53,23 @@ module Paramore
53
53
  module Date
54
54
  module_function
55
55
  def [](input)
56
- Date.parse(input)
56
+ ::Date.parse(input)
57
+ end
58
+ end
59
+
60
+ module UploadedFile
61
+ VALID_CLASSES = [
62
+ File,
63
+ StringIO,
64
+ Rack::Test::UploadedFile,
65
+ ActionDispatch::Http::UploadedFile,
66
+ ].freeze
67
+
68
+ module_function
69
+ def [](input)
70
+ raise "#{input.class} is not a file!" unless input.class.in?(VALID_CLASSES)
71
+
72
+ input
57
73
  end
58
74
  end
59
75
  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.6.1
4
+ version: 3.7.0
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-09-29 00:00:00.000000000 Z
11
+ date: 2021-10-05 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.6.1 !
118
+ Thank you for installing Paramore 3.7.0 !
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
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
134
  - !ruby/object:Gem::Version
135
135
  version: '0'
136
136
  requirements: []
137
- rubygems_version: 3.2.3
137
+ rubygems_version: 3.0.8
138
138
  signing_key:
139
139
  specification_version: 4
140
140
  summary: A declarative approach to Rails' strong parameter typing and sanitizing