marty 0.5.20 → 0.5.21
Sign up to get free protection for your applications and to get access to all the features.
- 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
|