tabled 0.0.3 → 0.0.5

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: 4e5d0c20e1b0c91a2798fe10ae7f2d5da0de98c01bfff7d8af7e2cdc1e5673a2
4
- data.tar.gz: fa10431595f5bb1dbcd57867cb6e8993424445b30c9d5939e9be523fec215f50
3
+ metadata.gz: 6975cba3c924564332a058b0780101a7e469e25ca6143d9743bd19ea3e45c0c5
4
+ data.tar.gz: d3de8444e683807a3490f2c7fa34e5c0c3538054923036d2981659074e0bc31e
5
5
  SHA512:
6
- metadata.gz: 31f4a75497f308e805bfe282534bdd04fe37d2ddabb299eda69c1170fd353145b2b716d1991db5bcd173703ba4492e292098de242abea4914763421901bb1e50
7
- data.tar.gz: cc8aee4ae5f3b0e3bfdba62e57e05d03f3fe6381093f370dba6187f0c85811e3a75a5f2363522fbc97f12b5971ac77658bafc402f05205ff2e7175021da9feda
6
+ metadata.gz: d161770b55f054132a064529a4eb4d420fb9172b8ccff788cba15b337f4110c22adde0ea2a26d36d05bacf99795de62a1e77bebf9b75919868cb04c77f83c194
7
+ data.tar.gz: 2481ed7691562b8f78a17a8cfa5de798787a76385f64d55d545574639a514af4e5ba7ee040893ea3a3b721f57547d2b9b196efec4c044f4edbe61a11672c0371
@@ -17,31 +17,32 @@ permissions:
17
17
  contents: read
18
18
 
19
19
  jobs:
20
+
20
21
  linters:
21
- runs-on: ubuntu-latest
22
22
  strategy:
23
23
  matrix:
24
24
  ruby-version: ['3.0']
25
+ runs-on: ubuntu-latest
25
26
  steps:
26
27
  - uses: actions/checkout@v3
27
28
  - name: Set up Ruby
28
- uses: ruby/setup-ruby@2b019609e2b0f1ea1a2bc8ca11cb82ab46ada124
29
+ uses: ruby/setup-ruby@v1
29
30
  with:
30
31
  ruby-version: ${{ matrix.ruby-version }}
31
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
32
- - name: Run tests
33
- run: bundle exec rubocop
32
+ bundler-cache: true
33
+
34
34
  test:
35
- runs-on: ubuntu-latest
35
+ runs-on: ${{ matrix.os }}
36
36
  strategy:
37
37
  matrix:
38
+ os: [ubuntu-latest, macos-latest]
38
39
  ruby-version: ['2.6', '2.7', '3.0']
39
40
  steps:
40
41
  - uses: actions/checkout@v3
41
42
  - name: Set up Ruby
42
- uses: ruby/setup-ruby@2b019609e2b0f1ea1a2bc8ca11cb82ab46ada124
43
+ uses: ruby/setup-ruby@v1
43
44
  with:
44
45
  ruby-version: ${{ matrix.ruby-version }}
45
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
46
+ bundler-cache: true
46
47
  - name: Run tests
47
48
  run: bundle exec rspec
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .byebug_history
2
2
  coverage
