tty-prompt-files 0.1.2 → 1.0.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: 03ad940e0f61e4ec12aa0a7e6ff3129032ab6f8a4b58b732a36cd6c37f733270
4
- data.tar.gz: c4697eb80dcfde2842b315d86d7e01648be2f0728a7d10256e09da88711b9517
3
+ metadata.gz: decb98e79f33422b8f80a7d897aab213616a4be58386bd684051f098b19df478
4
+ data.tar.gz: 16b548ace6a793787cde6fb51038da64e60599f0d05ddd60ab83b2177cdb6ed2
5
5
  SHA512:
6
- metadata.gz: bad1f62287c1a86878545bd02a6777052de7c93ec6ad406597599a04c549d8edf6e7b5966cc2750a14307736fcad5e02cd7f160617aa7349459e24f3c3d7c818
7
- data.tar.gz: 332763db0a964bc461701122b84bf82f71ea015317c982c7031690fb88a72f4f2d7bfb611ba9a79126c81ddc666e754e914d636de108dc5c0ad7ab519a0ae33a
6
+ metadata.gz: df871fd53f0af611e845350fc6f5da19a081cc7bf554e5086785ffa3bf9f69b9f3d1de9471ed23d429be5a8239eacfa92f17c626583b4a2302a46567a4f06ff7
7
+ data.tar.gz: df13e2ed0120ff6043b5130f4dc5aceae40944ff427025f8a88790c009d076780b405b969b149d174fe95ac8f70ef1676f7c6b8721955a6d64f0c443a8c6bb20
data/Gemfile CHANGED
@@ -4,13 +4,3 @@ source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in tty-prompt-files.gemspec
6
6
  gemspec
7
-
8
- gem "rake", "~> 13.0"
9
-
10
- group :test do
11
- gem "rspec", "~> 3.0"
12
- end
13
-
14
- group :development do
15
- gem "pry", "~> 0.14.1"
16
- end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tty-prompt-files (0.1.1)
4
+ tty-prompt-files (1.0.0)
5
5
  tty-prompt (~> 0.23.1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -9,6 +9,8 @@ Be careful to use library before first major version. It does not support backwa
9
9
  ## Usage
10
10
 
11
11
  ```rb
12
+ require 'tty-prompt-files'
13
+
12
14
  prompt = TTY::Prompt.new
13
15
 
14
16
  prompt.select_element_from_file_system
@@ -16,15 +18,17 @@ prompt.select_element_from_file_system
16
18
 
17
19
  After element is selected, output will be a element full path.
18
20
 
19
- `select_element_from_file_system` has 3 parameters:
21
+ `select_element_from_file_system` has 5 parameters:
20
22
 
21
23
  ```rb
22
- prompt.select_element_from_file_system(pattern: "*", path: ".", text: "")
24
+ prompt.select_element_from_file_system(text: "", pattern: "*", path: ".", multi_select: false, **options)
23
25
  ```
24
26
 
25
- `pattern` is determining for what file will be output based on matching the pattern. If you want to display hidden files, use `"{.[^\.]*,*}"` pattern.\
26
- `path` is determining path of the directory, can be relative or absolute. **Note**: relative **should not** end with `/`.\
27
- `text` is text user will see along with elements.
27
+ `text` is text user will see along with elements. By default: `""`.\
28
+ `pattern` is determining for what file will be output based on matching the pattern. If you want to display hidden files, use `"{.[^\.]*,*}"` pattern. By default: `"*"`.\
29
+ `path` is determining path of the directory, can be relative or absolute. By default: `"."`.\
30
+ `multi_select` refers to original [API](https://github.com/piotrmurach/tty-prompt?tab=readme-ov-file#263-multi_select). By default: `false`.
31
+ `**options` you can add any params from original [API](https://github.com/piotrmurach/tty-prompt?tab=readme-ov-file#2621-cycle). No default value.\
28
32
 
29
33
  ## Contributing
30
34
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module TTY
4
4
  module Files
5
- VERSION = "0.1.2"
5
+ VERSION = "1.0.0"
6
6
  end
7
7
  end
data/lib/tty/files.rb CHANGED
@@ -4,22 +4,34 @@ require_relative "files/version"
4
4
 
5
5
  module TTY
6
6
  class Prompt
7
- def files(pattern: "*", path: ".", text: "", options: {})
7
+ def select_element_from_file_system(text: "", pattern: "*", path: ".", multi_select: false, **options)
8
8
  pathnames = get_pathnames_from_path(pattern, path)
9
9
 
10
10
  file_names = pathnames.map do |pathname|
11
11
  pathname.basename.to_s
12
12
  end
13
13
 
14
- selected_element = self.select(text, file_names)
14
+ unless multi_select
15
+ selected_element = self.select(text, file_names, **options)
15
16
 
16
- get_selected_element_full_path(pathnames, selected_element)
17
+ return get_selected_element_full_path(pathnames, selected_element)
18
+ end
19
+
20
+ selected_elements = self.multi_select(text, file_names, **options)
21
+
22
+ selected_elements.map do |selected_element|
23
+ get_selected_element_full_path(pathnames, selected_element)
24
+ end
17
25
  end
18
26
 
19
27
  private
20
28
 
21
29
  def get_pathnames_from_path(pattern, path)
22
- pathnames = Pathname.glob(path + "/" + pattern)
30
+ if path[-1] != "/"
31
+ pathnames = Pathname.glob(path + "/" + pattern)
32
+ else
33
+ pathnames = Pathname.glob(path + pattern)
34
+ end
23
35
 
24
36
  pathnames.map(&:realpath)
25
37
  end
@@ -29,4 +29,8 @@ Gem::Specification.new do |spec|
29
29
  spec.require_paths = ["lib"]
30
30
 
31
31
  spec.add_dependency "tty-prompt", "~> 0.23.1"
32
+
33
+ spec.add_development_dependency "rake", "~> 13.0"
34
+ spec.add_development_dependency "rspec", "~> 3.0"
35
+ spec.add_development_dependency "pry", "~> 0.14.1"
32
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tty-prompt-files
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Set27
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-22 00:00:00.000000000 Z
11
+ date: 2024-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-prompt
@@ -24,6 +24,48 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.23.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '13.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '13.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.14.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.14.1
27
69
  description:
28
70
  email:
29
71
  - matvei.traz@gmail.com