marty 1.0.25 → 1.0.26
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/app/models/marty/pg_enum.rb +13 -1
- data/lib/marty/data_exporter.rb +9 -2
- data/lib/marty/monkey.rb +24 -1
- 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: f67ebcac657138d046558974f9c05235794069e1
|
4
|
+
data.tar.gz: b79df0fe2a75a6a24e696a337db8799f2fbf57e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 804a7e3bb93f704897fd7773854487ab711a58c8f827acec33bc5a67eb9d2a4a54d33cd74277bbf115222541903ad9eac9bfe51e36933d83443bd501421699b8
|
7
|
+
data.tar.gz: e1637663e777a1fb8a2329446b7dc52a33ab79c26dd0830002a6da10b77b8872b9046dae5d053a052c478227fe403142a92ac9462d72621c80f4da2ae26a8633
|
data/app/models/marty/pg_enum.rb
CHANGED
@@ -1,11 +1,23 @@
|
|
1
1
|
module Marty::PgEnum
|
2
|
+
|
2
3
|
def [](index)
|
3
4
|
index = index.to_s
|
4
5
|
|
5
6
|
raise "no such #{self.name}: '#{index}'" unless
|
6
7
|
self::VALUES.include?(index)
|
7
8
|
|
8
|
-
index
|
9
|
+
StringEnum.new(index)
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_all
|
13
|
+
self::VALUES.map { |v| StringEnum.new(v) }
|
14
|
+
end
|
15
|
+
|
16
|
+
GET_ALL_SIG = [0, 0]
|
17
|
+
def self.extended(base)
|
18
|
+
base.class_eval do
|
19
|
+
const_set :GET_ALL_SIG, Marty::PgEnum::GET_ALL_SIG
|
20
|
+
end
|
9
21
|
end
|
10
22
|
|
11
23
|
alias_method :find_by_name, :[]
|
data/lib/marty/data_exporter.rb
CHANGED
@@ -80,10 +80,16 @@ class Marty::DataExporter
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
+
def self.get_attrs_in_order(klass, attrs)
|
84
|
+
return attrs unless klass.const_defined?(:EXPORT_ORDER)
|
85
|
+
klass::EXPORT_ORDER.select { |attr| attrs.include?(attr) }
|
86
|
+
end
|
87
|
+
|
83
88
|
def self.export_attrs(klass, obj, attrs=nil, exclude_attrs=[])
|
84
89
|
col_types = Marty::DataConversion.col_types(klass)
|
85
90
|
|
86
|
-
|
91
|
+
attr_list_raw = (attrs || col_types.keys).map(&:to_s) - exclude_attrs
|
92
|
+
attr_list = get_attrs_in_order(klass, attr_list_raw)
|
87
93
|
|
88
94
|
attr_list.map do
|
89
95
|
|c|
|
@@ -111,7 +117,8 @@ class Marty::DataExporter
|
|
111
117
|
def self.export_headers(klass, attrs=nil, exclude_attrs=[])
|
112
118
|
col_types = Marty::DataConversion.col_types(klass)
|
113
119
|
|
114
|
-
|
120
|
+
attr_list_raw = (attrs || col_types.keys).map(&:to_s) - exclude_attrs
|
121
|
+
attr_list = get_attrs_in_order(klass, attr_list_raw)
|
115
122
|
|
116
123
|
attr_list.map do
|
117
124
|
|c|
|
data/lib/marty/monkey.rb
CHANGED
@@ -10,7 +10,8 @@ class Delorean::BaseModule::BaseClass
|
|
10
10
|
alias_method :old_get_attr, :_get_attr
|
11
11
|
|
12
12
|
def _get_attr(obj, attr, _e)
|
13
|
-
if Marty::Enum === obj
|
13
|
+
if (Marty::Enum === obj ||
|
14
|
+
Marty::PgEnum === obj) && !obj.respond_to?(attr)
|
14
15
|
obj[attr]
|
15
16
|
else
|
16
17
|
old_get_attr(obj, attr, _e)
|
@@ -114,6 +115,7 @@ class String
|
|
114
115
|
def in_time_zone(zone = ::Time.zone)
|
115
116
|
self == 'infinity' ? self : old_in_time_zone(zone)
|
116
117
|
end
|
118
|
+
|
117
119
|
end
|
118
120
|
|
119
121
|
######################################################################
|
@@ -197,6 +199,18 @@ module Netzke::Basepack::DataAdapters
|
|
197
199
|
end
|
198
200
|
end
|
199
201
|
|
202
|
+
class StringEnum < String
|
203
|
+
include Delorean::Model
|
204
|
+
def name
|
205
|
+
self
|
206
|
+
end
|
207
|
+
def id
|
208
|
+
self
|
209
|
+
end
|
210
|
+
delorean_instance_method :name
|
211
|
+
delorean_instance_method :id
|
212
|
+
end
|
213
|
+
|
200
214
|
######################################################################
|
201
215
|
|
202
216
|
# Add pg_enum migration support -- FIXME: this doesn't belong here
|
@@ -209,5 +223,14 @@ module ActiveRecord
|
|
209
223
|
column_names.each { |name| column(name, name.to_s.pluralize, options) }
|
210
224
|
end
|
211
225
|
end
|
226
|
+
module PostgreSQL
|
227
|
+
module OID
|
228
|
+
class Enum < Type::Value
|
229
|
+
def type_cast_from_database(value)
|
230
|
+
value && StringEnum.new(value)
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
234
|
+
end
|
212
235
|
end
|
213
236
|
end
|
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: 1.0.
|
4
|
+
version: 1.0.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arman Bostani
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2017-
|
17
|
+
date: 2017-05-03 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: pg
|