myprecious 0.0.6 → 0.0.7

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 +5 -5
  2. data/lib/myprecious.rb +57 -47
  3. metadata +9 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 12b4da734191be4996d96acb980f11dc9b902ee3
4
- data.tar.gz: 10478f19d0e5d456116fa350a8bf5223b3cbe3a0
2
+ SHA256:
3
+ metadata.gz: 893fc5a6cb5c046d8736086691de01186b3b85ed840d140b48ac397ddcad9659
4
+ data.tar.gz: 2b3c8e647ec5f964c62df80f7d3ea0de13cbbddcfc011de1ae584dd61f004121
5
5
  SHA512:
6
- metadata.gz: c59320ef35f3d13c8b95fdde15bac847b457852388d47c91a8efc12b4a1e4c2dea44e009cd81d22c67f06b690b3ee65445cb325d7211b5f3a97c8ad2098c39b0
7
- data.tar.gz: f76d27d123f4a304c30770444e605812385a95080d017da8f726c3b5826f13c274fca4a3d71527bd3be477bbe1bd1bfd8ef98afbe617e96e82a525670b6520b7
6
+ metadata.gz: 4bc15c82107084497d9e309e01cc0a420db698765a7c659060efc3d9af75bf8c5971cc545eeb870a1f48bfddcbd10c36a5952c2015db2601795134b9d90ad5a3
7
+ data.tar.gz: 165f2675864eac45601e9d526b2e581facda1bc4ecc318f31b100455c8eda06e56d3d22486a1f2149583bc0b0e39b845c2b47e76fb5d7f098eff4e136f0a84c1
data/lib/myprecious.rb CHANGED
@@ -1,8 +1,12 @@
1
1
  require 'gems'
2
2
  require 'date'
3
+ require 'git'
3
4
 
4
5
  class MyPrecious
5
6
  def self.update
7
+ g = Git.open(Dir.pwd)
8
+ repo_name = g.repo.path.split(".git")[0].split("/").last
9
+ repo_name = repo_name + "-dependency-tracking"
6
10
  gem_lines = {}
7
11
  gem_name_pos = 0
8
12
  gem_version_pos = 1
@@ -12,11 +16,12 @@ class MyPrecious
12
16
  gem_license_pos = 5
13
17
  gem_change_pos = 6
14
18
  default_length = 7
15
- if File.file?('myprecious.md')
16
- File.open("myprecious.md", "r").each_with_index do |line, line_number|
19
+ already_fetched_gems = {}
20
+ if File.file?(repo_name+'.md')
21
+ File.open(repo_name+".md", "r").each_with_index do |line, line_number|
17
22
  #puts line + " dds " + line_number.to_s
18
23
  word_array = line.split('|')
19
- if line_number == 0
24
+ if line_number == 1
20
25
  default_length = word_array.size
21
26
  word_array.each_with_index do |word, index|
22
27
  if word.strip == 'Gem'
@@ -28,25 +33,26 @@ class MyPrecious
28
33
  elsif word.strip == 'Date available'
29
34
  gem_date_pos = index
30
35
  elsif word.strip == 'Age (in days)'
31
- gem_age_pos = index
36
+ gem_age_pos = index
32
37
  elsif word.strip == 'License Type'
33
- gem_change_pos = index
38
+ gem_change_pos = index
34
39
  elsif word.strip == 'Change Log'
35
40
  gem_change_pos = index
36
41
  end
37
42
  end
38
- elsif line_number > 1
43
+ elsif line_number > 2
39
44
  gem_name_index = word_array[gem_name_pos].strip
40
45
  #extract just the name of the gem from the first column
41
- #since that column contains a markdown-formatted hyperlink
46
+ #since that column contains a markdown-formatted hyperlink
42
47
  gem_name_index = gem_name_index[/\[(.*?)\]/,1]
43
48
  gem_lines[gem_name_index] = line_number
44
49
  end
45
-
50
+
46
51
  end
47
52
  #puts gem_lines
48
53
  else
