fileminer 1.1.0 → 1.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 721d984d3d2e8c905f0bf86d52b2d89fb0adbb70c651ddd7d48cac16720d3584
4
- data.tar.gz: 12015a1aba0b44df10b4033ff476a4d7818d3db250e5bbbe9b0a9c4d1afc4c3b
3
+ metadata.gz: 40b0403c4675a8340fee70e155fd7e39ccc902144ca4ab1af03a08db4b8ef8d9
4
+ data.tar.gz: f344c468064be5e3a594befbb62a43e5937f4351029fa88a7fef3a0d6310ce87
5
5
  SHA512:
6
- metadata.gz: b0c9305e8e2ca63f13812593cdd1d9697de6fd51d9e633a5249accd704dbbc487924e2a36b2d2ff40981d7a271d79325a2a607b4618d1b82ca56693d7f9dad7a
7
- data.tar.gz: 017dddf1edc9b4859124504e05bb1d2ed46b6d52c9bec053e56b838e9ded56027d6cbeedd768578ebfa9249c6e716f2b872157f77ad0cf06073f95b471cb2510
6
+ metadata.gz: 9f72907fd4e74d2bbbd93130fd1762101c1aa757a44923067b47eb62a515d7e3a18e4452cd2eb4ad73cb66f36d06ca2b3bc6bb4fe0a04c6131ba2b29256d40fc
7
+ data.tar.gz: '022318a184a41042136a96d2691890ca3d78f4a3d12b2e9ea2ffe2774430d98861460e9e3a0fb0ae2a3e6f820791af24e39e7c7bc1bac2a53406fa5e74d82aed'
data/README.md CHANGED
@@ -20,6 +20,9 @@ Done installing documentation for fileminer after 0 seconds
20
20
  $ _
21
21
  ```
22
22
 
23
+ *Note: This tool now only support cruby.*
24
+
25
+
23
26
  2. setting up fileminer
24
27
 
25
28
  * generate configuration file
@@ -14,6 +14,7 @@ module Output
14
14
  ssl_mode: :disabled
15
15
  }
16
16
 
17
+ #
17
18
  # Create a mysql output plugin instance
18
19
  #
19
20
  # @param [Hash] options
@@ -36,20 +37,30 @@ module Output
36
37
  @encoding = conf[:encoding]
37
38
  conf[:ssl_mode] = :disabled if conf[:ssl_mode] != :enabled
38
39
  @mysql = Mysql2::Client.new conf
40
+ @mysql_conf = conf
39
41
  create_table_if_not_exists
40
42
  @sqls = Hash.new { |hash, key| hash[key] = generate_batch_sql key }
41
43
  end
42
44
 
43
45
  private
44
46
  def create_table_if_not_exists
45
- rs = @mysql.query 'SHOW TABLES'
47
+ mysql_client = get_mysql_client
48
+ rs = mysql_client.query 'SHOW TABLES'
46
49
  tables = rs.map { |row| row.values[0] }
47
50
  unless tables.include? @table
48
51
  sql = create_table_sql
49
- @mysql.query sql
52
+ mysql_client.query sql
50
53
  end
51
54
  end
52
55
 
56
+ def get_mysql_client
57
+ mysql_client = @mysql
58
+ if mysql_client.closed?
59
+ @mysql = mysql_client = Mysql2::Client.new @mysql_conf
60
+ end
61
+ mysql_client
62
+ end
63
+
53
64
  def create_table_sql
54
65
  <<-EOS
55
66
  CREATE TABLE `#@table` (
@@ -68,14 +79,7 @@ module Output
68
79
  "INSERT IGNORE INTO `#@table`(`host`,`path`,`pos`,`end`,`data`) VALUES " << (['(?,?,?,?,?)'] * size).join(',')
69
80
  end
70
81
 
71
- def get_batch_sql(size)
72
- if @sqls.key? size
73
- @sqls[size]
74
- else
75
- @sqls[size] = generate_batch_sql size
76
- end
77
- end
78
-
82
+ #
79
83
  # Send all lines to mysql
80
84
  #
81
85
  # @param [Array] lines
@@ -83,18 +87,12 @@ module Output
83
87
  public
84
88
  def send_all(lines, &listener)
85
89
  values = lines.flat_map { |line| [line[:host], line[:path], line[:pos], line[:end], line[:data]] }
86
- sql = get_batch_sql lines.size
87
- @mysql.query 'BEGIN'
88
- begin
89
- stat = @mysql.prepare sql
90
- stat.execute *values
91
- stat.close
92
- @mysql.query 'COMMIT'
93
- listener.call
94
- rescue => err
95
- @mysql.query 'ROLLBACK'
96
- raise err
97
- end
90
+ sql = @sqls[lines.size]
91
+ mysql_client = get_mysql_client
92
+ stmt = @mysql_client.prepare sql
93
+ stmt.execute *values
94
+ stmt.close
95
+ listener.call
98
96
  end
99
97
 
100
98
  end
@@ -1,5 +1,5 @@
1
1
  class FileMiner
2
2
 
3
- VERSION = '1.1.0'
3
+ VERSION = '1.1.1'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fileminer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fang MinJie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-20 00:00:00.000000000 Z
11
+ date: 2019-06-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A simple file/log transfer tool coding by ruby.
14
14
  email:
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  requirements: []
57
- rubygems_version: 3.0.1
57
+ rubygems_version: 3.0.4
58
58
  signing_key:
59
59
  specification_version: 4
60
60
  summary: A simple file/log transfer tool coding by ruby.