da_funk 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/RELEASE_NOTES.md +13 -0
- data/lib/da_funk/application.rb +6 -5
- data/lib/da_funk/file_parameter.rb +1 -4
- data/lib/da_funk/rake_task.rb +2 -1
- data/lib/da_funk/version.rb +1 -1
- data/lib/device/crypto.rb +11 -7
- data/lib/ext/float.rb +33 -3
- data/lib/ext/string.rb +4 -4
- data/test/unit/device/notification_event_test.rb +12 -56
- data/test/unit/ext/float_test.rb +33 -0
- data/utils/command_line_platform.rb +8 -0
- metadata +4 -4
- data/test/unit/device/notification_test.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e71f255822e3ef065d041bfd48892098b35aeb2f
|
4
|
+
data.tar.gz: 4ba6e1a14efdc6fc727fdaf89532f0bbffddff03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc4871329bef72f26e250fce32913cf95ef2567e5160df2533fc35376521fb3e8eb42ae7124b04093fe0d05aba1a6aea0fbd0ebf22bd8078ab5076a594ecf407
|
7
|
+
data.tar.gz: 7acf4902f84660e10ad25a4959305e6b59d39ca6471d2a07247fc2ca956d0ccaa5c5cfd69017bc52aeac11b82c3e7334767d348819bcfb16deb8c41006dfc31e
|
data/Gemfile.lock
CHANGED
data/RELEASE_NOTES.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# DaFunk
|
2
2
|
|
3
|
+
### 1.2.0 - 2018-01-11
|
4
|
+
|
5
|
+
- Remove NotificatioTest, it’s outdated.
|
6
|
+
- Fix DaFunk::Application test when receiving a label that wasn’t expected.
|
7
|
+
- Replace crc16 of downloaded files strategy instead of read the entire file move the responsibility to decide the better approach, 1. Read the entire file, 2. Read each 10k. It’s necessary to avoid a system error on File.read greater than 900k.
|
8
|
+
- Finish the excecution after custom test run to avoid rake to try run a task with the file name.
|
9
|
+
- Check if file is bigger than 500k on Crypto::file_crc16_hex and if it is, calculate the crc in chuncks.
|
10
|
+
- Implement Float.to_s with other bases 10, nil and others.
|
11
|
+
- Refactoring String.to_i adopting Interger() instead of alias.
|
12
|
+
- Add Float tests.
|
13
|
+
- Fix Display Test covering MRuby 1.3.0 puts/print API.
|
14
|
+
- Refactoring NotificationEventTest following the new implementation.
|
15
|
+
|
3
16
|
### 1.1.1 - 2018-01-10
|
4
17
|
|
5
18
|
- Update dependencies versions.
|
data/lib/da_funk/application.rb
CHANGED
@@ -117,11 +117,8 @@ module DaFunk
|
|
117
117
|
|
118
118
|
def calculate_crc
|
119
119
|
if exists?
|
120
|
-
|
121
|
-
Device::Crypto.crc16_hex(handle.read)
|
120
|
+
Device::Crypto.file_crc16_hex(file)
|
122
121
|
end
|
123
|
-
ensure
|
124
|
-
handle.close if handle
|
125
122
|
end
|
126
123
|
|
127
124
|
def check_path(path)
|
@@ -139,7 +136,11 @@ module DaFunk
|
|
139
136
|
number, text = text.to_s.split(" - ")
|
140
137
|
end
|
141
138
|
|
142
|
-
|
139
|
+
if number && text
|
140
|
+
[number.to_i, text.to_s]
|
141
|
+
else
|
142
|
+
[0, text.to_s]
|
143
|
+
end
|
143
144
|
end
|
144
145
|
end
|
145
146
|
end
|
data/lib/da_funk/rake_task.rb
CHANGED
data/lib/da_funk/version.rb
CHANGED
data/lib/device/crypto.rb
CHANGED
@@ -61,15 +61,19 @@ class Device
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def self.file_crc16_hex(path)
|
64
|
-
if File.exists?(path)
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
64
|
+
if File.exists?(path) && (len = File.size(path))
|
65
|
+
if len > 500_000
|
66
|
+
crc = 0
|
67
|
+
File.open(path) do |file|
|
68
|
+
loop do
|
69
|
+
break unless buf = file.read(10_000)
|
70
|
+
crc = self.crc16(buf, crc)
|
71
|
+
end
|
70
72
|
end
|
73
|
+
rjust(crc.to_s(16).upcase, 4, "0")
|
74
|
+
else
|
75
|
+
crc16_hex(File.read(path))
|
71
76
|
end
|
72
|
-
rjust(crc.to_s(16).upcase, 4, "0")
|
73
77
|
else
|
74
78
|
"0000"
|
75
79
|
end
|
data/lib/ext/float.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
class Float
|
2
|
-
alias to_s_old to_s
|
3
2
|
def to_s(*args)
|
4
|
-
|
3
|
+
case args.first
|
4
|
+
when 16
|
5
5
|
t = self
|
6
6
|
v = []
|
7
7
|
loop do
|
@@ -10,9 +10,39 @@ class Float
|
|
10
10
|
break if t == 0
|
11
11
|
end
|
12
12
|
v.reverse.inject("") {|str, v| str << v.to_i.to_s(16)}
|
13
|
+
when 10, nil
|
14
|
+
if self.to_i.is_a?(Fixnum)
|
15
|
+
value = ("%f" % self)
|
16
|
+
else
|
17
|
+
t = self
|
18
|
+
v = []
|
19
|
+
loop do
|
20
|
+
v << (t % 10).to_i
|
21
|
+
t = (t / 10).to_i
|
22
|
+
break if t == 0
|
23
|
+
end
|
24
|
+
value = v.reverse.inject("") {|str, v| str << v.to_i.to_s}
|
25
|
+
end
|
26
|
+
remove_zero(value)
|
13
27
|
else
|
14
|
-
|
28
|
+
if self.to_i.is_a?(Fixnum)
|
29
|
+
self.to_i.to_s(*args)
|
30
|
+
else
|
31
|
+
"%f" % self
|
32
|
+
end
|
15
33
|
end
|
16
34
|
end
|
35
|
+
|
36
|
+
def remove_zero(str)
|
37
|
+
exclude = true
|
38
|
+
str.reverse.chars.select do |v|
|
39
|
+
if (v == "0" || v == ".") && exclude
|
40
|
+
false
|
41
|
+
else
|
42
|
+
exclude = false
|
43
|
+
true
|
44
|
+
end
|
45
|
+
end.reverse.join
|
46
|
+
end
|
17
47
|
end
|
18
48
|
|
data/lib/ext/string.rb
CHANGED
@@ -24,12 +24,12 @@ class String
|
|
24
24
|
return false
|
25
25
|
end
|
26
26
|
|
27
|
-
alias to_i_old to_i
|
28
27
|
def to_i(*args)
|
29
|
-
|
30
|
-
|
28
|
+
case args.first
|
29
|
+
when 16
|
30
|
+
to_big(16)
|
31
31
|
else
|
32
|
-
|
32
|
+
Integer(self, args.first || 10)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -1,73 +1,29 @@
|
|
1
1
|
|
2
2
|
class NotificationEventTest < DaFunk::Test.case
|
3
3
|
def setup
|
4
|
-
@
|
5
|
-
|
6
|
-
|
7
|
-
"Payload" => "{\"Body\"=>\"message 62\"}",
|
8
|
-
"Name" => "pc1;0101",
|
9
|
-
"Event" => "user"
|
10
|
-
}
|
11
|
-
@event = DaFunk::NotificationEvent.new(@stream_event)
|
4
|
+
@str = '{"id":3,"event":"3|SHOW_MESSAGE|TEST1|12-20-2017 18:23","acronym":"pc1","logical_number":"5A179615"}'
|
5
|
+
@json = JSON.parse @str
|
6
|
+
@event = DaFunk::NotificationEvent.new(@json["id"], @json["event"], @json["acronym"], @json["logical_number"])
|
12
7
|
end
|
13
8
|
|
14
|
-
def
|
15
|
-
assert_equal @
|
9
|
+
def test_attr_id
|
10
|
+
assert_equal @json["id"], @event.id
|
16
11
|
end
|
17
12
|
|
18
|
-
def
|
19
|
-
assert_equal @
|
13
|
+
def test_attr_acronym
|
14
|
+
assert_equal @json["acronym"], @event.acronym
|
20
15
|
end
|
21
16
|
|
22
|
-
def
|
23
|
-
assert_equal @
|
17
|
+
def test_attr_logical_number
|
18
|
+
assert_equal @json["logical_number"], @event.logical_number
|
24
19
|
end
|
25
20
|
|
26
|
-
def
|
27
|
-
assert_equal
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_attr_event
|
31
|
-
assert_equal @stream_event["Event"], @event.event
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_attr_message
|
35
|
-
assert_equal "{\"Body\" : \"message 62\"}", @event.message
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_attr_value
|
39
|
-
hash = {"Body" => "message 62"}
|
40
|
-
assert_equal hash, @event.value
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_attr_value
|
44
|
-
assert_equal "message 62", @event.body
|
21
|
+
def test_attr_parameters
|
22
|
+
assert_equal ["TEST1", "12-20-2017 18:23"], @event.parameters
|
45
23
|
end
|
46
24
|
|
47
25
|
def test_attr_callback
|
48
|
-
assert_equal "
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_attr_callback
|
52
|
-
assert_equal "message 62", @event.callback
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_attr_none_parameters
|
56
|
-
assert_equal [], @event.parameters
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_attr_one_parameter
|
60
|
-
stream_event = @stream_event.dup
|
61
|
-
stream_event["Payload"].gsub!("a", "|")
|
62
|
-
event = DaFunk::NotificationEvent.new(stream_event)
|
63
|
-
assert_equal ["ge 62"], event.parameters
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_attr_multiple_parameters
|
67
|
-
stream_event = @stream_event.dup
|
68
|
-
stream_event["Payload"].gsub!("e", "|")
|
69
|
-
event = DaFunk::NotificationEvent.new(stream_event)
|
70
|
-
assert_equal ["ssag", " 62"], event.parameters
|
26
|
+
assert_equal "SHOW_MESSAGE", @event.callback
|
71
27
|
end
|
72
28
|
end
|
73
29
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
|
2
|
+
class FloatTest < DaFunk::Test.case
|
3
|
+
def test_to_s_16_small_len
|
4
|
+
assert_equal "200b1f", 2099999.to_s(16)
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_to_s_16_medium_len
|
8
|
+
assert_equal "775f05a073fff", 2099999999999999.to_s(16)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_to_s_16_big_len
|
12
|
+
skip "Runtime stil have problem to deal with big numbers"
|
13
|
+
assert_equal "6c9144c1c690d4cb3ffffff", 2099999999999999999999999999.to_s(16)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_to_s_10_big_len
|
17
|
+
skip "Runtime stil have problem to deal with big numbers"
|
18
|
+
assert_equal "2099999999999999999999999999", 2099999999999999999999999999.to_s(10)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_to_s_nil
|
22
|
+
assert_equal "20.34", (20.34).to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_to_s_8
|
26
|
+
assert_equal "10005437", (2099999.00).to_s(8)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_to_s_8
|
30
|
+
assert_equal "1000000000101100011111", (2099999.00).to_s(2)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
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: 1.
|
4
|
+
version: 1.2.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: 2018-01-
|
11
|
+
date: 2018-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -222,7 +222,7 @@ files:
|
|
222
222
|
- test/unit/device/io_test.rb
|
223
223
|
- test/unit/device/notification_callback_test.rb
|
224
224
|
- test/unit/device/notification_event_test.rb
|
225
|
-
- test/unit/
|
225
|
+
- test/unit/ext/float_test.rb
|
226
226
|
- test/unit/ext/string_test.rb
|
227
227
|
- test/unit/file_db_test.rb
|
228
228
|
- test/unit/iso8583_build_klass.rb
|
@@ -271,7 +271,7 @@ test_files:
|
|
271
271
|
- test/unit/device/io_test.rb
|
272
272
|
- test/unit/device/notification_callback_test.rb
|
273
273
|
- test/unit/device/notification_event_test.rb
|
274
|
-
- test/unit/
|
274
|
+
- test/unit/ext/float_test.rb
|
275
275
|
- test/unit/ext/string_test.rb
|
276
276
|
- test/unit/file_db_test.rb
|
277
277
|
- test/unit/iso8583_build_klass.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
|
2
|
-
class NotificationTest < DaFunk::Test.case
|
3
|
-
def setup
|
4
|
-
@notification = DaFunk::Notification.new(15, 10)
|
5
|
-
end
|
6
|
-
|
7
|
-
def test_interval_last_check_blank
|
8
|
-
assert @notification.valid_check_interval?
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_interval_expired
|
12
|
-
@notification.instance_eval { @last_check = (Time.now - 11) }
|
13
|
-
assert @notification.valid_check_interval?
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_interval_not_expired
|
17
|
-
@notification.instance_eval { @last_check = Time.now }
|
18
|
-
assert_equal false, @notification.valid_check_interval?
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|