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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fadde1bf5efa6fe544f3ff25c1304fe13d5d5b86
4
- data.tar.gz: 5f682bdabf50f7e920e8c9c333752502da263623
3
+ metadata.gz: 1a03584b75e0a4352769f3c304f86291eb0b9cf5
4
+ data.tar.gz: 215f2fdb7b8d0dc7d3a081aea295901f02f3bc51
5
5
  SHA512:
6
- metadata.gz: 196acdb333b359b87808de78b7ef4a989b006ae032d57c272ea53f9bc304dcd98421d91f3b4b6bf105632868e2c9cc627bdef65006b4e1f711ba444f46f262ce
7
- data.tar.gz: e1603b431d2f8ae6d2fea170b771c09359a9d9d153786c67c855f9ecfe19dbcfa9129727b238c9c11a2467e4b46d0952001e55bca3c49c6065c64545ab34864e
6
+ metadata.gz: 887a19e74b5bee8fcc30421b8eb49b0ea40a4e82e53c94eaa998992d69ed353607ad3da6957b7aea0a88782ed9df92ac8d7405f463a01256374e7f1566f4d672
7
+ data.tar.gz: bd6eda8e03530378d34c09636da7e0af0f898ec1c55453b5a4b070c1d55ee32d1d57545bf05993d2af51401433a0fe5d9bff423715919e1b5433bc8148069463
@@ -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, 3] do
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.do_export(pt, klass.constantize, sort_field)
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
@@ -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 do
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 do
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| export_attrs(klass, obj).flatten(1)}
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
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = "0.5.20"
2
+ VERSION = "0.5.21"
3
3
  end
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.20
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-17 00:00:00.000000000 Z
15
+ date: 2015-12-23 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: pg