myprecious 0.0.6 → 0.0.7

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