gemat 0.1.1 → 0.1.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/csv_formatter.rb +16 -10
- data/lib/gemat/cli.rb +2 -8
- data/lib/gemat/version.rb +1 -1
- data/lib/gemat.rb +10 -0
- data/lib/get_url.rb +11 -12
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39618b03f87eed4eb3200c82212940c320262f6518932a5df96973f10f204bb2
|
4
|
+
data.tar.gz: c14fe77e39bec43590dc0c00c8e444e1ff7f6fc97e3d1cb0c1fe009955c75533
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 379fbabf51a3abf620a46628501ec81596fcfcc93526a5b31657e4a0ffcfcfac468a27ff8e100b340f2781485b88fae8ee7030374985b82d7c2f1545100b1fdb
|
7
|
+
data.tar.gz: 83b49c68fead8652d7492380fa3ad56b65ea93b8c64de8e9d575a187f7454c5456acfd404c5c409b6ba1fa873088a212365a82208d1581d836620e03e68de1b8
|
data/lib/csv_formatter.rb
CHANGED
@@ -4,25 +4,31 @@ require 'csv'
|
|
4
4
|
|
5
5
|
module Gemat
|
6
6
|
class CsvFormatter
|
7
|
-
|
8
|
-
|
9
|
-
def initialize(url, output = DEFAULT_OUTPUT)
|
7
|
+
def initialize(url, output = nil)
|
10
8
|
@url = url
|
11
9
|
@output = output
|
10
|
+
@rows = []
|
11
|
+
gen_array
|
12
12
|
end
|
13
13
|
|
14
14
|
def to_csv
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
csv << [k, v]
|
15
|
+
if @output
|
16
|
+
CSV.open(@output, 'w') do |csv|
|
17
|
+
@rows.each { |row| csv << row }
|
19
18
|
end
|
19
|
+
else
|
20
|
+
print "\n\n"
|
21
|
+
@rows.each { |row| print row.to_csv }
|
20
22
|
end
|
21
|
-
print "\n\nexport to #{output_file} !"
|
22
23
|
end
|
23
24
|
|
24
|
-
|
25
|
-
|
25
|
+
private
|
26
|
+
|
27
|
+
def gen_array
|
28
|
+
@rows << ['gem', 'Repo URL']
|
29
|
+
@url.urls.each do |k, v|
|
30
|
+
@rows << [k, v]
|
31
|
+
end
|
26
32
|
end
|
27
33
|
end
|
28
34
|
end
|
data/lib/gemat/cli.rb
CHANGED
@@ -6,18 +6,12 @@ module Gemat
|
|
6
6
|
class Cli < Thor
|
7
7
|
desc 'csv', 'export Gemfile to CSV file'
|
8
8
|
def csv
|
9
|
-
|
10
|
-
url = Gemat::GetUrl.new(dsl)
|
11
|
-
url.run
|
12
|
-
Gemat::CsvFormatter.new(url).to_csv
|
9
|
+
Gemat.run { |url| CsvFormatter.new(url).to_csv }
|
13
10
|
end
|
14
11
|
|
15
12
|
desc 'md', 'export Gemfile to markdown'
|
16
13
|
def md
|
17
|
-
|
18
|
-
url = Gemat::GetUrl.new(dsl)
|
19
|
-
url.run
|
20
|
-
Gemat::MdFormatter.new(url).to_md
|
14
|
+
Gemat.run { |url| MdFormatter.new(url).to_md }
|
21
15
|
end
|
22
16
|
end
|
23
17
|
end
|
data/lib/gemat/version.rb
CHANGED
data/lib/gemat.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'httpclient'
|
4
4
|
require 'json'
|
5
|
+
require 'ruby-progressbar'
|
5
6
|
|
6
7
|
require_relative 'csv_formatter'
|
7
8
|
require_relative 'md_formatter'
|
@@ -12,4 +13,13 @@ require_relative 'get_url'
|
|
12
13
|
|
13
14
|
module Gemat
|
14
15
|
class Error < StandardError; end
|
16
|
+
|
17
|
+
class Gemat
|
18
|
+
def self.run(&block)
|
19
|
+
dsl = Dsl.new
|
20
|
+
url = GetUrl.new(dsl)
|
21
|
+
url.run
|
22
|
+
block.call(url)
|
23
|
+
end
|
24
|
+
end
|
15
25
|
end
|
data/lib/get_url.rb
CHANGED
@@ -9,11 +9,9 @@ module Gemat
|
|
9
9
|
|
10
10
|
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
11
11
|
def run
|
12
|
+
pb = ProgressBar.create(total: @dsl.dependencies.length)
|
12
13
|
@dsl.dependencies.each do |gem|
|
13
|
-
# break unless gem == @dsl.dependencies.first
|
14
|
-
|
15
14
|
sleep 0.1
|
16
|
-
print "#{gem.name}..."
|
17
15
|
|
18
16
|
client = HTTPClient.new
|
19
17
|
request = client.get(rubygems_api(gem))
|
@@ -25,22 +23,23 @@ module Gemat
|
|
25
23
|
end
|
26
24
|
# puts JSON.pretty_generate(response)
|
27
25
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
next if
|
26
|
+
match = github_url_match(response.dig('metadata', 'homepage_uri')) ||
|
27
|
+
github_url_match(response['homepage_uri']) ||
|
28
|
+
github_url_match(response['bug_tracker_uri']) ||
|
29
|
+
github_url_match(response['source_code_uri'])
|
30
|
+
next if match.nil?
|
33
31
|
|
34
|
-
user =
|
35
|
-
repo =
|
32
|
+
user = match[1]
|
33
|
+
repo = match[2]
|
36
34
|
gh_url = "https://github.com/#{user}/#{repo}"
|
37
35
|
@urls[gem.name] = gh_url
|
38
|
-
|
36
|
+
|
37
|
+
pb.increment
|
39
38
|
end
|
40
39
|
end
|
41
40
|
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
42
41
|
|
43
|
-
def
|
42
|
+
def github_url_match(url)
|
44
43
|
reg = %r{https://github.com/([\w\-]+)/([\w\-]+)}
|
45
44
|
reg.match(url)
|
46
45
|
end
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kijimaD
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-11-
|
11
|
+
date: 2021-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httpclient
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: ruby-progressbar
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: thor
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|