gemat 0.1.0 → 0.1.1
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 +11 -2
- data/lib/gemat/cli.rb +9 -1
- data/lib/gemat/version.rb +1 -1
- data/lib/gemat.rb +1 -0
- data/lib/get_url.rb +13 -5
- data/lib/md_formatter.rb +20 -0
- metadata +2 -2
- data/lib/main.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a0cf4ae9ce848baece6d6ae5468172dae15a3d9ce0f5c1f86f5857683bdd997
|
4
|
+
data.tar.gz: 0f4530883e71e3d11a8e87c0209dc205f71bcd87b34e7e56577c8fc5327b5da1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6bd9726fed2ebd7eedb7a2abe9bb24e24ef2dd2da6d5caf4e097e9099f44becf881c283a075088be4d46f3ad414cd2d7eb46f83bd5794c1f8f0f7fa6175b7ea
|
7
|
+
data.tar.gz: dc337262705b8c00c0ec80055332a81650a35057eba95cf1a0359d526785dcd803fdf3311e1284d3f5272ae8990fd9d213904e870cabc1e94ee02f1c132e671c
|
data/lib/csv_formatter.rb
CHANGED
@@ -4,16 +4,25 @@ require 'csv'
|
|
4
4
|
|
5
5
|
module Gemat
|
6
6
|
class CsvFormatter
|
7
|
-
|
7
|
+
DEFAULT_OUTPUT = 'gemat'
|
8
|
+
|
9
|
+
def initialize(url, output = DEFAULT_OUTPUT)
|
8
10
|
@url = url
|
11
|
+
@output = output
|
9
12
|
end
|
10
13
|
|
11
14
|
def to_csv
|
12
|
-
CSV.open(
|
15
|
+
CSV.open(output_file, 'w') do |csv|
|
16
|
+
csv << ['gem', 'Repo URL']
|
13
17
|
@url.urls.each do |k, v|
|
14
18
|
csv << [k, v]
|
15
19
|
end
|
16
20
|
end
|
21
|
+
print "\n\nexport to #{output_file} !"
|
22
|
+
end
|
23
|
+
|
24
|
+
def output_file
|
25
|
+
"#{@output}.csv"
|
17
26
|
end
|
18
27
|
end
|
19
28
|
end
|
data/lib/gemat/cli.rb
CHANGED
@@ -4,12 +4,20 @@ require 'thor'
|
|
4
4
|
|
5
5
|
module Gemat
|
6
6
|
class Cli < Thor
|
7
|
-
desc 'export Gemfile to CSV
|
7
|
+
desc 'csv', 'export Gemfile to CSV file'
|
8
8
|
def csv
|
9
9
|
dsl = Gemat::Dsl.new
|
10
10
|
url = Gemat::GetUrl.new(dsl)
|
11
11
|
url.run
|
12
12
|
Gemat::CsvFormatter.new(url).to_csv
|
13
13
|
end
|
14
|
+
|
15
|
+
desc 'md', 'export Gemfile to markdown'
|
16
|
+
def md
|
17
|
+
dsl = Gemat::Dsl.new
|
18
|
+
url = Gemat::GetUrl.new(dsl)
|
19
|
+
url.run
|
20
|
+
Gemat::MdFormatter.new(url).to_md
|
21
|
+
end
|
14
22
|
end
|
15
23
|
end
|
data/lib/gemat/version.rb
CHANGED
data/lib/gemat.rb
CHANGED
data/lib/get_url.rb
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
module Gemat
|
4
4
|
class GetUrl
|
5
|
-
attr_accessor :urls
|
6
|
-
|
7
5
|
def initialize(dsl)
|
8
6
|
@dsl = dsl
|
9
7
|
@urls = {}
|
@@ -15,11 +13,16 @@ module Gemat
|
|
15
13
|
# break unless gem == @dsl.dependencies.first
|
16
14
|
|
17
15
|
sleep 0.1
|
18
|
-
|
16
|
+
print "#{gem.name}..."
|
19
17
|
|
20
18
|
client = HTTPClient.new
|
21
|
-
request =
|
22
|
-
|
19
|
+
request = client.get(rubygems_api(gem))
|
20
|
+
begin
|
21
|
+
response = JSON.parse(request.body)
|
22
|
+
rescue JSON::ParserError
|
23
|
+
print "not found\n"
|
24
|
+
next
|
25
|
+
end
|
23
26
|
# puts JSON.pretty_generate(response)
|
24
27
|
|
25
28
|
github_gem = github_url(response.dig('metadata', 'homepage_uri')) ||
|
@@ -32,6 +35,7 @@ module Gemat
|
|
32
35
|
repo = github_gem[2]
|
33
36
|
gh_url = "https://github.com/#{user}/#{repo}"
|
34
37
|
@urls[gem.name] = gh_url
|
38
|
+
print "done\n"
|
35
39
|
end
|
36
40
|
end
|
37
41
|
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
@@ -44,5 +48,9 @@ module Gemat
|
|
44
48
|
def rubygems_api(gem)
|
45
49
|
"https://rubygems.org/api/v1/gems/#{gem.name}.json"
|
46
50
|
end
|
51
|
+
|
52
|
+
def urls
|
53
|
+
@urls.sort.to_h
|
54
|
+
end
|
47
55
|
end
|
48
56
|
end
|
data/lib/md_formatter.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'logger'
|
4
|
+
|
5
|
+
module Gemat
|
6
|
+
class MdFormatter
|
7
|
+
def initialize(url)
|
8
|
+
@url = url
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_md
|
12
|
+
print "\n\n"
|
13
|
+
puts '| gem | Repo URL |'
|
14
|
+
puts '| ---- | ---- |'
|
15
|
+
@url.urls.each do |k, v|
|
16
|
+
puts "| #{k} | #{v} |"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kijimaD
|
@@ -39,7 +39,7 @@ files:
|
|
39
39
|
- lib/gemat/cli.rb
|
40
40
|
- lib/gemat/version.rb
|
41
41
|
- lib/get_url.rb
|
42
|
-
- lib/
|
42
|
+
- lib/md_formatter.rb
|
43
43
|
homepage: https://github.com/kijimaD/gemat
|
44
44
|
licenses:
|
45
45
|
- GPL3
|
data/lib/main.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'httpclient'
|
4
|
-
require 'json'
|
5
|
-
|
6
|
-
require_relative 'dsl'
|
7
|
-
require_relative 'get_url'
|
8
|
-
require_relative 'csv_formatter'
|
9
|
-
|
10
|
-
def main
|
11
|
-
dsl = Gemat::Dsl.new
|
12
|
-
url = Gemat::GetUrl.new(dsl)
|
13
|
-
url.run
|
14
|
-
Gemat::CsvFormatter.new(url).to_csv
|
15
|
-
end
|
16
|
-
|
17
|
-
main
|