colorls 1.4.3.pre.821 → 1.4.4.pre.837

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: fb0f04e149971cc9d610cb08f7364bec9f3b63187d976b304afbec9bcb8afdcc
4
- data.tar.gz: 29543b60604940bafaedffb592eb3b9311c39a2aadd0616bb6cf73b4f43957cc
3
+ metadata.gz: 8b424cb09f3f8d4f46564313c314eac175b346ba97ca2da148dd313f553bc404
4
+ data.tar.gz: 315afc8e524855f08c9fdc419fd670ecae8c1c48fd768659e18f72193a4ce57b
5
5
  SHA512:
6
- metadata.gz: a661090a205b799ed4242a574cbb628c9b0bb6041f69cf424b395716d3dfbbb9c191755a13741f3c7007d543d9ec545deda7cbcccc7652e33d93a5bc7b9aaa51
7
- data.tar.gz: 6fb59bc86a79ea97db9f9129dcbe74357a9a8c55106fc6f9bd4195af400b0451458ca855fea53946900e12a87a899abd6d0b33f5657b6742245b7e570f4d42f7
6
+ metadata.gz: 503219ef596b7aac7ebb6d0c38127ebe8b5d6bba12d08a64ef963a016aad60074706e41d9cc270384a56fa985b6d1fb44f352c3889631dbbc42d2bf98297be58
7
+ data.tar.gz: 3d732a88f8f0b6f12fc545fa92b5397d38fe1ea69a09f341f9f4ec9fef15b62a6a2a8e6daafac6c27708ae73ba58d9900342c2ad4af23adca86b11842cd875cc
@@ -63,6 +63,7 @@ Gem::Specification.new do |spec|
63
63
  spec.add_runtime_dependency 'filesize', '~> 0'
64
64
  spec.add_runtime_dependency 'manpages', '~> 0'
65
65
  spec.add_runtime_dependency 'rainbow', '>= 2.2', '< 4.0'
66
+ spec.add_runtime_dependency 'unicode-display_width', '~> 1.7'
66
67
 
67
68
  spec.add_development_dependency 'bundler', '~> 2.0'
68
69
  spec.add_development_dependency 'codecov', '~> 0.1'
@@ -72,10 +73,10 @@ Gem::Specification.new do |spec|
72
73
  spec.add_development_dependency 'ronn', '~> 0'
73
74
  spec.add_development_dependency 'rspec', '~> 3.7'
74
75
  spec.add_development_dependency 'rspec-its', '~> 1.2'
75
- spec.add_development_dependency 'rubocop', '~> 1.3.0'
76
+ spec.add_development_dependency 'rubocop', '~> 1.5.0'
76
77
  spec.add_development_dependency 'rubocop-performance', '~> 1.9.0'
77
78
  spec.add_development_dependency 'rubocop-rspec', '~> 2.0'
78
79
  spec.add_development_dependency 'rubygems-tasks', '~> 0'
79
- spec.add_development_dependency 'simplecov', '~> 0.19.0'
80
+ spec.add_development_dependency 'simplecov', '~> 0.20.0'
80
81
  end
81
82
  # rubocop:enable Metrics/BlockLength
@@ -7,6 +7,7 @@ require 'filesize'
7
7
  require 'io/console'
8
8
  require 'rainbow/ext/string'
9
9
  require 'clocale'
10
+ require 'unicode/display_width'
10
11
 
11
12
  require 'colorls/core'
12
13
  require 'colorls/fileinfo'
@@ -11,7 +11,7 @@ module ColorLS
11
11
  class Core
12
12
  def initialize(input, all: false, report: false, sort: false, show: false,
13
13
  mode: nil, git_status: false, almost_all: false, colors: [], group: nil,
14
- reverse: false, hyperlink: false, tree_depth: nil)
14
+ reverse: false, hyperlink: false, tree_depth: nil, show_group: true, show_user: true)
15
15
  @input = (+input).force_encoding(ColorLS.file_encoding)
16
16
  @count = {folders: 0, recognized_files: 0, unrecognized_files: 0}
17
17
  @all = all
@@ -23,7 +23,7 @@ module ColorLS
23
23
  @group = group
24
24
  @show = show
25
25
  @one_per_line = mode == :one_per_line
26
- @long = mode == :long
26
+ init_long_format(mode,show_group,show_user)
27
27
  @tree = {mode: mode == :tree, depth: tree_depth}
28
28
  @horizontal = mode == :horizontal
29
29
  process_git_status_details(git_status)
@@ -75,11 +75,17 @@ module ColorLS
75
75
  end
76
76
  end
77
77
 
78
+ def init_long_format(mode,show_group,show_user)
79
+ @long = mode == :long
80
+ @show_group = show_group
81
+ @show_user = show_user
82
+ end
83
+
78
84
  # how much characters an item occupies besides its name
79
85
  CHARS_PER_ITEM = 12
80
86
 
81
87
  def item_widths
82
- @contents.map { |item| item.show.size + CHARS_PER_ITEM }
88
+ @contents.map { |item| Unicode::DisplayWidth.of(item.show) + CHARS_PER_ITEM }
83
89
  end
84
90
 
85
91
  def init_contents(path)
@@ -210,7 +216,7 @@ module ColorLS
210
216
  end
211
217
 
212
218
  def size_info(filesize)
213
- size = Filesize.from("#{filesize} B").pretty.split(' ')
219
+ size = Filesize.new(filesize).pretty.split
214
220
  size = "#{size[0][0..-4].rjust(4,' ')} #{size[1].ljust(3,' ')}"
215
221
  return size.colorize(@colors[:file_large]) if filesize >= 512 * 1024 ** 2
216
222
  return size.colorize(@colors[:file_medium]) if filesize >= 128 * 1024 ** 2
@@ -274,8 +280,11 @@ module ColorLS
274
280
 
275
281
  links = content.nlink.to_s.rjust(@linklength)
276
282
 
277
- [mode_info(content.stats), links, user_info(content), group_info(content.group),
278
- size_info(content.size), mtime_info(content.mtime)].join(' ')
283
+ line_array = [mode_info(content.stats), links]
284
+ line_array.push user_info(content) if @show_user
285
+ line_array.push group_info(content.group) if @show_group
286
+ line_array.concat [size_info(content.size), mtime_info(content.mtime)]
287
+ line_array.join(' ')
279
288
  end
280
289
 
281
290
  def symlink_info(content)
@@ -314,7 +323,7 @@ module ColorLS
314
323
  entry = fetch_string(@input, content, *options(content))
315
324
  line << ' ' * padding
316
325
  line << ' ' << entry.encode(Encoding.default_external, undef: :replace)
317
- padding = widths[i] - content.show.length - CHARS_PER_ITEM
326
+ padding = widths[i] - Unicode::DisplayWidth.of(content.show) - CHARS_PER_ITEM
318
327
  end
319
328
  print line << "\n"
320
329
  end
@@ -10,19 +10,7 @@ module ColorLS
10
10
  @args = args
11
11
  @light_colors = false
12
12
 
13
- @opts = {
14
- show: false,
15
- sort: true,
16
- reverse: false,
17
- group: nil,
18
- mode: STDOUT.tty? ? :vertical : :one_per_line, # rubocop:disable Style/GlobalStdStream
19
- all: false,
20
- almost_all: false,
21
- report: false,
22
- git_status: false,
23
- colors: [],
24
- tree_depth: 3
25
- }
13
+ @opts = default_opts
26
14
 
27
15
  parse_options
28
16
 
@@ -81,6 +69,24 @@ module ColorLS
81
69
  warn "WARN: #{e}, check your locale settings"
82
70
  end
83
71
 
72
+ def default_opts
73
+ {
74
+ show: false,
75
+ sort: true,
76
+ reverse: false,
77
+ group: nil,
78
+ mode: STDOUT.tty? ? :vertical : :one_per_line, # rubocop:disable Style/GlobalStdStream
79
+ all: false,
80
+ almost_all: false,
81
+ report: false,
82
+ git_status: false,
83
+ colors: [],
84
+ tree_depth: 3,
85
+ show_group: true,
86
+ show_user: true
87
+ }
88
+ end
89
+
84
90
  def add_sort_options(options)
85
91
  options.separator ''
86
92
  options.separator 'sorting options:'
@@ -126,8 +132,7 @@ module ColorLS
126
132
  when 'single-column' then @opts[:mode] = :one_per_line
127
133
  end
128
134
  end
129
- options.on('-1', 'list one file per line') { @opts[:mode] = :one_per_line }
130
- options.on('-l', '--long', 'use a long listing format') { @opts[:mode] = :long }
135
+ options.on('-1', 'list one file per line') { @opts[:mode] = :one_per_line }
131
136
  options.on('--tree=[DEPTH]', Integer, 'shows tree view of the directory') do |depth|
132
137
  @opts[:tree_depth] = depth
133
138
  @opts[:mode] = :tree
@@ -136,6 +141,19 @@ module ColorLS
136
141
  options.on('-C', 'list entries by columns instead of by lines') { @opts[:mode] = :vertical }
137
142
  end
138
143
 
144
+ def add_long_style_options(options)
145
+ options.on('-l', '--long', 'use a long listing format') { @opts[:mode] = :long }
146
+ options.on('-o', 'use a long listing format without group information') do
147
+ @opts[:mode] = :long
148
+ @opts[:show_group] = false
149
+ end
150
+ options.on('-g', 'use a long listing format without owner information') do
151
+ @opts[:mode] = :long
152
+ @opts[:show_user] = false
153
+ end
154
+ options.on('-G', '--no-group', 'show no group information in a long listing') { @opts[:show_group] = false }
155
+ end
156
+
139
157
  def add_general_options(options)
140
158
  options.separator ''
141
159
  options.separator 'general options:'
@@ -196,17 +214,22 @@ module ColorLS
196
214
  EXAMPLES
197
215
  end
198
216
 
