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 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: