km-export-processor 0.3.2 → 0.3.6
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/bin/km-export-processor +9 -3
- data/lib/km-export-processor.rb +2 -1
- data/lib/{alias_parser.rb → parsers/alias_parser.rb} +0 -0
- data/lib/parsers/identity_parser.rb +26 -0
- data/lib/reimporter.rb +10 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7ad4d1f4f74a54916571718aa250758430598b3
|
4
|
+
data.tar.gz: 8a3f75352b6fee4fd11f5e7388abe6963c6d876f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca1736615b2a414012a744370813af77e2613c5679c1cb59bceb58d5d2c328e12ba02fc7bfffcb376f765cf5c64257cc1fcf701b78161a70f24d1de65a871e0f
|
7
|
+
data.tar.gz: eda70edec75818811bbc16b6880308a916bdcc30d435c37f7bfd68bd0e8eb4e24051bcf6f00216e46730c3367145f645833833660deaabf0bfd9f2b8de840835
|
data/bin/km-export-processor
CHANGED
@@ -28,11 +28,17 @@ class CLI < Thor
|
|
28
28
|
KMExport.alias_parser(jsonfile)
|
29
29
|
end
|
30
30
|
|
31
|
-
desc "
|
32
|
-
def
|
31
|
+
desc "parse_identity [JSONFILE] [IDENTITY]", "Takes KISSmetrics JSON as an input, and separates any actions taken by the provided identity into their own file"
|
32
|
+
def parse_identity(jsonfile, identity)
|
33
|
+
puts "Parsing any actions done by #{identity} in #{jsonfile} into their own file"
|
34
|
+
KMExport.identity_parser(jsonfile, identity)
|
35
|
+
end
|
36
|
+
|
37
|
+
desc "reimport [JSONFILE] [APIKEY] [OFFSET]", "Takes KISSmetrics JSON, and a KM API key as input, and sends the data to KISSmetrics"
|
38
|
+
def reimport(jsonfile, apikey, offset=0)
|
33
39
|
puts "Sending data from #{jsonfile} to KISSmetrics product with key: #{apikey}"
|
34
40
|
reimporter = KMExport::Reimporter.new
|
35
|
-
reimporter.send_to_KM(jsonfile, apikey)
|
41
|
+
reimporter.send_to_KM(jsonfile, apikey, offset.to_i)
|
36
42
|
end
|
37
43
|
end
|
38
44
|
|
data/lib/km-export-processor.rb
CHANGED
@@ -10,4 +10,5 @@ require_relative 'converters/json_to_json'
|
|
10
10
|
require_relative 'converters/json_to_csv'
|
11
11
|
require_relative 'converters/json_compiler'
|
12
12
|
require_relative 'reimporter'
|
13
|
-
require_relative '
|
13
|
+
require_relative 'parsers/identity_parser'
|
14
|
+
require_relative 'parsers/alias_parser'
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module KMExport
|
2
|
+
def self.identity_parser(jsonfile, identity)
|
3
|
+
input = IO.open(IO.sysopen(jsonfile))
|
4
|
+
output_filename = Time.now.to_i.to_s + "_" + identity + "_results.json"
|
5
|
+
new_filename = Time.now.to_i.to_s + "_result.json"
|
6
|
+
File.open(output_filename, "w+").close
|
7
|
+
File.open(new_filename, "w+").close
|
8
|
+
identity_output = IO.open(IO.sysopen(output_filename, "w"), "w")
|
9
|
+
data_output = IO.open(IO.sysopen(new_filename, "w"), "w")
|
10
|
+
|
11
|
+
until input.eof?
|
12
|
+
row = input.readline
|
13
|
+
data = JSON.parse(row)
|
14
|
+
if data["_p"] == identity
|
15
|
+
identity_output.write(row)
|
16
|
+
identity_output.write("\n")
|
17
|
+
else
|
18
|
+
data_output.write(row)
|
19
|
+
data_output.write("\n")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
input.close
|
24
|
+
File.delete(jsonfile)
|
25
|
+
end
|
26
|
+
end
|
data/lib/reimporter.rb
CHANGED
@@ -5,6 +5,13 @@ class JSONQueue < Queue
|
|
5
5
|
@counter = opts[:counter]
|
6
6
|
end
|
7
7
|
|
8
|
+
def offset(amount)
|
9
|
+
puts "Offsetting by #{amount}"
|
10
|
+
amount.times do
|
11
|
+
@io.readline
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
8
15
|
def add_to_queue
|
9
16
|
100.times do
|
10
17
|
self << JSON.parse(@io.readline)
|
@@ -16,11 +23,12 @@ end
|
|
16
23
|
|
17
24
|
module KMExport
|
18
25
|
class Reimporter
|
19
|
-
def send_to_KM(json, key)
|
26
|
+
def send_to_KM(json, key, offset)
|
20
27
|
pool = 10
|
21
28
|
threads = []
|
22
|
-
queue = JSONQueue.new({file: json, counter:
|
29
|
+
queue = JSONQueue.new({file: json, counter: offset})
|
23
30
|
|
31
|
+
queue.offset(offset)
|
24
32
|
queue.add_to_queue
|
25
33
|
|
26
34
|
pool.times do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: km-export-processor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clay Whitley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kmts
|
@@ -130,11 +130,12 @@ executables:
|
|
130
130
|
extensions: []
|
131
131
|
extra_rdoc_files: []
|
132
132
|
files:
|
133
|
-
- lib/alias_parser.rb
|
134
133
|
- lib/converters/json_compiler.rb
|
135
134
|
- lib/converters/json_to_csv.rb
|
136
135
|
- lib/converters/json_to_json.rb
|
137
136
|
- lib/km-export-processor.rb
|
137
|
+
- lib/parsers/alias_parser.rb
|
138
|
+
- lib/parsers/identity_parser.rb
|
138
139
|
- lib/reimporter.rb
|
139
140
|
- spec/features/alias_parser_spec.rb
|
140
141
|
- spec/features/json_to_csv_spec.rb
|