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.
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