feidee_utils 0.0.6.1 → 0.0.6.2
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/feidee_utils/account.rb +0 -10
- data/lib/feidee_utils/database.rb +17 -0
- data/lib/feidee_utils/record/accessors.rb +1 -1
- data/lib/feidee_utils/record.rb +0 -1
- data/lib/feidee_utils/transaction.rb +0 -14
- data/lib/feidee_utils/version.rb +1 -1
- metadata +3 -4
- data/lib/feidee_utils/record/modified_record.rb +0 -76
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 319e55e5339d503de7cacd974b4973fb61047055
|
4
|
+
data.tar.gz: 96b926526884bcfdd95b0d660e21f06d0ed6ed1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b288bf8bba784ce501e979a871f514ae293f0d6ab83b3641b201e0f0b7f48ac22b2c87eabcd922583400216e4b9787d109f36f88e1245a30c42d810b0390ea4
|
7
|
+
data.tar.gz: b0d87edaef250212a95e60c5fb9776e4cf318420d6de6631fb01990a59adf6b57a275459994e9727129b862cce7dfaff466d14c05d3ffcf5df57daf952327256
|
data/lib/feidee_utils/account.rb
CHANGED
@@ -121,16 +121,6 @@ module FeideeUtils
|
|
121
121
|
"#{name} (Account/#{poid})"
|
122
122
|
end
|
123
123
|
|
124
|
-
class ModifiedAccount < Record::ModifiedRecord
|
125
|
-
define_custom_methods([
|
126
|
-
:balance,
|
127
|
-
:credit,
|
128
|
-
:debit,
|
129
|
-
:parent,
|
130
|
-
])
|
131
|
-
define_default_methods(FieldMappings)
|
132
|
-
end
|
133
|
-
|
134
124
|
# Schema:
|
135
125
|
# accountPOID LONG NOT NULL,
|
136
126
|
# name varchar(100) NOT NULL,
|
@@ -12,6 +12,7 @@ module FeideeUtils
|
|
12
12
|
|
13
13
|
metadata: "t_metadata",
|
14
14
|
profile: "t_profile",
|
15
|
+
id_seed: "t_id_seed",
|
15
16
|
}.freeze
|
16
17
|
|
17
18
|
PotentialUsefulTables = %w(
|
@@ -133,6 +134,22 @@ module FeideeUtils
|
|
133
134
|
sqlite_file.fsync
|
134
135
|
sqlite_file
|
135
136
|
end
|
137
|
+
|
138
|
+
def sqlite_to_feidee(sqlite, feidee_file = nil, platform = :iOS)
|
139
|
+
sqlite.read(Header.length)
|
140
|
+
private_header = if platform == :iOS
|
141
|
+
FeideeHeader_iOS
|
142
|
+
else
|
143
|
+
FeideeHeader_Android
|
144
|
+
end
|
145
|
+
|
146
|
+
feidee_file ||= Tempfile.new("feidee_sqlite", binmode: true)
|
147
|
+
feidee_file.binmode
|
148
|
+
feidee_file.write(private_header)
|
149
|
+
feidee_file.write(sqlite.read)
|
150
|
+
feidee_file.fsync
|
151
|
+
feidee_file
|
152
|
+
end
|
136
153
|
end
|
137
154
|
|
138
155
|
class << self
|
@@ -46,7 +46,7 @@ module FeideeUtils
|
|
46
46
|
end
|
47
47
|
|
48
48
|
protected
|
49
|
-
# NOTE: Here we assume the
|
49
|
+
# NOTE: Here we assume the underlying database schema does not change.
|
50
50
|
# The assumption is safe in the sense that it is generally expected to
|
51
51
|
# restart and/or recompile your application after updating the schema.
|
52
52
|
def define_indexed_accessors
|
data/lib/feidee_utils/record.rb
CHANGED
@@ -3,7 +3,6 @@ require 'feidee_utils/record/computed'
|
|
3
3
|
require 'feidee_utils/record/namespaced'
|
4
4
|
require 'feidee_utils/record/persistent'
|
5
5
|
require 'feidee_utils/record/utils'
|
6
|
-
require 'feidee_utils/record/modified_record'
|
7
6
|
|
8
7
|
module FeideeUtils
|
9
8
|
# The implementation here is wired.
|
@@ -212,20 +212,6 @@ module FeideeUtils
|
|
212
212
|
str + " at #{trade_at} (Transaction #{poid})";
|
213
213
|
end
|
214
214
|
|
215
|
-
class ModifiedTransaction < ModifiedRecord
|
216
|
-
define_custom_methods([
|
217
|
-
:created_at,
|
218
|
-
:modified_at,
|
219
|
-
:trade_at,
|
220
|
-
:type,
|
221
|
-
:category_poid,
|
222
|
-
:buyer_deduction,
|
223
|
-
:seller_addition,
|
224
|
-
:amount,
|
225
|
-
])
|
226
|
-
define_default_methods(FieldMappings)
|
227
|
-
end
|
228
|
-
|
229
215
|
private
|
230
216
|
def sign_by_type num
|
231
217
|
# This is awkward. For transactions of type positive_initial_balance, the
|
data/lib/feidee_utils/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: feidee_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.6.
|
4
|
+
version: 0.0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Liqing Muyi
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: '1.2'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 1.2.
|
42
|
+
version: 1.2.2
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: '1.2'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 1.2.
|
52
|
+
version: 1.2.2
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: sqlite3
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,7 +133,6 @@ files:
|
|
133
133
|
- lib/feidee_utils/record.rb
|
134
134
|
- lib/feidee_utils/record/accessors.rb
|
135
135
|
- lib/feidee_utils/record/computed.rb
|
136
|
-
- lib/feidee_utils/record/modified_record.rb
|
137
136
|
- lib/feidee_utils/record/namespaced.rb
|
138
137
|
- lib/feidee_utils/record/persistent.rb
|
139
138
|
- lib/feidee_utils/record/utils.rb
|
@@ -1,76 +0,0 @@
|
|
1
|
-
module FeideeUtils
|
2
|
-
class Record
|
3
|
-
# TODO: Reconsider this class and ship full support to all entities.
|
4
|
-
class ModifiedRecord
|
5
|
-
attr_reader :poid
|
6
|
-
attr_reader :base, :head
|
7
|
-
attr_reader :modified_fields
|
8
|
-
|
9
|
-
def initialize(poid, base, head)
|
10
|
-
raise "Base row doesn't have the given poid." if base.poid != poid
|
11
|
-
raise "Head row doesn't have the given poid." if head.poid != poid
|
12
|
-
@poid = poid
|
13
|
-
@base = base
|
14
|
-
@head = head
|
15
|
-
@modified_fields = self.class.fields_diff(base.field, head.field)
|
16
|
-
end
|
17
|
-
|
18
|
-
class ValuePair
|
19
|
-
attr_reader :old_value, :new_value
|
20
|
-
def initialize(old_value, new_value)
|
21
|
-
@old = old_value
|
22
|
-
@new = new_value
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.fields_diff base, head
|
27
|
-
(base.keys.sort | head.keys.sort).inject({}) do |hash, key|
|
28
|
-
if base[key] != head[key]
|
29
|
-
hash[key] = ValuePair.new(base[key], head[key])
|
30
|
-
end
|
31
|
-
hash
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def touched?
|
36
|
-
!modified_fields.empty?
|
37
|
-
end
|
38
|
-
|
39
|
-
def changed?
|
40
|
-
methods.inject(false) do |acc, name|
|
41
|
-
if name.to_s.end_with? "_changed?"
|
42
|
-
acc ||= send name
|
43
|
-
end
|
44
|
-
acc
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
protected
|
49
|
-
def self.define_custom_methods fields
|
50
|
-
fields.each do |name|
|
51
|
-
if !respond_to? name
|
52
|
-
define_method name do
|
53
|
-
ValuePair.new((base.send name), (head.send name))
|
54
|
-
end
|
55
|
-
define_method (name.to_s + "_changed?").to_sym do
|
56
|
-
(base.send name) != (head.send name)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def self.define_default_methods field_mappings
|
63
|
-
field_mappings.each do |name, key|
|
64
|
-
if !respond_to? name
|
65
|
-
define_method name do
|
66
|
-
modified_fields[key]
|
67
|
-
end
|
68
|
-
define_method (name.to_s + "_changed?").to_sym do
|
69
|
-
modified_fields.has_key? key
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|