sql_enum 0.1.10 → 0.1.11

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
  SHA1:
3
- metadata.gz: 76781aadbc073e6d58e5366276ed05ab1a65a95d
4
- data.tar.gz: 4d4f79bb985e42bb01905f564702be489a8b2149
3
+ metadata.gz: e0391b2647bafa76738ca6e50034303599631547
4
+ data.tar.gz: 9486b8ef30b7f6c6d10e0519ed5ee5bc0a363e3c
5
5
  SHA512:
6
- metadata.gz: eed5cce9bc7c9e89422d1c100b9d72b72e2568b077ecc24fcf2f0fd24c088f7f6b54abe630e4f7bd5f07996e4043234be5ee8d8cafd0839bbeb7164eda8f628d
7
- data.tar.gz: c5626fcb86a7f85764a89d8102fa122db773ff70b4929867aec9e47f96fa08407daea6bd4a908abdefc5f65e461749e806e71364855e2b18760f6fd467b149ec
6
+ metadata.gz: 6e7191b04a08c7baa32dbf5810549548375a16fa9bb0bd3a0aeba4ddff5a1c14e21e407420112eea5d800c98b8a04e232a098b97bf770c891580feb6846be43d
7
+ data.tar.gz: aadfd52951701ac331b88d24c6a9acae220cb19916a3670c5db9cdf336013c1e2979098d39f58fe42c08966cc016eee690f82f5532cbddca731a0e6b1295b04b
@@ -0,0 +1,79 @@
1
+ require 'active_record/fixtures'
2
+
3
+ module ActiveRecord
4
+ class FixtureSet
5
+ def table_rows
6
+ now = config.default_timezone == :utc ? Time.now.utc : Time.now
7
+
8
+ # allow a standard key to be used for doing defaults in YAML
9
+ fixtures.delete('DEFAULTS')
10
+
11
+ # track any join tables we need to insert later
12
+ rows = Hash.new { |h,table| h[table] = [] }
13
+
14
+ rows[table_name] = fixtures.map do |label, fixture|
15
+ row = fixture.to_hash
16
+
17
+ if model_class
18
+ # fill in timestamp columns if they aren't specified and the model is set to record_timestamps
19
+ if model_class.record_timestamps
20
+ timestamp_column_names.each do |c_name|
21
+ row[c_name] = now unless row.key?(c_name)
22
+ end
23
+ end
24
+
25
+ # interpolate the fixture label
26
+ row.each do |key, value|
27
+ row[key] = value.gsub("$LABEL", label.to_s) if value.is_a?(String)
28
+ end
29
+
30
+ # generate a primary key if necessary
31
+ if has_primary_key_column? && !row.include?(primary_key_name)
32
+ row[primary_key_name] = ActiveRecord::FixtureSet.identify(label, primary_key_type)
33
+ end
34
+
35
+ # Resolve enums
36
+ # model_class.defined_enums.each do |name, values|
37
+ # if row.include?(name)
38
+ # row[name] = values.fetch(row[name], row[name])
39
+ # end
40
+ # end
41
+
42
+ # If STI is used, find the correct subclass for association reflection
43
+ reflection_class =
44
+ if row.include?(inheritance_column_name)
45
+ row[inheritance_column_name].constantize rescue model_class
46
+ else
47
+ model_class
48
+ end
49
+
50
+ reflection_class._reflections.each_value do |association|
51
+ case association.macro
52
+ when :belongs_to
53
+ # Do not replace association name with association foreign key if they are named the same
54
+ fk_name = (association.options[:foreign_key] || "#{association.name}_id").to_s
55
+
56
+ if association.name.to_s != fk_name && value = row.delete(association.name.to_s)
57
+ if association.polymorphic? && value.sub!(/\s*\(([^\)]*)\)\s*$/, "")
58
+ # support polymorphic belongs_to as "label (Type)"
59
+ row[association.foreign_type] = $1
60
+ end
61
+
62
+ fk_type = reflection_class.type_for_attribute(fk_name).type
63
+ row[fk_name] = ActiveRecord::FixtureSet.identify(value, fk_type)
64
+ end
65
+ when :has_many
66
+ if association.options[:through]
67
+ add_join_records(rows, row, HasManyThroughProxy.new(association))
68
+ end
69
+ end
70
+ end
71
+ end
72
+
73
+ row
74
+ end
75
+ rows
76
+ end
77
+ end
78
+ end
79
+
@@ -1,3 +1,3 @@
1
1
  module SqlEnum
2
- VERSION = "0.1.10"
2
+ VERSION = "0.1.11"
3
3
  end
data/lib/sql_enum.rb CHANGED
@@ -23,6 +23,7 @@ end
23
23
  require_relative 'active_record/enum/enum_type'
24
24
  require_relative 'active_record/type/enum'
25
25
  require_relative 'active_record/enum_override'
26
+ require_relative 'active_record/fixtures_override'
26
27
  require_relative 'active_record/connection_adapters/mysql2'
27
28
  require_relative 'active_record/connection_adapters/abstract_mysql'
28
29
  require_relative 'active_record/connection_adapters/mysql/column_methods'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fletcher Fowler
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-01 00:00:00.000000000 Z
11
+ date: 2018-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -89,8 +89,8 @@ files:
89
89
  - lib/active_record/connection_adapters/mysql2.rb
90
90
  - lib/active_record/enum/enum_type.rb
91
91
  - lib/active_record/enum_override.rb
92
+ - lib/active_record/fixtures_override.rb
92
93
  - lib/active_record/type/enum.rb
93
- - lib/array.rb
94
94
  - lib/sql_enum.rb
95
95
  - lib/sql_enum/version.rb
96
96
  - sql_enum.gemspec
data/lib/array.rb DELETED
@@ -1,5 +0,0 @@
1
- Array.class_eval do
2
- def fetch(key, default)
3
- key if self.include?(key&.to_s)
4
- end
5
- end