da_funk 0.6.7 → 0.7.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 +12 -0
- data/Rakefile +7 -3
- data/lib/da_funk/engine.rb +14 -6
- data/lib/da_funk/event_handler.rb +21 -0
- data/lib/da_funk/event_listener.rb +80 -0
- data/lib/da_funk/helper/status_bar.rb +1 -1
- data/lib/da_funk/version.rb +1 -1
- data/lib/device.rb +0 -8
- data/lib/device/io.rb +2 -2
- data/lib/device/magnetic.rb +14 -0
- data/lib/device/notification.rb +1 -17
- data/lib/ext/array.rb +6 -0
- data/lib/ext/hash.rb +6 -0
- data/lib/file_db.rb +4 -0
- data/lib/serfx/connection.rb +4 -4
- data/test/unit/da_funk/event_listener_test.rb +5 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ec3525c8b86df99abedcdc53570b5566932e225
|
4
|
+
data.tar.gz: e9a9f6add66d948a31ccf63353a8b104a3b5f508
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd7f60bf1c62851bc4ce07cb0fcf7f8b1d2e7ee9657a5184e686a9593a58a41629e870371393c6bb776e2d945898385663cfcdcaba462bbf2f9f793f77a18a72
|
7
|
+
data.tar.gz: 053fbb6613d76a2d8125b012597e49ba61d7b5ba100cc7eb1f26b74f5971e1a892da9b5d369c4c371a43c77a57ade4db9e16a540efe2ba5a953d2ee7d9c366e3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
da_funk (0.
|
4
|
+
da_funk (0.7.0)
|
5
5
|
bundler (~> 1.7)
|
6
6
|
cloudwalk_handshake (~> 0.5)
|
7
7
|
posxml_parser (~> 0.6)
|
@@ -13,7 +13,7 @@ GEM
|
|
13
13
|
specs:
|
14
14
|
cloudwalk_handshake (0.5.4)
|
15
15
|
funky-simplehttp (0.4.4)
|
16
|
-
posxml_parser (0.7.
|
16
|
+
posxml_parser (0.7.7)
|
17
17
|
rake (10.5.0)
|
18
18
|
yard (0.8.7.6)
|
19
19
|
|
data/RELEASE_NOTES.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# DaFunk
|
2
2
|
|
3
|
+
### 0.7.0 - 2016-03-10 - EventListener and EventHandler
|
4
|
+
|
5
|
+
- Implemented method each for FileDb.
|
6
|
+
- Implement method to_json to array and hash on an extension.
|
7
|
+
- Extract app_loop method from Device to DaFunk::Engine.
|
8
|
+
- Implement method Magnetic#bin? to change range read.
|
9
|
+
- Implement EventListener and EventHandler to deal with custom events.
|
10
|
+
- Remove Notification setup from app_loop and DaFunk responsibility.
|
11
|
+
- Change status bar update timeout to 60 seconds.
|
12
|
+
- Implemented Magnetic#read? to check if status is STATUS_SUCCESSFUL_READ.
|
13
|
+
- Update posxml_parser to version 0.7.6.
|
14
|
+
|
3
15
|
### 0.6.7 - 2016-02-29 - DaFunk::Engine and DaFunk::StatusBar
|
4
16
|
|
5
17
|
- Refactoring screen string manipulation.
|
data/Rakefile
CHANGED
@@ -9,6 +9,10 @@ DA_FUNK_ROOT = File.dirname(File.expand_path(__FILE__))
|
|
9
9
|
FileUtils.cd DA_FUNK_ROOT
|
10
10
|
|
11
11
|
FILES = FileList[
|
12
|
+
"lib/ext/kernel.rb",
|
13
|
+
"lib/ext/string.rb",
|
14
|
+
"lib/ext/array.rb",
|
15
|
+
"lib/ext/hash.rb",
|
12
16
|
"lib/device/version.rb",
|
13
17
|
"lib/da_funk/version.rb",
|
14
18
|
"lib/da_funk/helper.rb",
|
@@ -21,6 +25,8 @@ FILES = FileList[
|
|
21
25
|
"lib/da_funk/i18n.rb",
|
22
26
|
"lib/da_funk/file_parameter.rb",
|
23
27
|
"lib/da_funk/helper/status_bar.rb",
|
28
|
+
"lib/da_funk/event_listener.rb",
|
29
|
+
"lib/da_funk/event_handler.rb",
|
24
30
|
"lib/da_funk/engine.rb",
|
25
31
|
"lib/device.rb",
|
26
32
|
"lib/device/audio.rb",
|
@@ -58,9 +64,7 @@ FILES = FileList[
|
|
58
64
|
"lib/device/notification.rb",
|
59
65
|
"lib/device/application.rb",
|
60
66
|
"lib/zip.rb",
|
61
|
-
"lib/device/magnetic.rb"
|
62
|
-
"lib/ext/kernel.rb",
|
63
|
-
"lib/ext/string.rb"
|
67
|
+
"lib/device/magnetic.rb"
|
64
68
|
]
|
65
69
|
|
66
70
|
DaFunk::RakeTask.new do |t|
|
data/lib/da_funk/engine.rb
CHANGED
@@ -1,15 +1,23 @@
|
|
1
1
|
module DaFunk
|
2
2
|
class Engine
|
3
|
-
def self.setup
|
4
|
-
Device::Display.clear
|
5
|
-
puts "SETUP NOTIFICATIONS..."
|
6
|
-
Device::Notification.setup
|
7
|
-
end
|
8
|
-
|
9
3
|
def self.check
|
4
|
+
DaFunk::EventListener.check
|
10
5
|
Device::Notification.check
|
11
6
|
DaFunk::Helper::StatusBar.check
|
12
7
|
end
|
8
|
+
|
9
|
+
def self.app_loop(&block)
|
10
|
+
@stop = false
|
11
|
+
loop do
|
12
|
+
self.check
|
13
|
+
break if @stop
|
14
|
+
block.call
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.stop!
|
19
|
+
@stop = true
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
15
23
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module DaFunk
|
2
|
+
class EventHandler
|
3
|
+
attr_reader :option, :type
|
4
|
+
|
5
|
+
def initialize(type, option, &block)
|
6
|
+
@type = type
|
7
|
+
@option = option
|
8
|
+
@perform_block = block
|
9
|
+
self.register
|
10
|
+
end
|
11
|
+
|
12
|
+
def register
|
13
|
+
EventListener.add_handler(self)
|
14
|
+
end
|
15
|
+
|
16
|
+
def perform(*parameter)
|
17
|
+
@perform_block.call(*parameter)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module DaFunk
|
2
|
+
class EventListener
|
3
|
+
class << self
|
4
|
+
attr_accessor :listeners
|
5
|
+
end
|
6
|
+
|
7
|
+
self.listeners = {}
|
8
|
+
|
9
|
+
def self.check
|
10
|
+
self.listeners.each { |type, listener| listener.check }
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.register(event_listener)
|
14
|
+
self.listeners[event_listener.type] = event_listener
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.delete(event_listener)
|
18
|
+
self.listeners.delete(self.type)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.add_handler(handler)
|
22
|
+
if listener = self.listeners[handler.type]
|
23
|
+
listener.handlers[handler.option] = handler
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
attr_accessor :block_start, :block_check, :block_finish, :handlers
|
28
|
+
attr_reader :type
|
29
|
+
|
30
|
+
def initialize(type)
|
31
|
+
@type = type
|
32
|
+
@handlers = {}
|
33
|
+
yield self if block_given?
|
34
|
+
self.register
|
35
|
+
self.start
|
36
|
+
end
|
37
|
+
|
38
|
+
def register
|
39
|
+
EventListener.register(self)
|
40
|
+
end
|
41
|
+
|
42
|
+
def delete
|
43
|
+
self.finish if sel.started?
|
44
|
+
EventListener.delete(self)
|
45
|
+
end
|
46
|
+
|
47
|
+
def start(&block)
|
48
|
+
if block_given?
|
49
|
+
@block_start = block
|
50
|
+
else
|
51
|
+
@started = true
|
52
|
+
@block_start.call if @block_start
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def check(&block)
|
57
|
+
if block_given?
|
58
|
+
@block_check = block
|
59
|
+
else
|
60
|
+
if @block_check && ! self.handlers.empty?
|
61
|
+
@block_check.call
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def finish(&block)
|
67
|
+
if block_given?
|
68
|
+
@block_finish = block
|
69
|
+
else
|
70
|
+
@started = false
|
71
|
+
@block_finish.call if @block_finish
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def started?
|
76
|
+
@started
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
data/lib/da_funk/version.rb
CHANGED
data/lib/device.rb
CHANGED
data/lib/device/io.rb
CHANGED
@@ -50,7 +50,7 @@ class Device
|
|
50
50
|
|
51
51
|
# Setup Keyboard Map
|
52
52
|
#
|
53
|
-
# @param
|
53
|
+
# @param map [Array] contains the key map from 1 to 0 (0..9)
|
54
54
|
# @return [NilClass] nil.
|
55
55
|
#
|
56
56
|
# @example
|
@@ -138,7 +138,7 @@ class Device
|
|
138
138
|
text = text[0..-2]
|
139
139
|
elsif key == ENTER || key == KEY_TIMEOUT
|
140
140
|
return text
|
141
|
-
elsif key ==
|
141
|
+
elsif key == F1 || key == DOWN || key == UP
|
142
142
|
change_next(text, check_mask_type(text, options))
|
143
143
|
next
|
144
144
|
elsif text.size >= max
|
data/lib/device/magnetic.rb
CHANGED
@@ -52,6 +52,10 @@ class Device
|
|
52
52
|
false
|
53
53
|
end
|
54
54
|
|
55
|
+
def read?
|
56
|
+
@status == STATUS_SUCCESSFUL_READ
|
57
|
+
end
|
58
|
+
|
55
59
|
def read
|
56
60
|
adapter.read
|
57
61
|
end
|
@@ -65,6 +69,16 @@ class Device
|
|
65
69
|
@tracks
|
66
70
|
end
|
67
71
|
|
72
|
+
def bin?(value)
|
73
|
+
tracks if STATUS_SUCCESSFUL_READ
|
74
|
+
digits = track2.to_s[0..3]
|
75
|
+
if value.is_a?(Range) && ! digits.empty? && digits.integer?
|
76
|
+
value.include? digits.to_f
|
77
|
+
else
|
78
|
+
digits.to_s == value.to_s
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
68
82
|
private
|
69
83
|
def read_tracks
|
70
84
|
@tracks = adapter.tracks
|
data/lib/device/notification.rb
CHANGED
@@ -48,23 +48,6 @@ class Device
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
def self.setup
|
52
|
-
NotificationCallback.new "APP_UPDATE", :on => Proc.new { Device::ParamsDat.update_apps(true) }
|
53
|
-
NotificationCallback.new "SETUP_DEVICE_CONFIG", :on => Proc.new { Device::ParamsDat.update_apps(true) }
|
54
|
-
NotificationCallback.new "RESET_DEVICE_CONFIG", :on => Proc.new { Device::ParamsDat.format! }
|
55
|
-
|
56
|
-
NotificationCallback.new "SYSTEM_UPDATE", :on => Proc.new { |file| }
|
57
|
-
NotificationCallback.new "CANCEL_SYSTEM_UPDATE", :on => Proc.new { }
|
58
|
-
NotificationCallback.new "TIMEZONE_UPDATE", :on => Proc.new { Device::Setting.cw_pos_timezone = "" }
|
59
|
-
NotificationCallback.new "SHOW_MESSAGE", :on => Proc.new { |message, datetime|
|
60
|
-
Device::Display.clear
|
61
|
-
date = datetime.sub(" ", "-").split("-")
|
62
|
-
Device::Display.print_line("#{date[1]}/#{date[0]}/#{date[2]} #{date[3]}", 0)
|
63
|
-
Device::Display.print_line("#{message}", 2)
|
64
|
-
getc(0)
|
65
|
-
}
|
66
|
-
end
|
67
|
-
|
68
51
|
def self.create_fiber?
|
69
52
|
(! Device::Setting.company_name.empty?) && (! Device::Setting.logical_number.empty?) && self.valid_creation_interval?
|
70
53
|
end
|
@@ -87,6 +70,7 @@ class Device
|
|
87
70
|
|
88
71
|
# Check if there is any notification
|
89
72
|
def check
|
73
|
+
# TODO check if should execute this(because of connection exception)
|
90
74
|
if valid_check_interval? && Device::Network.connected? == Device::Network::SUCCESS
|
91
75
|
if @fiber.alive?
|
92
76
|
if (notification = @fiber.resume)
|
data/lib/ext/array.rb
ADDED
data/lib/ext/hash.rb
ADDED
data/lib/file_db.rb
CHANGED
data/lib/serfx/connection.rb
CHANGED
@@ -64,8 +64,8 @@ module Serfx
|
|
64
64
|
# @return [Hash]
|
65
65
|
def read_data(read_timeout = self.timeout)
|
66
66
|
buf = read_buffer(read_timeout)
|
67
|
-
return if buf.nil?
|
68
|
-
return
|
67
|
+
return {'Error' => "Socket closed"} if buf.nil?
|
68
|
+
return if buf.empty?
|
69
69
|
parse_package(buf)
|
70
70
|
end
|
71
71
|
|
@@ -85,9 +85,9 @@ module Serfx
|
|
85
85
|
bytes = socket.bytes_available
|
86
86
|
return socket.recv_nonblock(bytes) if bytes > 0
|
87
87
|
break unless time_timeout > Time.now
|
88
|
-
|
88
|
+
usleep 200_000
|
89
89
|
end
|
90
|
-
|
90
|
+
""
|
91
91
|
end
|
92
92
|
|
93
93
|
# takes raw RPC command name and an optional request body
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: da_funk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thiago Scalone
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -112,6 +112,8 @@ files:
|
|
112
112
|
- lib/da_funk.rb
|
113
113
|
- lib/da_funk/callback_flow.rb
|
114
114
|
- lib/da_funk/engine.rb
|
115
|
+
- lib/da_funk/event_handler.rb
|
116
|
+
- lib/da_funk/event_listener.rb
|
115
117
|
- lib/da_funk/file_parameter.rb
|
116
118
|
- lib/da_funk/helper.rb
|
117
119
|
- lib/da_funk/helper/status_bar.rb
|
@@ -145,6 +147,8 @@ files:
|
|
145
147
|
- lib/device/transaction/emv.rb
|
146
148
|
- lib/device/transaction/iso.rb
|
147
149
|
- lib/device/version.rb
|
150
|
+
- lib/ext/array.rb
|
151
|
+
- lib/ext/hash.rb
|
148
152
|
- lib/ext/kernel.rb
|
149
153
|
- lib/ext/string.rb
|
150
154
|
- lib/file_db.rb
|
@@ -170,6 +174,7 @@ files:
|
|
170
174
|
- test/integration/params_dat_test.rb
|
171
175
|
- test/resources/shared/bitmap.dat
|
172
176
|
- test/test_helper.rb
|
177
|
+
- test/unit/da_funk/event_listener_test.rb
|
173
178
|
- test/unit/device/application_test.rb
|
174
179
|
- test/unit/device/display_test.rb
|
175
180
|
- test/unit/device/helper_test.rb
|
@@ -215,6 +220,7 @@ test_files:
|
|
215
220
|
- test/integration/params_dat_test.rb
|
216
221
|
- test/resources/shared/bitmap.dat
|
217
222
|
- test/test_helper.rb
|
223
|
+
- test/unit/da_funk/event_listener_test.rb
|
218
224
|
- test/unit/device/application_test.rb
|
219
225
|
- test/unit/device/display_test.rb
|
220
226
|
- test/unit/device/helper_test.rb
|