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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6505a5cf71ca84a7cef9f7584f1acc48af9199c184afe8bb9ba3cc84b4ff13e0
4
- data.tar.gz: 9a35db86cdf9275fac5091674d360337f8dc16a2284c0decbecda003f7803d00
3
+ metadata.gz: 8a0cf4ae9ce848baece6d6ae5468172dae15a3d9ce0f5c1f86f5857683bdd997
4
+ data.tar.gz: 0f4530883e71e3d11a8e87c0209dc205f71bcd87b34e7e56577c8fc5327b5da1
5
5
  SHA512:
6
- metadata.gz: c1d6d1be9948bf32493dee022278db5cbabf47b23c59bd488d019cdb8b986ef62ea44959d6442714fd76bd4a1c5e99d63462c78baf1ad7459fb1f7b9e912e168
7
- data.tar.gz: 37c66b7bc88beb96b05dc0962afcee34197f01bed68d98a0fe22954b27ccaf37f87988976d975ec19587ec5b32ce512fcd5c576c6f424add40a3262241264ac9
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
- def initialize(url)
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('test.csv', 'w') do |csv|
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', 'test'
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gemat
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
data/lib/gemat.rb CHANGED
@@ -4,6 +4,7 @@ require 'httpclient'
4
4
  require 'json'
5
5
 
6
6
  require_relative 'csv_formatter'
7
+ require_relative 'md_formatter'
7
8
  require_relative 'dsl'
8
9
  require_relative 'gemat/version'
9
10
  require_relative 'gemat/cli'
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
- p "start #{gem.name}..."
16
+ print "#{gem.name}..."
19
17
 
20
18
  client = HTTPClient.new
21
- request = client.get(rubygems_api(gem))
22
- response = JSON.parse(request.body)
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
@@ -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.0
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/main.rb
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