da_funk 0.28.0 → 1.0.0
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/Gemfile.lock +2 -2
- data/RELEASE_NOTES.md +17 -0
- data/Rakefile +25 -26
- data/lib/{device → da_funk}/application.rb +39 -19
- data/lib/da_funk/engine.rb +0 -1
- data/lib/da_funk/file_parameter.rb +30 -12
- data/lib/da_funk/helper.rb +8 -8
- data/lib/da_funk/notification.rb +38 -0
- data/lib/{device → da_funk}/notification_callback.rb +1 -1
- data/lib/da_funk/notification_event.rb +27 -0
- data/lib/{device → da_funk}/params_dat.rb +17 -17
- data/lib/{device → da_funk}/transaction/download.rb +2 -2
- data/lib/{device → da_funk}/transaction/iso.rb +1 -1
- data/lib/da_funk/version.rb +1 -1
- data/lib/da_funk.rb +34 -19
- data/lib/device/io.rb +1 -1
- data/lib/device/runtime.rb +1 -7
- data/lib/device/setting.rb +2 -2
- data/out/da_funk.mrb +0 -0
- data/test/integration/mrb_eval_test.rb +3 -3
- data/test/integration/notification_test.rb +6 -6
- data/test/integration/params_dat_test.rb +2 -2
- data/test/unit/device/application_test.rb +3 -3
- data/test/unit/device/notification_event_test.rb +3 -3
- data/test/unit/device/notification_test.rb +1 -1
- data/test/unit/params_dat_test.rb +2 -2
- metadata +9 -16
- data/lib/device/helper.rb +0 -5
- data/lib/device/notification.rb +0 -173
- data/lib/device/notification_event.rb +0 -39
- data/lib/device/transaction/emv.rb +0 -45
- data/lib/serfx/commands.rb +0 -193
- data/lib/serfx/connection.rb +0 -165
- data/lib/serfx/exceptions.rb +0 -5
- data/lib/serfx/response.rb +0 -28
- data/lib/serfx.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ab3d59d322760738472c5869fb98b1871fcdddc
|
4
|
+
data.tar.gz: 69bd61eb6d8e6467081cc1b69f05c94ea65f3055
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6c6d7458d9f343bfec57b017e6f7fee57b876e1b9d49fdb90f61af4b1847794afb168104a52a74dd23895716993e2670c20a8d5b8f48fbfda6ca2dfa1de3f5a
|
7
|
+
data.tar.gz: 01ec1bd70cefda9331de4e2b5d2f582f56a9fdf770a3c747f6d6557530442a972eb588fb47aaadf5a513172ebe7716b90e8a9e9fdfe646224578db6060ac74a8
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
da_funk (0.
|
4
|
+
da_funk (1.0.0)
|
5
5
|
archive-zip (~> 0.5)
|
6
6
|
bundler (~> 1.7)
|
7
7
|
cloudwalk_handshake (~> 0.6)
|
@@ -20,7 +20,7 @@ GEM
|
|
20
20
|
funky-simplehttp (0.4.4)
|
21
21
|
funky-tlv (0.2.3)
|
22
22
|
io-like (0.3.0)
|
23
|
-
posxml_parser (0.
|
23
|
+
posxml_parser (0.30.0)
|
24
24
|
funky-emv (~> 0.3)
|
25
25
|
rake (12.3.0)
|
26
26
|
yard (0.9.12)
|
data/RELEASE_NOTES.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# DaFunk
|
2
2
|
|
3
|
+
|
4
|
+
### 1.0.0 - 2018-01-04
|
5
|
+
|
6
|
+
- Remove serfs interface and implement notification
|
7
|
+
interface via web socket.
|
8
|
+
- Adopt ContextLog to store error on file download.
|
9
|
+
- Implement force parameter to application, params dat and file download.
|
10
|
+
- Unzip ruby application after download instead of execution call.
|
11
|
+
- Move Application, Notification*, ParamsDat and Transaction from Device to Dafunk scope.
|
12
|
+
- Remove transaction/emv.rb and refactor loads.
|
13
|
+
- Remove Device:Helper.
|
14
|
+
- Check if application file exists before return local crc.
|
15
|
+
- Adopt custom exception for Application download.
|
16
|
+
- Force unzip ruby application if file is the same.
|
17
|
+
- Do not cache local crc on DaFunk::Application.
|
18
|
+
- Adopt DaDunk::Application CRC check strategy in DaFunk::FileParameter
|
19
|
+
|
3
20
|
### 0.28.0 - 2017-12-07
|
4
21
|
|
5
22
|
- Support to interrupt file download if KEY CANCEL pressed.
|
data/Rakefile
CHANGED
@@ -9,15 +9,30 @@ DA_FUNK_ROOT = File.dirname(File.expand_path(__FILE__))
|
|
9
9
|
FileUtils.cd DA_FUNK_ROOT
|
10
10
|
|
11
11
|
FILES = FileList[
|
12
|
+
"lib/file_db.rb",
|
13
|
+
"lib/zip.rb",
|
14
|
+
"lib/da_funk/helper.rb",
|
15
|
+
|
12
16
|
"lib/ext/kernel.rb",
|
13
17
|
"lib/ext/nil.rb",
|
14
18
|
"lib/ext/string.rb",
|
15
19
|
"lib/ext/array.rb",
|
16
20
|
"lib/ext/hash.rb",
|
17
21
|
"lib/ext/float.rb",
|
22
|
+
|
23
|
+
"lib/iso8583/bitmap.rb",
|
24
|
+
"lib/iso8583/codec.rb",
|
25
|
+
"lib/iso8583/exception.rb",
|
26
|
+
"lib/iso8583/field.rb",
|
27
|
+
"lib/iso8583/fields.rb",
|
28
|
+
"lib/iso8583/message.rb",
|
29
|
+
"lib/iso8583/util.rb",
|
30
|
+
"lib/iso8583/version.rb",
|
31
|
+
"lib/iso8583/file_parser.rb",
|
32
|
+
|
18
33
|
"lib/device/version.rb",
|
19
34
|
"lib/da_funk/version.rb",
|
20
|
-
|
35
|
+
|
21
36
|
"lib/da_funk.rb",
|
22
37
|
"lib/da_funk/test.rb",
|
23
38
|
"lib/da_funk/screen.rb",
|
@@ -31,42 +46,26 @@ FILES = FileList[
|
|
31
46
|
"lib/da_funk/event_handler.rb",
|
32
47
|
"lib/da_funk/engine.rb",
|
33
48
|
"lib/da_funk/struct.rb",
|
49
|
+
|
50
|
+
"lib/da_funk/params_dat.rb",
|
51
|
+
"lib/da_funk/application.rb",
|
52
|
+
"lib/da_funk/transaction/iso.rb",
|
53
|
+
"lib/da_funk/transaction/download.rb",
|
54
|
+
"lib/da_funk/notification_event.rb",
|
55
|
+
"lib/da_funk/notification_callback.rb",
|
56
|
+
"lib/da_funk/notification.rb",
|
57
|
+
|
34
58
|
"lib/device.rb",
|
35
59
|
"lib/device/audio.rb",
|
36
60
|
"lib/device/crypto.rb",
|
37
61
|
"lib/device/display.rb",
|
38
|
-
"lib/device/helper.rb",
|
39
62
|
"lib/device/io.rb",
|
40
63
|
"lib/device/network.rb",
|
41
|
-
"lib/device/params_dat.rb",
|
42
64
|
"lib/device/printer.rb",
|
43
65
|
"lib/device/runtime.rb",
|
44
66
|
"lib/device/setting.rb",
|
45
67
|
"lib/device/support.rb",
|
46
68
|
"lib/device/system.rb",
|
47
|
-
"lib/device/transaction/download.rb",
|
48
|
-
"lib/device/transaction/emv.rb",
|
49
|
-
"lib/file_db.rb",
|
50
|
-
"lib/iso8583/bitmap.rb",
|
51
|
-
"lib/iso8583/codec.rb",
|
52
|
-
"lib/iso8583/exception.rb",
|
53
|
-
"lib/iso8583/field.rb",
|
54
|
-
"lib/iso8583/fields.rb",
|
55
|
-
"lib/iso8583/message.rb",
|
56
|
-
"lib/iso8583/util.rb",
|
57
|
-
"lib/iso8583/version.rb",
|
58
|
-
"lib/iso8583/file_parser.rb",
|
59
|
-
"lib/device/transaction/iso.rb",
|
60
|
-
"lib/serfx.rb",
|
61
|
-
"lib/serfx/commands.rb",
|
62
|
-
"lib/serfx/connection.rb",
|
63
|
-
"lib/serfx/response.rb",
|
64
|
-
"lib/serfx/exceptions.rb",
|
65
|
-
"lib/device/notification_event.rb",
|
66
|
-
"lib/device/notification_callback.rb",
|
67
|
-
"lib/device/notification.rb",
|
68
|
-
"lib/device/application.rb",
|
69
|
-
"lib/zip.rb",
|
70
69
|
"lib/device/magnetic.rb"
|
71
70
|
]
|
72
71
|
|
@@ -6,10 +6,13 @@
|
|
6
6
|
# - No crc update
|
7
7
|
# - With crc update
|
8
8
|
|
9
|
-
|
9
|
+
module DaFunk
|
10
10
|
class Application
|
11
|
-
|
12
|
-
|
11
|
+
class ApplicationError < StandardError; end
|
12
|
+
class FileNotFoundError < StandardError; end
|
13
|
+
|
14
|
+
attr_accessor :crc
|
15
|
+
attr_reader :label, :file, :type, :order, :name, :remote, :original
|
13
16
|
|
14
17
|
def self.delete(collection)
|
15
18
|
collection.each do |app|
|
@@ -29,25 +32,40 @@ class Device
|
|
29
32
|
@remote = remote.sub("#{company}_", "")
|
30
33
|
@name = remote.sub("#{company}_", "").split(".")[0]
|
31
34
|
@file = check_path(@remote)
|
32
|
-
|
35
|
+
end
|
36
|
+
|
37
|
+
def crc_local
|
38
|
+
self.exists? ? @crc_local : nil
|
33
39
|
end
|
34
40
|
|
35
41
|
def download(force = false)
|
36
42
|
if force || self.outdated?
|
37
|
-
ret =
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
43
|
+
ret = DaFunk::Transaction::Download.request_file(remote, file, self.crc_local)
|
44
|
+
if ret == DaFunk::Transaction::Download::SUCCESS
|
45
|
+
if ((@crc_local = calculate_crc) == @crc)
|
46
|
+
unzip
|
47
|
+
else
|
48
|
+
ret = DaFunk::Transaction::Download::COMMUNICATION_ERROR
|
49
|
+
end
|
50
|
+
elsif ret == DaFunk::Transaction::Download::FILE_NOT_CHANGE
|
51
|
+
unzip
|
45
52
|
end
|
53
|
+
else
|
54
|
+
ret = DaFunk::Transaction::Download::FILE_NOT_CHANGE
|
46
55
|
end
|
47
56
|
ret
|
48
57
|
rescue => e
|
49
|
-
|
50
|
-
|
58
|
+
ContextLog.exception(e, e.backtrace, "Error downloading #{self.name}")
|
59
|
+
DaFunk::Transaction::Download::IO_ERROR
|
60
|
+
end
|
61
|
+
|
62
|
+
def unzip
|
63
|
+
if self.ruby?
|
64
|
+
zip = self.file
|
65
|
+
message = "Problem to unzip #{zip}[#{name}]"
|
66
|
+
raise FileNotFoundError.new(message) unless self.exists?
|
67
|
+
raise ApplicationError.new(message) unless Zip.uncompress(zip)
|
68
|
+
end
|
51
69
|
end
|
52
70
|
|
53
71
|
def dir
|
@@ -55,7 +73,7 @@ class Device
|
|
55
73
|
end
|
56
74
|
|
57
75
|
def exists?
|
58
|
-
File.exists?
|
76
|
+
File.exists?(file)
|
59
77
|
end
|
60
78
|
|
61
79
|
def delete
|
@@ -65,10 +83,12 @@ class Device
|
|
65
83
|
end
|
66
84
|
end
|
67
85
|
|
68
|
-
def outdated?
|
69
|
-
return true unless
|
70
|
-
|
71
|
-
|
86
|
+
def outdated?(force = false)
|
87
|
+
return true unless self.exists?
|
88
|
+
if !self.crc_local || force
|
89
|
+
@crc_local = calculate_crc
|
90
|
+
end
|
91
|
+
self.crc_local != @crc
|
72
92
|
rescue
|
73
93
|
true
|
74
94
|
end
|
data/lib/da_funk/engine.rb
CHANGED
@@ -2,7 +2,7 @@ module DaFunk
|
|
2
2
|
class FileParameter
|
3
3
|
FILEPATH = "./shared"
|
4
4
|
attr_accessor :crc
|
5
|
-
attr_reader :name, :file, :
|
5
|
+
attr_reader :name, :file, :original, :remote
|
6
6
|
|
7
7
|
def self.delete(collection)
|
8
8
|
collection.each do |file_|
|
@@ -20,7 +20,10 @@ module DaFunk
|
|
20
20
|
@remote = @original.sub("#{company}_", "")
|
21
21
|
@name = @original.sub("#{company}_", "").split(".").first
|
22
22
|
@file = "#{FILEPATH}/#{@remote}"
|
23
|
-
|
23
|
+
end
|
24
|
+
|
25
|
+
def crc_local
|
26
|
+
self.exists? ? @crc_local : nil
|
24
27
|
end
|
25
28
|
|
26
29
|
def zip?
|
@@ -38,31 +41,46 @@ module DaFunk
|
|
38
41
|
end
|
39
42
|
|
40
43
|
def download(force = false)
|
41
|
-
if force || outdated?
|
42
|
-
ret =
|
44
|
+
if force || self.outdated?
|
45
|
+
ret = DaFunk::Transaction::Download.request_file(remote, file, self.crc_local)
|
46
|
+
if ret == DaFunk::Transaction::Download::SUCCESS
|
47
|
+
unless ((@crc_local = calculate_crc) == @crc)
|
48
|
+
ret = DaFunk::Transaction::Download::COMMUNICATION_ERROR
|
49
|
+
end
|
50
|
+
end
|
43
51
|
else
|
44
|
-
ret =
|
52
|
+
ret = DaFunk::Transaction::Download::FILE_NOT_CHANGE
|
45
53
|
end
|
46
|
-
@crc_local = @crc if ret == Device::Transaction::Download::SUCCESS
|
47
54
|
ret
|
55
|
+
rescue => e
|
56
|
+
ContextLog.exception(e, e.backtrace, "Error downloading #{self.name}")
|
57
|
+
DaFunk::Transaction::Download::IO_ERROR
|
48
58
|
end
|
49
59
|
|
50
60
|
def delete
|
51
61
|
File.delete(self.file) if exists?
|
52
62
|
end
|
53
63
|
|
54
|
-
def outdated?
|
55
|
-
return true unless exists?
|
56
|
-
|
64
|
+
def outdated?(force = false)
|
65
|
+
return true unless self.exists?
|
66
|
+
if !self.crc_local || force
|
67
|
+
@crc_local = calculate_crc
|
68
|
+
end
|
69
|
+
self.crc_local != @crc
|
70
|
+
rescue
|
71
|
+
true
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
def calculate_crc
|
76
|
+
if exists?
|
57
77
|
handle = File.open(file)
|
58
|
-
|
78
|
+
Device::Crypto.crc16_hex(handle.read)
|
59
79
|
end
|
60
|
-
@crc_local != @crc
|
61
80
|
ensure
|
62
81
|
handle.close if handle
|
63
82
|
end
|
64
83
|
|
65
|
-
private
|
66
84
|
def check_company(name)
|
67
85
|
name.split("_", 2)[0]
|
68
86
|
end
|
data/lib/da_funk/helper.rb
CHANGED
@@ -33,7 +33,7 @@ module DaFunk
|
|
33
33
|
Device::Setting.network_configured = 1
|
34
34
|
print_attach(:attach_connected, options)
|
35
35
|
else
|
36
|
-
Device::Setting.network_configured = 0 if
|
36
|
+
Device::Setting.network_configured = 0 if DaFunk::ParamsDat.file["connection_management"] == "0"
|
37
37
|
print_attach(:attach_fail, options.merge(:args => [Device::Network.code.to_s]))
|
38
38
|
getc(4000)
|
39
39
|
return false
|
@@ -52,23 +52,23 @@ module DaFunk
|
|
52
52
|
def check_download_error(ret)
|
53
53
|
value = true
|
54
54
|
case ret
|
55
|
-
when
|
55
|
+
when DaFunk::Transaction::Download::SERIAL_NUMBER_NOT_FOUND
|
56
56
|
I18n.pt(:download_serial_number_not_found, :args => [ret])
|
57
57
|
value = false
|
58
|
-
when
|
58
|
+
when DaFunk::Transaction::Download::FILE_NOT_FOUND
|
59
59
|
I18n.pt(:download_file_not_found, :args => [ret])
|
60
60
|
value = false
|
61
|
-
when
|
61
|
+
when DaFunk::Transaction::Download::FILE_NOT_CHANGE
|
62
62
|
I18n.pt(:download_file_is_the_same, :args => [ret])
|
63
|
-
when
|
63
|
+
when DaFunk::Transaction::Download::SUCCESS
|
64
64
|
I18n.pt(:download_success, :args => [ret])
|
65
|
-
when
|
65
|
+
when DaFunk::Transaction::Download::COMMUNICATION_ERROR
|
66
66
|
I18n.pt(:download_communication_failure, :args => [ret])
|
67
67
|
value = false
|
68
|
-
when
|
68
|
+
when DaFunk::Transaction::Download::MAPREDUCE_RESPONSE_ERROR
|
69
69
|
I18n.pt(:download_encoding_error, :args => [ret])
|
70
70
|
value = false
|
71
|
-
when
|
71
|
+
when DaFunk::Transaction::Download::IO_ERROR
|
72
72
|
I18n.pt(:download_io_error, :args => [ret])
|
73
73
|
value = false
|
74
74
|
else
|
@@ -0,0 +1,38 @@
|
|
1
|
+
|
2
|
+
module DaFunk
|
3
|
+
class Notification
|
4
|
+
class << self
|
5
|
+
attr_accessor :callbacks
|
6
|
+
end
|
7
|
+
|
8
|
+
self.callbacks = Hash.new
|
9
|
+
|
10
|
+
def self.check(msg)
|
11
|
+
if msg.is_a?(String) && msg.include?("\"event\"") && msg.include?("\"id\"")
|
12
|
+
[:notification, self.parse(JSON.parse(msg))]
|
13
|
+
end
|
14
|
+
rescue ArgumentError => e
|
15
|
+
raise unless e.message == "invalid json"
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.parse(hash)
|
19
|
+
NotificationEvent.new(hash["id"], hash["event"], hash["acronym"], hash["logical_number"])
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.execute(event)
|
23
|
+
calls = self.callbacks[event.callback]
|
24
|
+
return unless calls
|
25
|
+
[:before, :on, :after].each do |moment|
|
26
|
+
calls.each do |callback|
|
27
|
+
callback.call(event, moment)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.schedule(callback)
|
33
|
+
self.callbacks[callback.description] ||= []
|
34
|
+
self.callbacks[callback.description] << callback
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module DaFunk
|
2
|
+
class NotificationEvent
|
3
|
+
attr_reader :id, :event, :acronym, :logical_number, :parameters, :callback
|
4
|
+
|
5
|
+
def perform
|
6
|
+
Notification.execute(self)
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(id, event, acronym, logical_number)
|
10
|
+
@id = id
|
11
|
+
@acronym = acronym
|
12
|
+
@logical_number = logical_number
|
13
|
+
parse(event)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
#{"id":3,"event":"3|SHOW_MESSAGE|TEST1|12-20-2017 18:23","acronym":"pc1","logical_number":"5A179615"}
|
19
|
+
#"3|SHOW_MESSAGE|TEST1|12-20-2017 18:23"
|
20
|
+
def parse(event)
|
21
|
+
values = event.to_s.split("|")
|
22
|
+
values.shift # id
|
23
|
+
@callback, *@parameters = values
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -1,8 +1,8 @@
|
|
1
|
-
|
1
|
+
module DaFunk
|
2
2
|
class ParamsDat
|
3
3
|
FILE_NAME = "./main/params.dat"
|
4
4
|
|
5
|
-
include
|
5
|
+
include DaFunk::Helper
|
6
6
|
|
7
7
|
class << self
|
8
8
|
attr_accessor :file, :apps, :valid, :files
|
@@ -34,12 +34,12 @@ class Device
|
|
34
34
|
true
|
35
35
|
end
|
36
36
|
|
37
|
-
def self.outdated_apps
|
38
|
-
self.apps.select{|app| app.outdated? }
|
37
|
+
def self.outdated_apps(force_crc = false, force = false)
|
38
|
+
self.apps.select{|app| app.outdated?(force_crc) || force }
|
39
39
|
end
|
40
40
|
|
41
|
-
def self.outdated_files
|
42
|
-
self.files.select{|f| f.outdated? }
|
41
|
+
def self.outdated_files(force_crc = false, force = false)
|
42
|
+
self.files.select{|f| f.outdated?(force_crc) || force }
|
43
43
|
end
|
44
44
|
|
45
45
|
def self.parse_apps
|
@@ -49,11 +49,11 @@ class Device
|
|
49
49
|
if application = get_app(name)
|
50
50
|
application.crc = crc
|
51
51
|
else
|
52
|
-
application =
|
52
|
+
application = DaFunk::Application.new(label, name, type, crc)
|
53
53
|
end
|
54
54
|
new_apps << application
|
55
55
|
end
|
56
|
-
|
56
|
+
DaFunk::Application.delete(@apps - new_apps)
|
57
57
|
@apps = new_apps
|
58
58
|
end
|
59
59
|
|
@@ -68,7 +68,7 @@ class Device
|
|
68
68
|
end
|
69
69
|
new_files << file_
|
70
70
|
end
|
71
|
-
|
71
|
+
DaFunk::Application.delete(@files - new_files)
|
72
72
|
@files = new_files
|
73
73
|
end
|
74
74
|
|
@@ -108,7 +108,7 @@ class Device
|
|
108
108
|
ret = try(3) do |attempt|
|
109
109
|
Device::Display.clear
|
110
110
|
I18n.pt(:downloading_content, :args => ["PARAMS", 1, 1])
|
111
|
-
ret =
|
111
|
+
ret = DaFunk::Transaction::Download.request_param_file(FILE_NAME)
|
112
112
|
unless check_download_error(ret)
|
113
113
|
sleep(2)
|
114
114
|
false
|
@@ -121,25 +121,25 @@ class Device
|
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
|
-
def self.update_apps(force = false)
|
125
|
-
self.download if
|
124
|
+
def self.update_apps(force_params = false, force_crc = false, force = false)
|
125
|
+
self.download if force_params || ! self.valid
|
126
126
|
if self.valid
|
127
|
-
apps_to_update = self.outdated_apps
|
127
|
+
apps_to_update = self.outdated_apps(force_crc, force)
|
128
128
|
size_apps = apps_to_update.size
|
129
129
|
apps_to_update.each_with_index do |app, index|
|
130
|
-
self.update_app(app, index+1, size_apps)
|
130
|
+
self.update_app(app, index+1, size_apps, force_crc || force)
|
131
131
|
end
|
132
132
|
|
133
|
-
files_to_update = self.outdated_files
|
133
|
+
files_to_update = self.outdated_files(force_crc, force)
|
134
134
|
size_files = files_to_update.size
|
135
135
|
files_to_update.each_with_index do |file_, index|
|
136
|
-
self.update_file(file_, index+1, size_files)
|
136
|
+
self.update_file(file_, index+1, size_files, force_crc || force)
|
137
137
|
end
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
141
141
|
def self.format!(keep_config_files = false, keep_files = [])
|
142
|
-
|
142
|
+
DaFunk::Application.delete(self.apps)
|
143
143
|
DaFunk::FileParameter.delete(self.files)
|
144
144
|
File.delete(FILE_NAME) if exists?
|
145
145
|
@apps, @files = [], []
|
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
|
2
|
+
module DaFunk
|
3
3
|
class Transaction
|
4
4
|
class Download
|
5
5
|
ERL_VERSION_MAGIC = 131
|
@@ -36,7 +36,7 @@ class Device
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def self.request_file(remote_path, local_path, crc = nil)
|
39
|
-
download =
|
39
|
+
download = DaFunk::Transaction::Download.new(Device::System.serial, "", DaFunk::VERSION)
|
40
40
|
download.perform(Device::Network.socket,
|
41
41
|
Device::Setting.company_name,
|
42
42
|
remote_path, local_path, Device::System.app,
|
data/lib/da_funk/version.rb
CHANGED
data/lib/da_funk.rb
CHANGED
@@ -1,35 +1,50 @@
|
|
1
1
|
unless Object.const_defined?(:MTest)
|
2
2
|
file_path = File.dirname(File.realpath(__FILE__))
|
3
|
-
require file_path + "/
|
3
|
+
require file_path + "/file_db.rb"
|
4
4
|
require file_path + "/da_funk/helper.rb"
|
5
|
-
require file_path + "/da_funk/iso8583.rb"
|
6
5
|
require file_path + "/da_funk/rake_task.rb"
|
6
|
+
require file_path + "/iso8583/bitmap.rb"
|
7
|
+
require file_path + "/iso8583/codec.rb"
|
8
|
+
require file_path + "/iso8583/exception.rb"
|
9
|
+
require file_path + "/iso8583/field.rb"
|
10
|
+
require file_path + "/iso8583/fields.rb"
|
11
|
+
require file_path + "/iso8583/message.rb"
|
12
|
+
require file_path + "/iso8583/util.rb"
|
13
|
+
require file_path + "/iso8583/version.rb"
|
14
|
+
require file_path + "/iso8583/file_parser.rb"
|
15
|
+
require file_path + "/device/version.rb"
|
16
|
+
require file_path + "/da_funk/version.rb"
|
7
17
|
require file_path + "/da_funk/test.rb"
|
8
18
|
require file_path + "/da_funk/screen.rb"
|
9
|
-
require file_path + "/
|
10
|
-
require file_path + "/
|
19
|
+
require file_path + "/da_funk/callback_flow.rb"
|
20
|
+
require file_path + "/da_funk/screen_flow.rb"
|
21
|
+
require file_path + "/da_funk/i18n_error.rb"
|
22
|
+
require file_path + "/da_funk/i18n.rb"
|
23
|
+
require file_path + "/da_funk/file_parameter.rb"
|
24
|
+
require file_path + "/da_funk/helper/status_bar.rb"
|
25
|
+
require file_path + "/da_funk/event_listener.rb"
|
26
|
+
require file_path + "/da_funk/event_handler.rb"
|
27
|
+
require file_path + "/da_funk/engine.rb"
|
28
|
+
require file_path + "/da_funk/struct.rb"
|
29
|
+
require file_path + "/da_funk/application.rb"
|
30
|
+
require file_path + "/da_funk/transaction/iso.rb"
|
31
|
+
require file_path + "/da_funk/transaction/download.rb"
|
32
|
+
require file_path + "/da_funk/notification_event.rb"
|
33
|
+
require file_path + "/da_funk/notification_callback.rb"
|
34
|
+
require file_path + "/da_funk/notification.rb"
|
35
|
+
require file_path + "/da_funk/params_dat.rb"
|
36
|
+
require file_path + "/device.rb"
|
37
|
+
require file_path + "/device/audio.rb"
|
11
38
|
require file_path + "/device/crypto.rb"
|
12
39
|
require file_path + "/device/display.rb"
|
13
40
|
require file_path + "/device/io.rb"
|
14
41
|
require file_path + "/device/network.rb"
|
15
42
|
require file_path + "/device/printer.rb"
|
43
|
+
require file_path + "/device/runtime.rb"
|
16
44
|
require file_path + "/device/setting.rb"
|
45
|
+
require file_path + "/device/support.rb"
|
17
46
|
require file_path + "/device/system.rb"
|
18
|
-
require file_path + "/device/
|
19
|
-
require file_path + "/device/params_dat.rb"
|
20
|
-
require file_path + "/device.rb"
|
21
|
-
require file_path + "/file_db.rb"
|
22
|
-
require file_path + "/iso8583/bitmap.rb"
|
23
|
-
require file_path + "/iso8583/codec.rb"
|
24
|
-
require file_path + "/iso8583/exception.rb"
|
25
|
-
require file_path + "/iso8583/field.rb"
|
26
|
-
require file_path + "/iso8583/fields.rb"
|
27
|
-
require file_path + "/iso8583/message.rb"
|
28
|
-
require file_path + "/iso8583/util.rb"
|
29
|
-
require file_path + "/iso8583/version.rb"
|
30
|
-
require file_path + "/device/transaction/download.rb"
|
31
|
-
require file_path + "/device/transaction/emv.rb"
|
32
|
-
require file_path + "/device/transaction/iso.rb"
|
47
|
+
require file_path + "/device/magnetic.rb"
|
33
48
|
end
|
34
49
|
|
35
50
|
module DaFunk
|
data/lib/device/io.rb
CHANGED
data/lib/device/runtime.rb
CHANGED
@@ -12,12 +12,6 @@ class Device
|
|
12
12
|
# @param json [String] Parameters to confifure new aplication.
|
13
13
|
# @return [Object] From the new runtime instance.
|
14
14
|
def self.execute(app, json = nil)
|
15
|
-
unless app.include?(".")
|
16
|
-
zip = "./#{app}.zip"
|
17
|
-
Device::Display.clear
|
18
|
-
raise File::FileError, zip unless File.exists?(zip)
|
19
|
-
raise "Problem to unzip #{zip}" unless Zip.uncompress(zip, app)
|
20
|
-
end
|
21
15
|
execution_ret = mrb_eval("Context.start('#{app}', '#{Device.adapter}', '#{json}')")
|
22
16
|
self.system_reaload
|
23
17
|
return execution_ret
|
@@ -27,7 +21,7 @@ class Device
|
|
27
21
|
# @return [NilClass] From the new runtime instance.
|
28
22
|
def self.system_reaload
|
29
23
|
Device::Setting.setup
|
30
|
-
|
24
|
+
DaFunk::ParamsDat.setup
|
31
25
|
Device::Network.setup
|
32
26
|
nil
|
33
27
|
end
|