marty 0.5.20 → 0.5.21
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 +4 -4
- data/lib/marty/data_change.rb +4 -3
- data/lib/marty/data_exporter.rb +15 -11
- data/lib/marty/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a03584b75e0a4352769f3c304f86291eb0b9cf5
|
4
|
+
data.tar.gz: 215f2fdb7b8d0dc7d3a081aea295901f02f3bc51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 887a19e74b5bee8fcc30421b8eb49b0ea40a4e82e53c94eaa998992d69ed353607ad3da6957b7aea0a88782ed9df92ac8d7405f463a01256374e7f1566f4d672
|
7
|
+
data.tar.gz: bd6eda8e03530378d34c09636da7e0af0f898ec1c55453b5a4b070c1d55ee32d1d57545bf05993d2af51401433a0fe5d9bff423715919e1b5433bc8148069463
|
data/lib/marty/data_change.rb
CHANGED
@@ -115,14 +115,15 @@ class Marty::DataChange
|
|
115
115
|
classes.to_set & class_list.to_set
|
116
116
|
end
|
117
117
|
|
118
|
-
delorean_fn :do_export, sig: [2,
|
119
|
-
|pt, klass, sort_field=nil|
|
118
|
+
delorean_fn :do_export, sig: [2, 4] do
|
119
|
+
|pt, klass, sort_field=nil, exclude_attrs=[]|
|
120
120
|
|
121
121
|
# allow classes on class_list or any Enum to be exported
|
122
122
|
raise "'#{klass}' not on class_list" unless
|
123
123
|
class_list.member?(klass) || klass.constantize.is_a?(Marty::Enum)
|
124
124
|
|
125
|
-
Marty::DataExporter.
|
125
|
+
Marty::DataExporter.
|
126
|
+
do_export(pt, klass.constantize, sort_field, exclude_attrs)
|
126
127
|
end
|
127
128
|
|
128
129
|
delorean_fn :export_changes, sig: 3 do
|
data/lib/marty/data_exporter.rb
CHANGED
@@ -78,15 +78,16 @@ class Marty::DataExporter
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
-
def self.export_attrs(klass, obj, attrs=nil)
|
81
|
+
def self.export_attrs(klass, obj, attrs=nil, exclude_attrs=[])
|
82
82
|
col_types = Marty::DataConversion.col_types(klass)
|
83
83
|
|
84
|
-
(attrs || col_types.keys).map
|
84
|
+
attr_list = (attrs || col_types.keys).map(&:to_s) - exclude_attrs
|
85
|
+
|
86
|
+
attr_list.map do
|
85
87
|
|c|
|
86
88
|
|
87
89
|
v = obj.send(c.to_sym)
|
88
90
|
|
89
|
-
c = c.to_s
|
90
91
|
type = col_types[c]
|
91
92
|
|
92
93
|
# return [value] if not assoc or nil
|
@@ -103,13 +104,14 @@ class Marty::DataExporter
|
|
103
104
|
end
|
104
105
|
end
|
105
106
|
|
106
|
-
def self.export_headers(klass, attrs=nil)
|
107
|
+
def self.export_headers(klass, attrs=nil, exclude_attrs=[])
|
107
108
|
col_types = Marty::DataConversion.col_types(klass)
|
108
109
|
|
109
|
-
(attrs || col_types.keys).map
|
110
|
+
attr_list = (attrs || col_types.keys).map(&:to_s) - exclude_attrs
|
111
|
+
|
112
|
+
attr_list.map do
|
110
113
|
|c|
|
111
114
|
|
112
|
-
c = c.to_s
|
113
115
|
type = col_types[c]
|
114
116
|
|
115
117
|
next c unless type.is_a?(Hash)
|
@@ -130,7 +132,7 @@ class Marty::DataExporter
|
|
130
132
|
|
131
133
|
# Given a Mcfly klass, generate an export array. Can potentially
|
132
134
|
# use up a lot of memory if the result set is large.
|
133
|
-
def self.do_export(ts, klass, sort_field=nil)
|
135
|
+
def self.do_export(ts, klass, sort_field=nil, exclude_attrs=[])
|
134
136
|
query = klass
|
135
137
|
|
136
138
|
if Mcfly.has_mcfly?(klass)
|
@@ -138,14 +140,16 @@ class Marty::DataExporter
|
|
138
140
|
query = query.where("obsoleted_dt >= ? AND created_dt < ?", ts, ts)
|
139
141
|
end
|
140
142
|
|
141
|
-
do_export_query_result(klass, query.order(sort_field || :id))
|
143
|
+
do_export_query_result(klass, query.order(sort_field || :id), exclude_attrs)
|
142
144
|
end
|
143
145
|
|
144
|
-
def self.do_export_query_result(klass, qres)
|
146
|
+
def self.do_export_query_result(klass, qres, exclude_attrs=[])
|
145
147
|
# strip _id from assoc fields
|
146
|
-
header = [ export_headers(klass).flatten ]
|
148
|
+
header = [ export_headers(klass, nil, exclude_attrs).flatten ]
|
147
149
|
|
148
|
-
header + qres.map {|obj|
|
150
|
+
header + qres.map {|obj|
|
151
|
+
export_attrs(klass, obj, nil, exclude_attrs).flatten(1)
|
152
|
+
}
|
149
153
|
end
|
150
154
|
|
151
155
|
# Export a single object to hash -- FIXME: inefficient
|
data/lib/marty/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arman Bostani
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-12-
|
15
|
+
date: 2015-12-23 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: pg
|