myprecious_python 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/myprecious_python.rb +111 -26
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 722a171922bd39cfe94617667e31e097ec2ab89c
|
4
|
+
data.tar.gz: af24770b49b79c778b5c763e4998dd288a8c427a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11d57153a3c1f4c848c5da1ccec416bb5331af6e661e294a6ca6dac979523806070291a37d4c59451e3862ee1763eeb6c73b8d0b4042b8ed3c2d0a6fba46ff09
|
7
|
+
data.tar.gz: 077ab75bf7116ec27aed97b0008f0bb0996eb8d592649f6d9971aba3dbd063d201352f53fa2106d4dde59de87c1c827ba42c95ef4d6ec37d5ce1e401d9516602
|
data/lib/myprecious_python.rb
CHANGED
@@ -5,15 +5,74 @@ require 'byebug'
|
|
5
5
|
|
6
6
|
class MyPreciousPython
|
7
7
|
def self.update
|
8
|
+
gem_lines = {}
|
9
|
+
gem_name_pos = 0
|
10
|
+
gem_version_pos = 1
|
11
|
+
gem_latest_pos = 2
|
12
|
+
gem_date_pos = 3
|
13
|
+
gem_age_pos = 4
|
14
|
+
gem_change_pos = 5
|
15
|
+
default_length = 6
|
16
|
+
if File.file?('dependency-tracking.md')
|
17
|
+
File.open("dependency-tracking.md", "r").each_with_index do |line, line_number|
|
18
|
+
#puts line + " dds " + line_number.to_s
|
19
|
+
word_array = line.split('|')
|
20
|
+
if line_number == 0
|
21
|
+
default_length = word_array.size
|
22
|
+
word_array.each_with_index do |word, index|
|
23
|
+
if word.strip == 'Dependency'
|
24
|
+
gem_name_pos = index
|
25
|
+
elsif word.strip == 'Our Version'
|
26
|
+
gem_version_pos = index
|
27
|
+
elsif word.strip == 'Latest Version'
|
28
|
+
gem_latest_pos = index
|
29
|
+
elsif word.strip == 'Date available'
|
30
|
+
gem_date_pos = index
|
31
|
+
elsif word.strip == 'Age (in days)'
|
32
|
+
gem_age_pos = index
|
33
|
+
elsif word.strip == 'Change Log'
|
34
|
+
gem_change_pos = index
|
35
|
+
end
|
36
|
+
end
|
37
|
+
elsif line_number > 1
|
38
|
+
gem_name_index = word_array[gem_name_pos].strip
|
39
|
+
#extract just the name of the gem from the first column
|
40
|
+
#since that column contains a markdown-formatted hyperlink
|
41
|
+
gem_name_index = gem_name_index[/\[(.*?)\]/,1]
|
42
|
+
gem_lines[gem_name_index] = line_number
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
#puts gem_lines
|
47
|
+
else
|
48
|
+
puts "creating the file"
|
49
|
+
File.open('dependency-tracking.md', 'w') { |write_file|
|
50
|
+
write_file.puts "Dependency | Our Version | Latest Version | Date available | Age (in days) | Change Log"
|
51
|
+
write_file.puts "--- | --- | --- | --- | --- | ---"
|
52
|
+
}
|
53
|
+
end
|
54
|
+
|
8
55
|
file = File.new("Packages", "r")
|
9
56
|
|
10
|
-
File.
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
57
|
+
final_write = File.readlines('dependency-tracking.md')
|
58
|
+
|
59
|
+
while (line = file.gets)
|
60
|
+
gem_line = line.strip
|
61
|
+
if !gem_line.start_with?('#') && !gem_line.start_with?("https://")
|
62
|
+
|
63
|
+
if gem_line.include? "=="
|
64
|
+
name = gem_line.split('==')[0]
|
65
|
+
current_version = gem_line.split('==')[1]
|
66
|
+
elsif gem_line.include? ">="
|
67
|
+
name = gem_line.split('>=')[0]
|
68
|
+
current_version = gem_line.split('>=')[1]
|
69
|
+
elsif gem_line.include? "<="
|
70
|
+
name = gem_line.split('<=')[0]
|
71
|
+
current_version = gem_line.split('<=')[1]
|
72
|
+
end
|
73
|
+
if !current_version.index(';').nil?
|
74
|
+
current_version = current_version.split(';')[0]
|
75
|
+
end
|
17
76
|
latest_version_string = %x(yolk -U #{name})
|
18
77
|
begin
|
19
78
|
latest_version = latest_version_string.split(' ')[2].split("(")[1].split(")")[0]
|
@@ -21,20 +80,28 @@ class MyPreciousPython
|
|
21
80
|
latest_version = current_version
|
22
81
|
end
|
23
82
|
scrape_url = "https://pypi.python.org/pypi/" + name.to_s + "/" + current_version.to_s
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
83
|
+
begin
|
84
|
+
doc = Nokogiri::HTML(open(scrape_url))
|
85
|
+
doc_data = doc.css('tr.odd td')
|
86
|
+
if !doc_data.nil?
|
87
|
+
current_build_date = doc_data[3].content
|
88
|
+
else
|
89
|
+
current_build_date = ""
|
90
|
+
end
|
91
|
+
rescue Exception => e
|
29
92
|
current_build_date = ""
|
30
93
|
end
|
31
|
-
|
32
|
-
scrape_url
|
94
|
+
puts name.to_s + " gathering info @" + scrape_url = "https://pypi.python.org/pypi/" + name.to_s + "/" + latest_version
|
95
|
+
puts scrape_url
|
33
96
|
doc = Nokogiri::HTML(open(scrape_url))
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
97
|
+
begin
|
98
|
+
doc_data = doc.css('tr.odd td')
|
99
|
+
if !doc_data.nil?
|
100
|
+
latest_build_date = doc_data[3].content
|
101
|
+
else
|
102
|
+
latest_build_date = ""
|
103
|
+
end
|
104
|
+
rescue Exception => e
|
38
105
|
latest_build_date = ""
|
39
106
|
end
|
40
107
|
|
@@ -50,15 +117,33 @@ class MyPreciousPython
|
|
50
117
|
homepage_uri = ""
|
51
118
|
end
|
52
119
|
|
53
|
-
|
120
|
+
begin
|
121
|
+
days_complete = Date.parse(latest_build_date) - Date.parse(current_build_date)
|
122
|
+
rescue Exception => e
|
123
|
+
days_complete = 0
|
124
|
+
end
|
125
|
+
|
126
|
+
if gem_lines[name].nil?
|
127
|
+
array_to_write = Array.new(default_length) { |i| "" }
|
128
|
+
else
|
129
|
+
array_to_write = final_write[gem_lines[name]].split('|')
|
130
|
+
end
|
131
|
+
array_to_write[gem_name_pos] = "[" + name + "]" + "(" + homepage_uri.to_s + ")"
|
132
|
+
array_to_write[gem_version_pos] = current_version.to_s
|
133
|
+
array_to_write[gem_latest_pos] = latest_version.to_s
|
134
|
+
array_to_write[gem_date_pos] = (latest_build_date).to_s
|
135
|
+
array_to_write[gem_age_pos] = days_complete.to_i.to_s
|
54
136
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
137
|
+
array_to_write[gem_change_pos] = documentation.to_s.to_s + "\n"
|
138
|
+
if !gem_lines[name].nil?
|
139
|
+
final_write[gem_lines[name]] = array_to_write.join("|")
|
140
|
+
else
|
141
|
+
final_write << array_to_write.join("|")
|
142
|
+
end
|
61
143
|
|
62
|
-
|
144
|
+
end
|
145
|
+
end
|
146
|
+
File.open('dependency-tracking.md', 'w') { |f| f.write(final_write.join) }
|
147
|
+
file.close
|
63
148
|
end
|
64
149
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myprecious_python
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Balki Kodarapu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple, markdown generated with information about your python dependencies
|
14
14
|
email: balki.kodarapu@gmail.com
|