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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 422b5c9ef99e71ec0193e7748adff36049c26b88478cdc494c3f5178720f5e70
4
- data.tar.gz: 386d6d07fb0e91e762f1846cc2395a77748351579e2fa0f277e2da5e115af049
3
+ metadata.gz: 63a846e7020b19c4f093cf7450fa5a3798f78b3b62ff30341e62c8aa58fcd746
4
+ data.tar.gz: 69dc2ce793be644524db9cd29b624792f0421bd9993dc641ae6022e97dff08fa
5
5
  SHA512:
6
- metadata.gz: e79ee792b7f9e98ef3bb7d39f3865410aa3958d2e8d6a394914bcac012db41ff641df84e73c1fcc62e050dc9363a810083792a55346c24da073490d2c3f9d809
7
- data.tar.gz: febf34bccfadc363376033573ce0fbd1bf43ffae2bcdbe83d9cfc7ccdd112976b81c869dbe3b8407d1f6d9988455296caf483e9dc8d35b95de08333c4323a15b
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gemat
4
- VERSION = '0.1.6'
4
+ VERSION = '0.2.0'
5
5
  end
data/lib/gemat.rb CHANGED
@@ -13,6 +13,7 @@ require_relative 'gem'
13
13
  require_relative 'formatter'
14
14
  require_relative 'csv_formatter'
15
15
  require_relative 'md_formatter'
16
+ require_relative 'org_formatter'
16
17
  require_relative 'gemat/version'
17
18
  require_relative 'gemat/cli'
18
19
 
@@ -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.1.6
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-29 00:00:00.000000000 Z
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: