better_params 0.2.0 → 0.4.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: a924bb63fe13b858b99170f2d27e1c882f9a4eb381e47dcfa962286d6a95ff0e
4
- data.tar.gz: 81b1e1fc0f8416dd46f1fd9a2f7200ce0c357a61cb09170f1c4915cf74ce16be
3
+ metadata.gz: fc59027f4b9a9d99bd768339cf3368aac2536c08a393d22d46b1b379a1a6a306
4
+ data.tar.gz: 2a77e2116e608a834e0990bc1eda84a339f080f65f20c0b6da124792ed0c7497
5
5
  SHA512:
6
- metadata.gz: bc3344a8ad941a3fb0900292459129fec8a8f6384797f5b1038023b194b7cd2d66a17d43fd6610b945e3324d429087a07b58bf560308712c6e10a2fd6c45f8dc
7
- data.tar.gz: 7e38ff6634e8ec8dad96156afbd3af4d04d8e626abe30baade8c771326efa07e3f1dbad4cb0410e65370c27eec95c1a8e6ad50099f2b4c6cf2656514c9637f7d
6
+ metadata.gz: 75ae84302b1b87b675b912702078df485e007b8ff24877c67e8cb477b7828f454cf1126a5bd41a2a21c05757676c97978920aac2b0838a96e4ba941ebc31feae
7
+ data.tar.gz: 4cc0c0594260ab44f3af13f737c42fe51b59c9f7e148e2aec27808336b1b441ab4dc2a378d2599743d9c056611fcbce238c81f366a5c9c5718d5fb5df6b7cd30
@@ -6,7 +6,12 @@ module BetterParams
6
6
  return true if value.is_a? TrueClass
7
7
  return false if value.is_a? FalseClass
8
8
 
9
- value.to_s.downcase == 'true'
9
+ downcased_value = value.to_s.downcase
10
+
11
+ return true if ['true', '1'].include?(downcased_value)
12
+ return false if ['false', '0'].include?(downcased_value)
13
+
14
+ nil
10
15
  end
11
16
  end
12
17
  end
@@ -16,8 +16,10 @@ module BetterParams
16
16
  nested_params = params[key]
17
17
  next params if nested_params.nil?
18
18
 
19
+ # Try to fetch relation value
20
+ relation = object.public_send(relation_key(key))
21
+
19
22
  # Can't process key if a nested object doesn't exists
20
- relation = object.public_send(key)
21
23
  next params if relation.nil?
22
24
 
23
25
  if relation.is_a? Enumerable
@@ -49,6 +51,12 @@ module BetterParams
49
51
  end
50
52
  end
51
53
 
54
+ # Removes the "_attributes" suffix if exists
55
+ def relation_key(key)
56
+ match_data = key.to_s.match(/(.+)_attributes\z/)
57
+ match_data.nil? ? key : match_data[1].to_sym
58
+ end
59
+
52
60
  # Adds { id: 1, _destroy: true } objects to an array if an object with id
53
61
  # is not exists in the array but exists in a relation
54
62
  def add_destroy_info(params_array, relation)
@@ -1,3 +1,3 @@
1
1
  module BetterParams
2
- VERSION = '0.2.0'
2
+ VERSION = '0.4.0'.freeze
3
3
  end
data/lib/better_params.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'rails'
2
+ require 'action_controller'
1
3
  require 'better_params/railtie'
2
4
  require 'better_params/base'
3
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_params
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bazov Peter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-11 00:00:00.000000000 Z
11
+ date: 2022-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  - !ruby/object:Gem::Version
106
106
  version: '0'
107
107
  requirements: []
108
- rubygems_version: 3.3.7
108
+ rubygems_version: 3.3.11
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: Better Params