dynamic-active-model 0.3.0 → 0.3.1

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: fb9ff04233ee21e4f334a044c977634fe0a375218b87fda3c8aaadfe97b8137c
4
- data.tar.gz: 9329b32d0761698b7b6b209a17c947da1a10c5bb3611d78a45118011425cb7b7
3
+ metadata.gz: 939a4bf825472966414c9210ace20b328cb96b3346c64c81063abf0caf2b6e88
4
+ data.tar.gz: 731d11dd2939d33a0a9425258a04c51ef1b5e3c664268fad76a4164e0a04ed69
5
5
  SHA512:
6
- metadata.gz: 8a27485cf73b32056a961bdaf037818f7789fe88ccd9b0fd267d6c333842716c0bbe007dd23c99e214abcf1619354caf5708af146ea32f6fa3df1512536f4318
7
- data.tar.gz: '09d22fcaf58beebc39ed805c8974c57173fcb41a625604a6b897b7f99aa680ccbd0dbd0ac2d913022753ffbbf986a569750f0d173a21630998d6a7ba1c271a15'
6
+ metadata.gz: 13bbbc17ce25badff6dc5c19fb675813897d80a76b65fd4d4d52562bf7ae0051536506be6f04a293d8a31e9dc2a538649bbce7a9da07c2c19cb737f37e9d14bb
7
+ data.tar.gz: 3e3b46e5c905c588ad2d3885bf5b18843806ac61afece97c5a210440c1b6692578bf38a7109a9b45e20420d216b7b2efb0963a6f6a59ab102b2d44cf5f4f6ca3
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DynamicActiveModel
4
+ # DynamicActiveModel::DangerousAttributesPatch is used to remove dangerous attribute names
5
+ # from attribute_names method in ActiveRecord
6
+ module DangerousAttributesPatch
7
+ def self.included(base)
8
+ base.singleton_class.alias_method :original_attribute_names, :attribute_names
9
+ base.extend ClassMethods
10
+ end
11
+
12
+ # no-doc
13
+ module ClassMethods
14
+ def attribute_names
15
+ names = original_attribute_names
16
+ names.reject! { |name| dangerous_attribute_method?(name) }
17
+ names
18
+ end
19
+ end
20
+ end
21
+ end
@@ -20,6 +20,7 @@ module DynamicActiveModel
20
20
  def create!(table_name, class_name)
21
21
  kls = Class.new(base_class) do
22
22
  self.table_name = table_name
23
+ include DynamicActiveModel::DangerousAttributesPatch
23
24
  end
24
25
  @base_module.const_set(class_name, kls)
25
26
  @base_module.const_get(class_name)
@@ -3,6 +3,7 @@
3
3
  # DynamicActiveModel module for create ActiveRecord models
4
4
  module DynamicActiveModel
5
5
  autoload :Database, 'dynamic-active-model/database'
6
+ autoload :DangerousAttributesPatch, 'dynamic-active-model/dangerous_attributes_patch'
6
7
  autoload :Explorer, 'dynamic-active-model/explorer'
7
8
  autoload :Factory, 'dynamic-active-model/factory'
8
9
  autoload :ForeignKey, 'dynamic-active-model/foreign_key'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic-active-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Doug Youch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-23 00:00:00.000000000 Z
11
+ date: 2019-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -34,6 +34,7 @@ files:
34
34
  - bin/dynamic-db-explorer
35
35
  - lib/dynamic-active-model.rb
36
36
  - lib/dynamic-active-model/associations.rb
37
+ - lib/dynamic-active-model/dangerous_attributes_patch.rb
37
38
  - lib/dynamic-active-model/database.rb
38
39
  - lib/dynamic-active-model/explorer.rb
39
40
  - lib/dynamic-active-model/factory.rb