3
- .idea
3
+ .idea
4
+ *.gem
data/.rspec CHANGED
@@ -1 +1,2 @@
1
- --format documentation
1
+ --format documentation
2
+ --require spec_helper
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config --auto-gen-only-exclude`
3
- # on 2022-05-23 07:45:44 UTC using RuboCop version 1.29.1.
3
+ # on 2022-06-24 15:05:43 UTC using RuboCop version 1.29.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -29,14 +29,13 @@ Metrics/BlockLength:
29
29
  - 'spec/framed/tabled_spec.rb'
30
30
  - 'spec/non_framed/tabled_spec.rb'
31
31
 
32
- # Offense count: 2
32
+ # Offense count: 1
33
33
  # Configuration parameters: IgnoredMethods, Max.
34
34
  Metrics/CyclomaticComplexity:
35
35
  Exclude:
36
- - 'lib/content_shaper.rb'
37
36
  - 'lib/helpers.rb'
38
37
 
39
- # Offense count: 4
38
+ # Offense count: 5
40
39
  # Configuration parameters: CountComments, Max, CountAsOne, ExcludedMethods, IgnoredMethods.
41
40
  Metrics/MethodLength:
42
41
  Exclude:
@@ -44,11 +43,10 @@ Metrics/MethodLength:
44
43
  - 'lib/helpers.rb'
45
44
  - 'spec/factories/factory_data.rb'
46
45
 
47
- # Offense count: 2
46
+ # Offense count: 1
48
47
  # Configuration parameters: IgnoredMethods, Max.
49
48
  Metrics/PerceivedComplexity:
50
49
  Exclude:
51
- - 'lib/content_shaper.rb'
52
50
  - 'lib/helpers.rb'
53
51
 
54
52
  # Offense count: 1
@@ -57,13 +55,15 @@ RSpec/ExampleLength:
57
55
  Exclude:
58
56
  - 'spec/framed/tabled_spec.rb'
59
57
 
60
- # Offense count: 6
58
+ # Offense count: 9
61
59
  # Configuration parameters: AllowedConstants.
62
60
  Style/Documentation:
63
61
  Exclude:
64
62
  - 'spec/**/*'
65
63
  - 'test/**/*'
64
+ - 'bin/tabled'
66
65
  - 'lib/content_shaper.rb'
67
66
  - 'lib/helpers.rb'
67
+ - 'lib/parsers/csv_parser.rb'
68
68
  - 'lib/tabled.rb'
69
69
  - 'lib/template.rb'
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ### Version 0.0.5 (September 04, 2023)
2
+ 1. (Bug fix) Unnecessary dev gem reference removed
3
+
1
4
  ### Version 0.0.3 (May 23, 2022)
2
5
  1. Printing titles of columns
3
6
  2. Fixing layout (amount of spaces for row separators)
@@ -8,4 +11,4 @@
8
11
  3. Adding row separator
9
12
 
10
13
  ### Version 0.0.1 (May 11, 2022)
11
- 1. Basic rendering tables to console
14
+ 1. Basic rendering tables to console
data/Gemfile.lock CHANGED
@@ -1,70 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tabled (0.0.2)
4
+ tabled (0.0.5)
5
+ dry-cli
5
6
 
6
7
  GEM
7
8
  remote: http://rubygems.org/
8
9
  specs:
9
- addressable (2.4.0)
10
10
  ast (2.4.2)
11
- builder (3.2.4)
12
- byebug (11.1.3)
13
- descendants_tracker (0.0.4)
14
- thread_safe (~> 0.3, >= 0.3.1)
15
11
  diff-lcs (1.5.0)
16
12
  docile (1.4.0)
17
- faraday (0.9.2)
18
- multipart-post (>= 1.2, < 3)
19
- git (1.11.0)
20
- rchardet (~> 1.8)
21
- github_api (0.16.0)
22
- addressable (~> 2.4.0)
23
- descendants_tracker (~> 0.0.4)
24
- faraday (~> 0.8, < 0.10)
25
- hashie (>= 3.4)
26
- mime-types (>= 1.16, < 3.0)
27
- oauth2 (~> 1.0)
28
- hashie (5.0.0)
29
- highline (2.0.3)
30
- jeweler (2.3.9)
31
- builder
32
- bundler
33
- git (>= 1.2.5)
34
- github_api (~> 0.16.0)
35
- highline (>= 1.6.15)
36
- nokogiri (>= 1.5.10)
37
- psych
38
- rake
39
- rdoc
40
- semver2
41
- jwt (2.3.0)
42
- mime-types (2.99.3)
43
- mini_portile2 (2.8.0)
44
- multi_json (1.15.0)
45
- multi_xml (0.6.0)
46
- multipart-post (2.1.1)
47
- nokogiri (1.13.6)
48
- mini_portile2 (~> 2.8.0)
49
- racc (~> 1.4)
50
- oauth2 (1.4.8)
51
- faraday (>= 0.8, < 3.0)
52
- jwt (>= 1.0, < 3.0)
53
- multi_json (~> 1.3)
54
- multi_xml (~> 0.5)
55
- rack (>= 1.2, < 3)
13
+ dry-cli (1.0.0)
56
14
  parallel (1.22.1)
57
15
  parser (3.1.2.0)
58
16
  ast (~> 2.4.1)
59
- psych (4.0.4)
60
- stringio
61
- racc (1.6.0)
62
- rack (2.2.3)
63
17
  rainbow (3.1.1)
64
- rake (13.0.6)
65
- rchardet (1.8.0)
66
- rdoc (6.4.0)
67
- psych (>= 4.0.0)
68
18
  regexp_parser (2.4.0)
69
19
  rexml (3.2.5)
70
20
  rspec (3.11.0)
@@ -94,23 +44,18 @@ GEM
94
44
  rubocop-rspec (2.10.0)
95
45
  rubocop (~> 1.19)
96
46
  ruby-progressbar (1.11.0)
97
- semver2 (3.4.2)
98
47
  simplecov (0.21.2)
99
48
  docile (~> 1.1)
100
49
  simplecov-html (~> 0.11)
101
50
  simplecov_json_formatter (~> 0.1)
102
51
  simplecov-html (0.12.3)
103
52
  simplecov_json_formatter (0.1.4)
104
- stringio (3.0.2)
105
- thread_safe (0.3.6)
106
53
  unicode-display_width (2.1.0)
107
54
 
108
55
  PLATFORMS
109
56
  ruby
110
57
 
111
58
  DEPENDENCIES
112
- byebug
113
- jeweler
114
59
  rspec
115
60
  rubocop
116
61
  rubocop-rspec
@@ -118,4 +63,4 @@ DEPENDENCIES
118
63
  tabled!
119
64
 
120
65
  BUNDLED WITH
121
- 2.2.3
66
+ 2.3.26
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  [![Gem Version](https://badge.fury.io/rb/tabled.svg)](https://badge.fury.io/rb/tabled) ![CI is pasing for ruby 2.6 - 3.0](https://github.com/rukomoynikov/tabled/actions/workflows/linters.yml/badge.svg) ![Downloads](https://badgen.net/rubygems/dt/tabled)
2
3
 
3
4
 
@@ -58,6 +59,12 @@ Result
58
59
  ----------------------------------------------------------------
59
60
  ```
60
61
 
62
+ # Printing CSV files to console
63
+ As a part of the gem `tabled` binary is included. So, you can basicaly run it like:
64
+ ```shell
65
+ tabled print path_to_csv_file
66
+ ```
67
+
61
68
  # Contributing
62
69
  1. Fork it ( http://github.com/rukomoynikov/tabled/fork )
63
70
  2. Create your feature branch (git checkout -b my-new-feature)
data/bin/tabled ADDED
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require_relative '../lib/tabled'
5
+ require_relative '../lib/parsers/csv_parser'
6
+ require 'dry/cli'
7
+ require 'pathname'
8
+
9
+ module TabledCli
10
+ module CLI
11
+ module Commands
12
+ extend Dry::CLI::Registry
13
+
14
+ class Print < Dry::CLI::Command
15
+ desc 'Printing CSV to console'
16
+
17
+ argument :input, desc: 'Input file to print'
18
+
19
+ def call(input: nil, **)
20
+ return p 'File must be provided' if input.nil?
21
+ return p 'File doesn\'t exist' unless File.exist?(Pathname.new(input))
22
+
23
+ Tabled.new(Tabled::CSVParser.parse(Pathname.new(input))).print_to_console
24
+ end
25
+ end
26
+
27
+ register 'print', Print, aliases: ['p', '-p', '--print']
28
+ end
29
+ end
30
+ end
31
+
32
+ Dry::CLI.new(TabledCli::CLI::Commands).call
@@ -41,15 +41,16 @@ class Tabled
41
41
  end
42
42
 
43
43
  def add_left_and_right_borders(content)
44
+ return content unless options[:framed]
45
+
44
46
  content.each_with_object([]) do |row, enumerator|
45
47
  # For a row separator all symbols are the same
46
48
  row_is_separator = row.chars.uniq.size == 1
47
- enumerator << if row_is_separator && !options[:row_separator].nil? && options[:framed]
49
+
50
+ enumerator << if row_is_separator && !options[:row_separator].nil?
48
51
  (options[:row_separator] * 2) + row + options[:row_separator]
49
- elsif !options[:framed]
50
- row
51
52
  else
52
- ('| ' if options[:framed]) + row + ('|' if options[:framed])
53
+ "| #{row}|"
53
54
  end
54
55
  end
55
56
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'csv'
4
+ class Tabled
5
+ class CSVParser
6
+ def self.parse(file_path)
7
+ ::CSV.read(file_path)
8
+ end
9
+ end
10
+ end
data/lib/tabled.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'byebug'
4
3
  require_relative './template'
5
4
  require_relative './helpers'
6
5
  require_relative './content_shaper'
data/tabled.gemspec CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'tabled'
5
- s.version = '0.0.3'
5
+ s.version = '0.0.5'
6
6
  s.summary = 'Library for rendering pretty tables in console'
7
- s.description = "Library can be used to render your data to a console. Though it's quite simple, but has many features."
7
+ s.description = 'Library can be used to render your data to a console. Being quite simple it has many features.'
8
8
  s.authors = ['Max Rukomoynikov']
9
9
  s.email = 'rukomoynikov@gmail.com'
10
+ s.executables << 'tabled'
10
11
  s.files =
11
12
  Dir.chdir(File.expand_path(__dir__)) do
12
13
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
@@ -16,8 +17,8 @@ Gem::Specification.new do |s|
16
17
  'rubygems_mfa_required' => 'true' }