217
+ def assign_each_options(opts)
218
+ add_common_options(opts)
219
+ add_format_options(opts)
220
+ add_long_style_options(opts)
221
+ add_sort_options(opts)
222
+ add_compatiblity_options(opts)
223
+ add_general_options(opts)
224
+ add_help_option(opts)
225
+ end
226
+
199
227
  def parse_options
200
228
  @parser = OptionParser.new do |opts|
201
229
  opts.banner = 'Usage: colorls [OPTION]... [FILE]...'
202
230
  opts.separator ''
203
231
 
204
- add_common_options(opts)
205
- add_format_options(opts)
206
- add_sort_options(opts)
207
- add_compatiblity_options(opts)
208
- add_general_options(opts)
209
- add_help_option(opts)
232
+ assign_each_options(opts)
210
233
 
211
234
  opts.on_tail('--version', 'show version') do
212
235
  puts ColorLS::VERSION
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ColorLS
4
- VERSION = '1.4.2'
4
+ VERSION = '1.4.3'
5
5
  end
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "COLORLS" "1" "October 2020" "colorls 1.4.2" "colorls Manual"
4
+ .TH "COLORLS" "1" "November 2020" "colorls 1.4.2" "colorls Manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBcolorls\fR \- list directory contents with colors and icons
@@ -55,10 +55,6 @@ use format: across (\-x), horizontal (\-x), long (\-l), single\-column (\-1), ve
55
55
  list one file per line
56
56
  .
57
57
  .TP
58
- \fB\-l\fR, \fB\-\-long\fR
59
- use a long listing format
60
- .
61
- .TP
62
58
  \fB\-\-tree\fR
63
59
  shows tree view of the directory
64
60
  .
@@ -71,6 +67,22 @@ list entries by lines instead of by columns
71
67
  list entries by columns instead of by lines
72
68
  .
73
69
  .TP
70
+ \fB\-l\fR, \fB\-\-long\fR
71
+ use a long listing format
72
+ .
73
+ .TP
74
+ \fB\-o\fR
75
+ use a long listing format without group information
76
+ .
77
+ .TP
78
+ \fB\-g\fR
79
+ use a long listing format without owner information
80
+ .
81
+ .TP
82
+ \fB\-G\fR, \fB\-\-no\-group\fR
83
+ show no group information in a long listing
84
+ .
85
+ .TP
74
86
  \fB\-\-sd\fR, \fB\-\-sort\-dirs\fR, \fB\-\-group\-directories\-first\fR
75
87
  sort directories first
76
88
  .
@@ -17,11 +17,15 @@ _arguments -s -S \
17
17
  "--report[show brief report]" \
18
18
  "--format[use format: across (-x), horizontal (-x), long (-l), single-column (-1), vertical (-C)]" \
19
19
  "-1[list one file per line]" \
20
- "-l[use a long listing format]" \
21
- "--long[use a long listing format]" \
22
20
  "--tree[shows tree view of the directory]" \
23
21
  "-x[list entries by lines instead of by columns]" \
24
22
  "-C[list entries by columns instead of by lines]" \
23
+ "-l[use a long listing format]" \
24
+ "--long[use a long listing format]" \
25
+ "-o[use a long listing format without group information]" \
26
+ "-g[use a long listing format without owner information]" \
27
+ "-G[show no group information in a long listing]" \
28
+ "--no-group[show no group information in a long listing]" \
25
29
  "--sd[sort directories first]" \
26
30
  "--sort-dirs[sort directories first]" \
27
31
  "--group-directories-first[sort directories first]" \
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colorls
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.3.pre.821
4
+ version: 1.4.4.pre.837
5
5
  platform: ruby
6
6
  authors:
7
7
  - Athitya Kumar
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-17 00:00:00.000000000 Z
11
+ date: 2020-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clocale
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - "<"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '4.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: unicode-display_width
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.7'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.7'
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: bundler
77
91
  requirement: !ruby/object:Gem::Requirement
@@ -190,14 +204,14 @@ dependencies:
190
204
  requirements:
191
205
  - - "~>"
192
206
  - !ruby/object:Gem::Version
193
- version: 1.3.0
207
+ version: 1.5.0
194
208
  type: :development
195
209
  prerelease: false
196
210
  version_requirements: !ruby/object:Gem::Requirement
197
211
  requirements:
198
212
  - - "~>"
199
213
  - !ruby/object:Gem::Version
200
- version: 1.3.0
214
+ version: 1.5.0
201
215
  - !ruby/object:Gem::Dependency
202
216
  name: rubocop-performance
203
217
  requirement: !ruby/object:Gem::Requirement
@@ -246,14 +260,14 @@ dependencies:
246
260
  requirements:
247
261
  - - "~>"
248
262
  - !ruby/object:Gem::Version
249
- version: 0.19.0
263
+ version: 0.20.0
250
264
  type: :development
251
265
  prerelease: false
252
266
  version_requirements: !ruby/object:Gem::Requirement
253
267
  requirements:
254
268
  - - "~>"
255
269
  - !ruby/object:Gem::Version
256
- version: 0.19.0
270
+ version: 0.20.0
257
271
  description:
258
272
  email:
259
273
  - athityakumar@gmail.com