gemat 0.1.6 → 0.2.0
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/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:
|