17
18
  s.license = 'MIT'
18
19
 
19
- s.add_development_dependency 'byebug'
20
- s.add_development_dependency 'jeweler'
20
+ s.add_dependency 'dry-cli'
21
+
21
22
  s.add_development_dependency 'rspec'
22
23
  s.add_development_dependency 'rubocop'
23
24
  s.add_development_dependency 'rubocop-rspec'
metadata CHANGED
@@ -1,37 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tabled
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Rukomoynikov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-23 00:00:00.000000000 Z
11
+ date: 2023-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: byebug
14
+ name: dry-cli
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: jeweler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
20
+ type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
@@ -94,10 +80,11 @@ dependencies:
94
80
  - - ">="
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
- description: Library can be used to render your data to a console. Though it's quite
98
- simple, but has many features.
83
+ description: Library can be used to render your data to a console. Being quite simple
84
+ it has many features.
99
85
  email: rukomoynikov@gmail.com
100
- executables: []
86
+ executables:
87
+ - tabled
101
88
  extensions: []
102
89
  extra_rdoc_files: []
103
90
  files:
@@ -110,9 +97,11 @@ files:
110
97
  - Gemfile
111
98
  - Gemfile.lock
112
99
  - README.md
100
+ - bin/tabled
113
101
  - demo.rb
114
102
  - lib/content_shaper.rb
115
103
  - lib/helpers.rb
104
+ - lib/parsers/csv_parser.rb
116
105
  - lib/tabled.rb
117
106
  - lib/template.rb
118
107
  - tabled.gemspec
@@ -137,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
126
  - !ruby/object:Gem::Version
138
127
  version: '0'
139
128
  requirements: []
140
- rubygems_version: 3.2.3
129
+ rubygems_version: 3.2.33
141
130
  signing_key:
142
131
  specification_version: 4
143
132
  summary: Library for rendering pretty tables in console