magic_mountain 0.0.1 → 0.0.2
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 +15 -0
- data/lib/magic_mountain/file_formater.rb +53 -28
- data/lib/magic_mountain/version.rb +1 -1
- metadata +5 -17
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ODkwYjVhNGJhOTc1YjdmZmY3NTNlNWEzNTJkM2Y2Mjk2ZDNkZTEyMQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
N2U5MjEzNjJmMjVmMzVhYzFlODYyZGU0ZTRiNDJiZGEwYTQ0MjYyYw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MzI1ZTFlNThiMmEyOGM3N2ExN2NiZDM0MmNlZjcwYmZmN2ZlMzg0MTYzYzhj
|
10
|
+
OTIyNjJiMjFhOGIyZTA3YzFkNjI5Y2E0ZmFhMzFhMDYwZjQzN2M5YjVmNmVm
|
11
|
+
MzMyMjI2NDgzNTc1NGE5MDVmYTQzMGEyNDQ4MmU5NGQyODE2NzI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Zjg0YjE0N2UzZmUxZDIzZGZkYzlkYjkxMzE0Njk5ZjNiMzlmYmIwMmZmODBl
|
14
|
+
ZTkwNjE1ZGI0MDU3MjE5YzllMGE1MzNhMjdjMjg2OTk2NjA3YzJmMjA5Y2Ux
|
15
|
+
YjgzNTI4MjUyYzZhNWUxYWYzNzMzN2JlZDU3Y2M4YmRjNGYxZGQ=
|
@@ -1,39 +1,64 @@
|
|
1
|
-
require 'csv'
|
2
1
|
require 'fileutils'
|
3
2
|
require 'keepass-password-generator'
|
4
3
|
|
5
4
|
module MagicMountain
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
class FileFormater
|
6
|
+
def self.generate_pass
|
7
|
+
KeePass::Password.generate('[A]{8}', :remove_lookalikes => true)
|
8
|
+
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
def self.is_cursed?(file_name)
|
11
|
+
begin
|
12
|
+
CSV.read(file_name)
|
13
|
+
rescue ArgumentError => e
|
14
|
+
return true if e.message == "invalid byte sequence in UTF-8"
|
15
|
+
puts e.inspect
|
16
|
+
return false
|
17
|
+
rescue Exception => e
|
18
|
+
puts e.inspect
|
19
|
+
return false
|
20
|
+
end
|
21
|
+
return false
|
22
|
+
end
|
15
23
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
formated_file.write(full_row) if fields.size + 2 == headers.size
|
25
|
-
end
|
26
|
-
end
|
27
|
-
raw_file.close
|
24
|
+
def self.curse_name?(file_name)
|
25
|
+
raw_file = File.open( file_name, "rb:UTF-16LE" )
|
26
|
+
max_num_of_fields = 0
|
27
|
+
while line = raw_file.gets
|
28
|
+
content = line.bytes.to_a.pack('c*').split("\r")
|
29
|
+
content.each do |line|
|
30
|
+
fields = line.split(",")
|
31
|
+
max_num_of_fields = fields.size if fields.size > max_num_of_fields
|
28
32
|
end
|
33
|
+
end
|
34
|
+
raw_file.close
|
35
|
+
case max_num_of_fields
|
36
|
+
when 14
|
37
|
+
"need_account"
|
38
|
+
when 17
|
39
|
+
"new_students"
|
40
|
+
else
|
41
|
+
max_num_of_fields
|
42
|
+
end
|
43
|
+
end
|
29
44
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
45
|
+
def self.break_curse(file_name, spell)
|
46
|
+
healed_file_name = File.join(File.dirname(file_name), '..', 'healed/' + File.basename(file_name))
|
47
|
+
healed_file = File.open( healed_file_name, 'w')
|
48
|
+
healed_file.write("#{spell.join(',')}\n")
|
49
|
+
raw_file = File.open( file_name, "rb:UTF-16LE" )
|
50
|
+
while line = raw_file.gets
|
51
|
+
#content = line.bytes.to_a.pack('c*').split("\r")
|
52
|
+
line = line.encode("UTF-8").gsub("\r","\n").gsub("\xEF\xBB\xBF".force_encoding("UTF-8"), '')
|
53
|
+
content = line.split("\n")
|
54
|
+
content.each do |line|
|
55
|
+
fields = line.split(",")
|
56
|
+
full_row = "#{line},#{generate_pass},#{generate_pass}\n"
|
57
|
+
healed_file.write(full_row) if fields.size + 2 == spell.size and fields[0].gsub("\"","").to_i > 0
|
37
58
|
end
|
59
|
+
end
|
60
|
+
raw_file.close
|
38
61
|
end
|
62
|
+
|
63
|
+
end
|
39
64
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magic_mountain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mauro Morales
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: keepass-password-generator
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -63,33 +58,26 @@ files:
|
|
63
58
|
- spec/magic_mountain_spec.rb
|
64
59
|
homepage: ''
|
65
60
|
licenses: []
|
61
|
+
metadata: {}
|
66
62
|
post_install_message:
|
67
63
|
rdoc_options: []
|
68
64
|
require_paths:
|
69
65
|
- lib
|
70
66
|
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
67
|
requirements:
|
73
68
|
- - ! '>='
|
74
69
|
- !ruby/object:Gem::Version
|
75
70
|
version: '0'
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
hash: 1968793947114160041
|
79
71
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
-
none: false
|
81
72
|
requirements:
|
82
73
|
- - ! '>='
|
83
74
|
- !ruby/object:Gem::Version
|
84
75
|
version: '0'
|
85
|
-
segments:
|
86
|
-
- 0
|
87
|
-
hash: 1968793947114160041
|
88
76
|
requirements: []
|
89
77
|
rubyforge_project:
|
90
|
-
rubygems_version:
|
78
|
+
rubygems_version: 2.0.3
|
91
79
|
signing_key:
|
92
|
-
specification_version:
|
80
|
+
specification_version: 4
|
93
81
|
summary: Convert Magic Mountain exported files to propper CSV
|
94
82
|
test_files:
|
95
83
|
- spec/magic_mountain_spec.rb
|