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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bdbb1364839d6181ce890eb4d5f3bef04e042adc
4
- data.tar.gz: e1e4414dd9bab18170c5a6c6efa578f64fb9f2cd
3
+ metadata.gz: e71f255822e3ef065d041bfd48892098b35aeb2f
4
+ data.tar.gz: 4ba6e1a14efdc6fc727fdaf89532f0bbffddff03
5
5
  SHA512:
6
- metadata.gz: 89da0c84a39bbabe0c17a5f7246d46f955a5656c58cfde94d1394731d874ae25eb92059e964cea87a9ca4dbd44e8550af94eeedba78dc88728748ad4a63a4520
7
- data.tar.gz: 7944db8945cc2bdb9e06cf85635f7480e281c66ad7a483885109b97a2e3b5e455fe0156bcf657a2a5417cf0b0de50c67d5150e87c12dfa4f4db5df2851d1999f
6
+ metadata.gz: fc4871329bef72f26e250fce32913cf95ef2567e5160df2533fc35376521fb3e8eb42ae7124b04093fe0d05aba1a6aea0fbd0ebf22bd8078ab5076a594ecf407
7
+ data.tar.gz: 7acf4902f84660e10ad25a4959305e6b59d39ca6471d2a07247fc2ca956d0ccaa5c5cfd69017bc52aeac11b82c3e7334767d348819bcfb16deb8c41006dfc31e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- da_funk (1.1.1)
4
+ da_funk (1.2.0)
5
5
  archive-zip (~> 0.5)
6
6
  bundler
7
7
  cloudwalk_handshake
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.
@@ -117,11 +117,8 @@ module DaFunk
117
117
 
118
118
  def calculate_crc
119
119
  if exists?
120
- handle = File.open(file)
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
- [number.to_i, text.to_s]
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
@@ -74,11 +74,8 @@ module DaFunk
74
74
  private
75
75
  def calculate_crc
76
76
  if exists?
77
- handle = File.open(file)
78
- Device::Crypto.crc16_hex(handle.read)
77
+ Device::Crypto.file_crc16_hex(file)
79
78
  end
80
- ensure
81
- handle.close if handle
82
79
  end
83
80
 
84
81
  def check_company(name)
@@ -138,7 +138,8 @@ module DaFunk
138
138
  desc "Run all test on mruby"
139
139
  task :all => "test:setup" do
140
140
  if ARGV[1]
141
- execute_tests(FileList[ARGV[1]])
141
+ execute_tests(FileList[ARGV.delete_at(1)])
142
+ exit(1)
142
143
  else
143
144
  execute_tests(tests)
144
145
  end
@@ -1,4 +1,4 @@
1
1
  module DaFunk
2
- VERSION="1.1.1"
2
+ VERSION="1.2.0"
3
3
  end
4
4
 
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
- crc = 0
66
- File.open(path) do |file|
67
- loop do
68
- break unless buf = file.read(1000)
69
- crc = self.crc16(buf, crc)
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
- if args.first == 16
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
- to_s_old(*args)
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
- if args.first == 16
30
- to_big(*args)
28
+ case args.first
29
+ when 16
30
+ to_big(16)
31
31
  else
32
- to_i_old(*args)
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
- @stream_event = {
5
- "Coalesce" => true,
6
- "LTime" => 1792,
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 test_attr_coalesce
15
- assert_equal @stream_event["Coalesce"], @event.coalesce
9
+ def test_attr_id
10
+ assert_equal @json["id"], @event.id
16
11
  end
17
12
 
18
- def test_attr_ltim
19
- assert_equal @stream_event["LTime"], @event.ltime
13
+ def test_attr_acronym
14
+ assert_equal @json["acronym"], @event.acronym
20
15
  end
21
16
 
22
- def test_attr_payload
23
- assert_equal @stream_event["Payload"], @event.payload
17
+ def test_attr_logical_number
18
+ assert_equal @json["logical_number"], @event.logical_number
24
19
  end
25
20
 
26
- def test_attr_name
27
- assert_equal @stream_event["Name"], @event.name
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 "message 62", @event.callback
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
+
@@ -2,6 +2,14 @@ module Kernel
2
2
  def getc(timeout = 0)
3
3
  gets.chomp[0]
4
4
  end
5
+
6
+ def puts(*args)
7
+ STDOUT.puts(*args)
8
+ end
9
+
10
+ def print(*args)
11
+ STDOUT.print(*args)
12
+ end
5
13
  end
6
14
 
7
15
  class CommandLinePlatform
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.1.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-10 00:00:00.000000000 Z
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/device/notification_test.rb
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/device/notification_test.rb
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
-