49
- File.open('myprecious.md', 'w') { |write_file|
54
+ File.open(repo_name+'.md', 'w') { |write_file|
55
+ write_file.puts "Last updated:" + Date.today.to_s + "; Use for directional purposes only, this data is not real time and might be slightly inaccurate" + "\n\n"
50
56
  write_file.puts "Gem | Our Version | Latest Version | Date available | Age (in days) | License Type | Change Log"
51
57
  write_file.puts "--- | --- | --- | --- | --- | --- | ---"
52
58
  }
@@ -54,58 +60,62 @@ class MyPrecious
54
60
 
55
61
  file = File.new("Gemfile", "r")
56
62
 
57
- final_write = File.readlines('myprecious.md')
63
+ final_write = File.readlines(repo_name+'.md')
58
64
 
59
65
  while (line = file.gets)
60
66
  gem_line = line.strip
61
67
  if (gem_line.include? 'gem') && !gem_line.start_with?('#') && !gem_line.start_with?('source')
68
+ name = gem_line.split(' ')[1].split(',')[0].tr(" '\"", "")
62
69
  begin
63
- name = gem_line.split(' ')[1].split(',')[0].tr(" '\"", "")
64
- a = require name
65
- if a
66
- current_version = Gem::Specification.find_all_by_name(name).max.version
67
-
68
- gems_info = Gems.versions name
69
- gems_latest_info = Gems.info name
70
- latest_build = ''
71
- gems_info.each do |gem_info|
72
- if gem_info["number"].to_s == gems_latest_info["version"].to_s
73
- latest_build = Date.parse gem_info["built_at"]
74
- end
75
- if gem_info["number"].to_s == current_version.to_s
76
- current_build = Date.parse gem_info["built_at"]
70
+ puts name + " is being fetched, and processed"
71
+ gems_latest_info = Gems.info name
72
+ current_version = Gem::Specification.find_all_by_name(name).max ? Gem::Specification.find_all_by_name(name).max.version : gems_latest_info["version"]
73
+
74
+ gems_info = Gems.versions name
75
+ latest_build = ''
76
+ gems_info.each do |gem_info|
77
+ if gem_info["number"].to_s == gems_latest_info["version"].to_s
78
+ latest_build = Date.parse gem_info["built_at"]
79
+ end
80
+ if gem_info["number"].to_s == current_version.to_s && !already_fetched_gems[name]
81
+ already_fetched_gems[name] = true
82
+ current_build = Date.parse gem_info["built_at"]
77
83
 
78
- days_complete = latest_build - current_build
79
- if gem_lines[name].nil?
80
- array_to_write = Array.new(default_length) { |i| "" }
81
- else
82
- array_to_write = final_write[gem_lines[name]].split('|')
83
- end
84
- array_to_write[gem_name_pos] = "[" + name + "]" + "(" + gems_latest_info["homepage_uri"].to_s + ")"
85
- array_to_write[gem_version_pos] = current_version.to_s
86
- array_to_write[gem_latest_pos] = gems_latest_info["version"].to_s
87
- array_to_write[gem_date_pos] = (latest_build).to_s
88
- array_to_write[gem_age_pos] = days_complete.to_i.to_s
89
- if !gem_info["licenses"].nil?
90
- array_to_write[gem_license_pos] = gem_info["licenses"][0]
91
- else
92
- array_to_write[gem_license_pos] = "N/A"
93
- end
94
- array_to_write[gem_change_pos] = gems_latest_info["changelog_uri"].to_s + "\n"
95
- if !gem_lines[name].nil?
96
- final_write[gem_lines[name]] = array_to_write.join("|")
97
- else
98
- final_write << array_to_write.join("|")
99
- end
84
+ days_complete = latest_build - current_build
85
+ #puts name
86
+ #puts gem_lines
87
+ if gem_lines[name].nil?
88
+ array_to_write = Array.new(default_length) { |i| "" }
89
+ else
90
+ array_to_write = final_write[gem_lines[name]].split('|')
91
+ end
92
+ array_to_write[gem_name_pos] = "[" + name + "]" + "(" + gems_latest_info["homepage_uri"].to_s + ")"
93
+ array_to_write[gem_version_pos] = current_version.to_s
94
+ array_to_write[gem_latest_pos] = gems_latest_info["version"].to_s
95
+ array_to_write[gem_date_pos] = (latest_build).to_s
96
+ array_to_write[gem_age_pos] = days_complete.to_i.to_s
97
+ if !gem_info["licenses"].nil?
98
+ array_to_write[gem_license_pos] = gem_info["licenses"][0]
99
+ else
100
+ array_to_write[gem_license_pos] = "N/A"
101
+ end
102
+ array_to_write[gem_change_pos] = gems_latest_info["changelog_uri"].to_s + "\n"
103
+ if !gem_lines[name].nil?
104
+ final_write[gem_lines[name]] = array_to_write.join("|")
105
+ else
106
+ final_write << array_to_write.join("|")
100
107
  end
101
108
  end
102
109
  end
103
110
  rescue Exception => e
104
111
  puts e
112
+ puts name
105
113
  end
106
114
  end
107
115
  end
108
- File.open('myprecious.md', 'w') { |f| f.write(final_write.join) }
116
+ File.open(repo_name+'.md', 'w') { |f| f.write(final_write.join) }
109
117
  file.close
110
118
  end
111
119
  end
120
+
121
+ MyPrecious.update
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myprecious
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
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-26 00:00:00.000000000 Z
11
+ date: 2019-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gems
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: 1.0.0
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '1.0'
30
27
  - - ">="
31
28
  - !ruby/object:Gem::Version
32
29
  version: 1.0.0
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
33
  description: A simple, markdown generated with information about your gems
34
34
  email: balki.kodarapu@gmail.com
35
35
  executables:
@@ -58,8 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubyforge_project:
62
- rubygems_version: 2.4.8
61
+ rubygems_version: 3.0.3
63
62
  signing_key:
64
63
  specification_version: 4
65
64
  summary: Your precious dependencies!