lsd-rb 0.1.0 → 0.1.1

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: db20983b3ee9507cf1db9a2c19d0bbfb639b556d42d006f1617f45072bac6d1b
4
- data.tar.gz: 4c64aa7c2d32343d0893229f8d9f5db6cfb455c199da820636d1aef92cd88728
3
+ metadata.gz: b1a3fa99d422d28418ea21937ed061a7a1cdfa80ae303773a438bd350f4490a4
4
+ data.tar.gz: d7ca61877fdba84dd3bcc4cd267aacb638556f58348f9cbc6d381c1e76037898
5
5
  SHA512:
6
- metadata.gz: 3c6f4d86f2e406afc083bfea5c34898e76f6e633cc619ad888f7a323cdaf652dadae4938bdb7d295e4ecf683f65fcd41ebf87699721d8a0a911932afdca43996
7
- data.tar.gz: 2801208c3964bc84feed96b04402c14158206a9866e10e0e17868df7e22af6e36ad96a36be516407f681d4af8b53ee1eff3a48e3cb2277a57876e08dffecc5c7
6
+ metadata.gz: f58e6b2b214f75e536a872e672d1fd0851262943a79d897d878387d5e4472e7b5adedb3ea1e832ce3d1386fecb31f5083e83d3739aed320febe0dcb15888e7e8
7
+ data.tar.gz: 04c8a55faf3a230ace395359ac9d8444e7f96096c6ac92b2adba779432eb5b030f7bc33c6a16dcdd1fd27aca341a2a1cb2f0d96e0d9162d0602716b8ca37e5dc
data/README.md CHANGED
@@ -18,13 +18,13 @@ A modern alternative to the `ls` command inspired by Nushell's output, written i
18
18
  1. Install gem (recommended)
19
19
 
20
20
  ```bash
21
- gem install lsd
21
+ gem install lsd-rb
22
22
  ```
23
23
 
24
24
  2. Use the installation script
25
25
 
26
26
  ```bash
27
- git clone https://github.com/your-username/lsd
27
+ git clone https://github.com/aristotelesbr/lsd
28
28
  cd lsd
29
29
  ./install.sh
30
30
  ```
@@ -35,13 +35,17 @@ The installation script will:
35
35
 
36
36
  1. Check if Ruby is installed (>= 3.0)
37
37
  2. Install necessary dependencies
38
+
38
39
  ```bash
39
- $ bundle install
40
+ bundle install
40
41
  ```
42
+
41
43
  3. Compile the program if needed
44
+
42
45
  ```bash
43
- $ chmod +x bin/lsd
46
+ chmod +x bin/lsd
44
47
  ```
48
+
45
49
  4. Move the binary to `/usr/local/bin`
46
50
 
47
51
  ## Usage
