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 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