gemat 0.1.6 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/formatter.rb +15 -0
- data/lib/gemat/cli.rb +7 -2
- data/lib/gemat/version.rb +1 -1
- data/lib/gemat.rb +1 -0
- data/lib/org_formatter.rb +17 -0
- data/lib/out_dsl.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63a846e7020b19c4f093cf7450fa5a3798f78b3b62ff30341e62c8aa58fcd746
|
4
|
+
data.tar.gz: 69dc2ce793be644524db9cd29b624792f0421bd9993dc641ae6022e97dff08fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf94214e16502f17e97e950c67ee359bca850d13c74487311e759915b4e8e1a52aeea96fd23c39b78a85664e9dfde739842d0573a4dfdeacafb39f6c1a2ec1f9
|
7
|
+
data.tar.gz: cbdd66759a759c7f8b236f0fd4f5c3b67abc47dea1a43696ff3607a31f289ad573d7717d96610ed9a7c21185cf7202188823d60267efd113a7f7bb7ba8607b5e
|
data/lib/formatter.rb
CHANGED
@@ -7,6 +7,7 @@ module Gemat
|
|
7
7
|
@columns = columns
|
8
8
|
@write_path = write_path
|
9
9
|
@rows = []
|
10
|
+
set_column_name_length
|
10
11
|
gen_rows
|
11
12
|
end
|
12
13
|
|
@@ -30,5 +31,19 @@ module Gemat
|
|
30
31
|
proc.call("\n")
|
31
32
|
end
|
32
33
|
end
|
34
|
+
|
35
|
+
# rubocop:disable Metrics/AbcSize
|
36
|
+
def set_column_name_length
|
37
|
+
rows = []
|
38
|
+
rows << @columns.map(&:column_name)
|
39
|
+
@gems.each do |gem|
|
40
|
+
rows << @columns.map { |dsl| dsl.call(gem) }
|
41
|
+
end
|
42
|
+
maxes = rows.transpose.map { |row| row.max { |a, b| a.to_s.length <=> b.to_s.length }.to_s.length }
|
43
|
+
maxes.zip(@columns) do |max, column|
|
44
|
+
column.max_length = max
|
45
|
+
end
|
46
|
+
end
|
47
|
+
# rubocop:enable Metrics/AbcSize
|
33
48
|
end
|
34
49
|
end
|
data/lib/gemat/cli.rb
CHANGED
@@ -2,18 +2,23 @@
|
|
2
2
|
|
3
3
|
module Gemat
|
4
4
|
class Cli < Thor
|
5
|
+
class_options input: :string, output: :string, columns: :array, all: :boolean
|
6
|
+
|
5
7
|
desc 'csv', 'export Gemfile to CSV file'
|
6
|
-
method_options input: :string, output: :string, columns: :array, all: :boolean
|
7
8
|
def csv
|
8
9
|
command(options, __method__)
|
9
10
|
end
|
10
11
|
|
11
12
|
desc 'md', 'export Gemfile to markdown'
|
12
|
-
method_options input: :string, output: :string, columns: :array, all: :boolean
|
13
13
|
def md
|
14
14
|
command(options, __method__)
|
15
15
|
end
|
16
16
|
|
17
|
+
desc 'org', 'export Gemfile to org'
|
18
|
+
def org
|
19
|
+
command(options, __method__)
|
20
|
+
end
|
21
|
+
|
17
22
|
no_tasks do
|
18
23
|
def command(options, method_name)
|
19
24
|
klass = "Gemat::#{method_name.capitalize}Formatter"
|
data/lib/gemat/version.rb
CHANGED
data/lib/gemat.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Gemat
|
4
|
+
class OrgFormatter < Formatter
|
5
|
+
# private
|
6
|
+
|
7
|
+
# rubocop:disable Metrics/AbcSize
|
8
|
+
def gen_rows
|
9
|
+
@rows << "| #{@columns.map { |column| column.column_name.ljust(column.max_length) }.join(' | ')} |"
|
10
|
+
@rows << "|#{@columns.map { |column| '-' * (column.max_length + 2) }.join('+')}|"
|
11
|
+
@gems.each do |gem|
|
12
|
+
@rows << "| #{@columns.map { |column| column.call(gem).to_s.ljust(column.max_length) }.join(' | ')} |"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
# rubocop:enable Metrics/AbcSize
|
16
|
+
end
|
17
|
+
end
|
data/lib/out_dsl.rb
CHANGED
@@ -37,7 +37,7 @@ module Gemat
|
|
37
37
|
GEM_SOURCES = [INDEX, REPO_URI].freeze
|
38
38
|
ALL_SOURCES = [].concat(GEM_SOURCES, RUBYGEMS_RESPONSE_SOURCES, GITHUB_RESPONSE_SOURCES).freeze
|
39
39
|
|
40
|
-
attr_accessor :column_name
|
40
|
+
attr_accessor :column_name, :max_length
|
41
41
|
|
42
42
|
def self.new_by_array(columns)
|
43
43
|
columns.map { |column| new(column) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kijima Daigo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|
@@ -70,6 +70,7 @@ files:
|
|
70
70
|
- lib/gemat/version.rb
|
71
71
|
- lib/in_dsl.rb
|
72
72
|
- lib/md_formatter.rb
|
73
|
+
- lib/org_formatter.rb
|
73
74
|
- lib/out_dsl.rb
|
74
75
|
homepage: https://github.com/kijimaD/gemat
|
75
76
|
licenses:
|