@@ -85,27 +89,51 @@ The index column (#) is always shown.
85
89
  └── README.md # This documentation
86
90
  ```
87
91
 
92
+ ## Development
93
+
94
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
95
+
96
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
97
+
88
98
  ## Contributing
89
99
 
100
+ We welcome contributions to LSD! Here's how you can help:
101
+
90
102
  1. Fork the project
91
- 2. Create your feature branch (`git checkout -b feature/new-feature`)
92
- 3. Commit your changes (`git commit -am 'Add new feature'`)
93
- 4. Push to the branch (`git push origin feature/new-feature`)
94
- 5. Create a Pull Request
103
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
104
+ 3. Make your changes
105
+ 4. Run the tests to ensure everything passes (`bundle exec rake`)
106
+ 5. Commit your changes (`git commit -am 'Add amazing feature'`)
107
+ 6. Push to the branch (`git push origin feature/amazing-feature`)
108
+ 7. Create a new Pull Request
95
109
 
96
- ## License
110
+ ### Code Style
97
111
 
98
- This project is licensed under the MIT License - see the LICENSE file for details.
112
+ This project follows [Ruby Standard Style](https://github.com/standardrb/standard). All pull requests must pass style checks before they can be merged. You can automatically fix most style issues with:
99
113
 
100
- ## Development
114
+ ```bash
115
+ bundle exec rake standard:fix
116
+ ```
101
117
 
102
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
118
+ ### Test Coverage
103
119
 
104
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
120
+ We maintain high test coverage in this project. All new features or bug fixes should include tests. Current test coverage is 90%.
105
121
 
106
- ## Contributing
122
+ To run the test suite with coverage report:
123
+
124
+ ```bash
125
+ bundle exec rake
126
+ ```
127
+
128
+ The coverage report will be generated in the `coverage` directory.
129
+
130
+ ### Pull Request Process
107
131
 
108
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/lsd. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/lsd/blob/master/CODE_OF_CONDUCT.md).
132
+ 1. Ensure your code follows the project's style guide (Ruby Standard)
133
+ 2. Update the CHANGELOG.md with details of your changes
134
+ 3. Include tests for your changes
135
+ 4. Update documentation if needed
136
+ 5. The PR template will guide you through the required information
109
137
 
110
138
  ## License
111
139
 
@@ -113,4 +141,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
113
141
 
114
142
  ## Code of Conduct
115
143
 
116
- Everyone interacting in the Lsd project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/lsd/blob/master/CODE_OF_CONDUCT.md).
144
+ Everyone interacting in the LSD project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/aristotelesbr/lsd/blob/master/CODE_OF_CONDUCT.md).
data/bin/setup CHANGED
@@ -5,4 +5,4 @@ set -vx
5
5
 
6
6
  bundle install
7
7
 
8
- # Do any other automated setup that you need to do here
8
+ bundle exec rake
@@ -1,23 +1,18 @@
1
- # frozen_string_literal: true
2
-
3
- require "terminal-table"
4
- require "colorize"
5
-
6
- require_relative "entry"
7
- require_relative "table_formatter"
8
-
9
1
  module Lsd
10
2
  module DirectoryLister
11
- class Error < StandardError; end
3
+ Error = Class.new(StandardError)
4
+
5
+ FILE_PRIORITY = 1
6
+ DIRECTORY_PRIORITY = 0
12
7
 
13
8
  def self.list(path = ".")
14
9
  entries = Dir.entries(path)
15
- .reject { |e| e.start_with?(".") }
16
- .sort_by { |name| [File.directory?(name) ? 0 : 1, name.downcase] }
10
+ .reject { |entry| entry.start_with?(".") }
11
+ .sort_by { |name| [File.directory?(name) ? DIRECTORY_PRIORITY : FILE_PRIORITY, name.downcase] }
17
12
  .map { |name| Entry.new(name) }
18
13
 
19
14
  puts TableFormatter.format(entries)
20
- rescue Errno::EACCES => e
15
+ rescue Errno::EACCES
21
16
  raise Error, "Permission denied: #{path}"
22
17
  end
23
18
  end
data/lib/lsd/entry.rb CHANGED
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Lsd
4
2
  class Entry
5
3
  attr_reader :stat
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Lsd
4
2
  class TableFormatter
5
3
  MAX_NAME_LENGTH = 30
data/lib/lsd/version.rb CHANGED
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Lsd
4
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
5
3
  end
data/lib/lsd.rb CHANGED
@@ -1,10 +1,13 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "lsd/version"
4
- require_relative "lsd/directory_lister"
5
- require_relative "lsd/entry"
6
- require_relative "lsd/table_formatter"
1
+ require "terminal-table"
2
+ require "colorize"
3
+ require "fileutils"
4
+ require "tmpdir"
7
5
 
8
6
  module Lsd
9
7
  class Error < StandardError; end
8
+
9
+ require_relative "lsd/version"
10
+ require_relative "lsd/directory_lister"
11
+ require_relative "lsd/entry"
12
+ require_relative "lsd/table_formatter"
10
13
  end
metadata CHANGED
@@ -1,112 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lsd-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aristóteles Coutinho
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 2025-01-27 00:00:00.000000000 Z
11
+ date: 2025-03-04 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
- name: colorize
14
+ name: optparse
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - "~>"
17
18
  - !ruby/object:Gem::Version
18
- version: '1.1'
19
+ version: 0.6.0
19
20
  type: :runtime
20
21
  prerelease: false
21
22
  version_requirements: !ruby/object:Gem::Requirement
22
23
  requirements:
23
24
  - - "~>"
24
25
  - !ruby/object:Gem::Version
25
- version: '1.1'
26
+ version: 0.6.0
26
27
  - !ruby/object:Gem::Dependency
27
- name: terminal-table
28
+ name: colorize
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: '3.0'
33
+ version: '1.1'
33
34
  type: :runtime
34
35
  prerelease: false
35
36
  version_requirements: !ruby/object:Gem::Requirement
36
37
  requirements:
37
38
  - - "~>"
38
39
  - !ruby/object:Gem::Version
39
- version: '3.0'
40
+ version: '1.1'
40
41
  - !ruby/object:Gem::Dependency
41
- name: optparse
42
+ name: terminal-table
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - "~>"
45
46
  - !ruby/object:Gem::Version
46
- version: 0.6.0
47
+ version: '3.0'
47
48
  type: :runtime
48
49
  prerelease: false
49
50
  version_requirements: !ruby/object:Gem::Requirement
50
51
  requirements:
51
52
  - - "~>"
52
53
  - !ruby/object:Gem::Version
53
- version: 0.6.0
54
+ version: '3.0'
54
55
  - !ruby/object:Gem::Dependency
55
56
  name: bundler
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
- - - "~>"
59
+ - - ">="
59
60
  - !ruby/object:Gem::Version
60
- version: '2.0'
61
+ version: '0'
61
62
  type: :development
62
63
  prerelease: false
63
64
  version_requirements: !ruby/object:Gem::Requirement
64
65
  requirements:
65
- - - "~>"
66
+ - - ">="
66
67
  - !ruby/object:Gem::Version
67
- version: '2.0'
68
+ version: '0'
68
69
  - !ruby/object:Gem::Dependency
69
70
  name: rake
70
71
  requirement: !ruby/object:Gem::Requirement
71
72
  requirements:
72
- - - "~>"
73
+ - - ">="
73
74
  - !ruby/object:Gem::Version
74
- version: '13.0'
75
+ version: '0'
75
76
  type: :development
76
77
  prerelease: false
77
78
  version_requirements: !ruby/object:Gem::Requirement
78
79
  requirements:
79
- - - "~>"
80
+ - - ">="
80
81
  - !ruby/object:Gem::Version
81
- version: '13.0'
82
+ version: '0'
82
83
  - !ruby/object:Gem::Dependency
83
84
  name: rspec
84
85
  requirement: !ruby/object:Gem::Requirement
85
86
  requirements:
86
- - - "~>"
87
+ - - ">="
87
88
  - !ruby/object:Gem::Version
88
- version: '3.0'
89
+ version: '0'
89
90
  type: :development
90
91
  prerelease: false
91
92
  version_requirements: !ruby/object:Gem::Requirement
92
93
  requirements:
93
- - - "~>"
94
+ - - ">="
94
95
  - !ruby/object:Gem::Version
95
- version: '3.0'
96
+ version: '0'
96
97
  - !ruby/object:Gem::Dependency
97
98
  name: standard
98
99
  requirement: !ruby/object:Gem::Requirement
99
100
  requirements:
100
- - - "~>"
101
+ - - ">="
101
102
  - !ruby/object:Gem::Version
102
- version: '1.3'
103
+ version: '0'
103
104
  type: :development
104
105
  prerelease: false
105
106
  version_requirements: !ruby/object:Gem::Requirement
106
107
  requirements:
107
- - - "~>"
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: standard-custom
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: standard-performance
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: simplecov
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov-json
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
108
165
  - !ruby/object:Gem::Version
109
- version: '1.3'
166
+ version: '0'
110
167
  description: List directory contents with a modern, colorful interface
111
168
  email:
112
169
  - contato@aristoteles.dev
@@ -133,6 +190,7 @@ metadata:
133
190
  source_code_uri: https://github.com/aristotelesbr/lsd
134
191
  changelog_uri: https://github.com/aristotelesbr/lsd/blob/main/CHANGELOG.md
135
192
  rubygems_mfa_required: 'true'
193
+ post_install_message:
136
194
  rdoc_options: []
137
195
  require_paths:
138
196
  - lib
@@ -147,7 +205,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
205
  - !ruby/object:Gem::Version
148
206
  version: '0'
149
207
  requirements: []
150
- rubygems_version: 3.6.2
208
+ rubygems_version: 3.5.22
209
+ signing_key:
151
210
  specification_version: 4
152
211
  summary: A modern replacement for ls command
153
212
  test_files: []