dynamic-active-model 0.2.5 → 0.2.6

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: 1f569197049c12601385695ca20270c941c15747c35153b3380c3dabd468abbc
4
- data.tar.gz: b92423eecc4c37a1200b93c84b2e5463bb990802fc813a80b9322228e250635e
3
+ metadata.gz: db4f6bee0035811fcf98c56f740c9c87a6151f20b30ac1e72605232f480e4766
4
+ data.tar.gz: 49e37d2abca94db6fa593fac3732767dcf2b12a37f05b3a5ff82be6c192c3dcf
5
5
  SHA512:
6
- metadata.gz: 42932815c86faacb2fb6fa51d850a9383e5e117c15933409f19d7faf509acc49e35ebdba593344f31f83767187b9d58d10e59dfd81f76943e2d873e52ef51f82
7
- data.tar.gz: e55af049ed222177cb021b29c3997f60d1162e5fc496e9e5b352d1d188581f91cc6d69faff3e3cef91f747a9fc23ef9db2cf2d8d61dc680cb068f26a6ad53125
6
+ metadata.gz: 5f6f1486e57a7a869cd700c1bf235b9915173723063291ed6e28a19529f6c4a8f486936e19e764f2d10297e48bf3a9a3301bae7d11a4d1fdba3d29e952504697
7
+ data.tar.gz: 7c49634233a7faf0a47f27abed7acaf6b01a0a77c8dd9b86c7147b1d4b23e57680123622d31eee575ce211f184b729a35c64f48e9ec4f55618ca614601cf819b
@@ -13,6 +13,8 @@ module DynamicActiveModel
13
13
  @table_class_names = {}
14
14
  @skip_tables = []
15
15
  @skip_table_matchers = []
16
+ @include_tables = []
17
+ @include_table_matchers = []
16
18
  @models = []
17
19
  end
18
20
 
@@ -24,6 +26,14 @@ module DynamicActiveModel
24
26
  end
25
27
  end
26
28
 
29
+ def include_table(table)
30
+ if table.is_a?(Regexp)
31
+ @include_table_matchers << table
32
+ else
33
+ @include_tables << table
34
+ end
35
+ end
36
+
27
37
  def table_class_name(table_name, class_name)
28
38
  @table_class_names[table_name.to_s] = class_name
29
39
  end
@@ -31,6 +41,7 @@ module DynamicActiveModel
31
41
  def create_models!
32
42
  @factory.base_class.connection.tables.each do |table_name|
33
43
  next if skip_table?(table_name)
44
+ next unless include_table?(table_name)
34
45
 
35
46
  @models << @factory.create(table_name, @table_class_names[table_name])
36
47
  end
@@ -40,11 +51,21 @@ module DynamicActiveModel
40
51
  @skip_tables + @skip_table_matchers
41
52
  end
42
53
 
54
+ def include_tables
55
+ @include_tables + @include_table_matchers
56
+ end
57
+
43
58
  private
44
59
 
45
60
  def skip_table?(table_name)
46
61
  @skip_tables.include?(table_name) ||
47
62
  @skip_table_matchers.any? { |r| r.match(table_name) }
48
63
  end
64
+
65
+ def include_table?(table_name)
66
+ (@include_tables.empty? && @include_table_matchers.empty?) ||
67
+ @include_tables.include?(table_name) ||
68
+ @include_table_matchers.any? { |r| r.match(table_name) }
69
+ end
49
70
  end
50
71
  end
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.2.5
4
+ version: 0.2.6
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-17 00:00:00.000000000 Z
11
+ date: 2019-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord