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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/myprecious_python.rb +111 -26
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dabe4f1c6e0f2fd5c9b5cff741aff4ebdcac5925
4
- data.tar.gz: 1b79e2c09cdbe659f5b032975a26adb66e06d833
3
+ metadata.gz: 722a171922bd39cfe94617667e31e097ec2ab89c
4
+ data.tar.gz: af24770b49b79c778b5c763e4998dd288a8c427a
5
5
  SHA512:
6
- metadata.gz: a564561bdf5642e30cade87c23cc8e0b160faa8d77f31c13e64295f8c2b8f2127d0befb3ed8116d8b67b5a4aa5db3f38d1ae453eb9631a33707acd179a49941a
7
- data.tar.gz: a6291666a94b1d8ed9463b46bfc9ed75a476606f369f013edaf4ae3267890f9e366838d114256c657d52d14d9d8e5ec2862e5a1c7ab6b91a08c2b77672562009
6
+ metadata.gz: 11d57153a3c1f4c848c5da1ccec416bb5331af6e661e294a6ca6dac979523806070291a37d4c59451e3862ee1763eeb6c73b8d0b4042b8ed3c2d0a6fba46ff09
7
+ data.tar.gz: 077ab75bf7116ec27aed97b0008f0bb0996eb8d592649f6d9971aba3dbd063d201352f53fa2106d4dde59de87c1c827ba42c95ef4d6ec37d5ce1e401d9516602
@@ -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.open('dependency-tracking.md', 'w') { |write_file|
11
- write_file.puts "dependency | Our Version | Latest Version | Date available | Age (in days) | Change Log"
12
- write_file.puts "--- | --- | --- | --- | --- | ---"
13
- while (line = file.gets)
14
- gem_line = line.strip
15
- name = gem_line.split('==')[0]
16
- current_version = gem_line.split('==')[1]
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
- doc = Nokogiri::HTML(open(scrape_url))
25
- doc_data = doc.css('tr.odd td')
26
- if !doc_data.nil?
27
- current_build_date = doc_data[3].content
28
- else
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 = "https://pypi.python.org/pypi/"+name+"/"+latest_version
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
- doc_data = doc.css('tr.odd td')
35
- if !doc_data.nil?
36
- latest_build_date = doc_data[3].content
37
- else
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
- days_complete = Date.parse(latest_build_date) - Date.parse(current_build_date)
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
- write_file.puts "[" + name + "]" + "(" + homepage_uri.to_s + ")" +
56
- "|" + current_version.to_s + "|" + latest_version.to_s + "|" +
57
- (latest_build_date).to_s + "|" + days_complete.to_i.to_s + "|" +
58
- documentation.to_s
59
- end
60
- file.close
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.1
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-24 00:00:00.000000000 Z
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