myprecious_python 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 +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
|