code_lister 0.1.1 → 0.1.2
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 +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +5 -0
- data/README.md +7 -7
- data/Rakefile +10 -2
- data/code_lister.gemspec +1 -1
- data/lib/code_lister/cli.rb +11 -6
- data/lib/code_lister/code_lister.rb +19 -6
- data/lib/code_lister/main.rb +7 -11
- data/lib/code_lister/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23c2c55f6c39b00ae60f077b1084bc9953b4f79a
|
4
|
+
data.tar.gz: 381925655a9501099259f6faddad7d97644fb180
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a216909fc91b708f6f400553275b24a46ab757a62c73959b337fdcba1c06709d5c51475a1d30a12561b6f92da118aff9c3cec0fc98f398288f451769f0271c4
|
7
|
+
data.tar.gz: c8c0b36b8c0331d7c2bf77b96306d2d803bf748e2dcb7df40a1d47f85dbf157f9d22c441fe69dfb2d442ab62bb015a86d0776526bc2144d6c6c134b0017411db
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -40,19 +40,19 @@ Usage/Synopsis:
|
|
40
40
|
|
41
41
|
```
|
42
42
|
Usage:
|
43
|
-
code_lister
|
43
|
+
code_lister
|
44
44
|
|
45
45
|
Options:
|
46
46
|
-b, [--base-dir=BASE_DIR] # Base directory
|
47
47
|
# Default: . (current directory)
|
48
48
|
-e, [--exts=one two three] # List of extensions to search for
|
49
|
-
-f, [--non-exts=one two three] # List of
|
50
|
-
-n, [--inc-words=one two three] # List of words to be included
|
51
|
-
-x, [--exc-words=one two three] # List of words to be excluded from the result
|
52
|
-
-i, [--ignore-case], [--no-ignore-case] #
|
53
|
-
# Default:
|
49
|
+
-f, [--non-exts=one two three] # List of files without extension to search for
|
50
|
+
-n, [--inc-words=one two three] # List of words in the filename to be included with the result if any
|
51
|
+
-x, [--exc-words=one two three] # List of words in the filename to be excluded from the result if any
|
52
|
+
-i, [--ignore-case], [--no-ignore-case] # Ignore the case in the input filename
|
53
|
+
# Default: --ignore-case
|
54
54
|
-r, [--recursive], [--no-recursive] # Search for files recursively
|
55
|
-
# Default:
|
55
|
+
# Default: --recursive
|
56
56
|
-v, [--version], [--no-version] # Display version information
|
57
57
|
|
58
58
|
List files by extensions, patterns, and simple criteria
|
data/Rakefile
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
Bundler::GemHelper.install_tasks
|
3
|
-
|
4
3
|
require "rspec/core/rake_task"
|
5
4
|
RSpec::Core::RakeTask.new(:spec)
|
6
5
|
|
7
6
|
task default: :spec
|
8
|
-
|
9
7
|
task :pry do
|
10
8
|
require "pry"
|
11
9
|
require "awesome_print"
|
@@ -14,3 +12,13 @@ task :pry do
|
|
14
12
|
ARGV.clear
|
15
13
|
Pry.start
|
16
14
|
end
|
15
|
+
|
16
|
+
require "rubocop/rake_task"
|
17
|
+
desc "Run RuboCop on the lib directory"
|
18
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
19
|
+
task.patterns = ["lib/**/*.rb"]
|
20
|
+
# only show the files with failures
|
21
|
+
task.formatters = ["files"]
|
22
|
+
# don't abort rake on failure
|
23
|
+
task.fail_on_error = false
|
24
|
+
end
|
data/code_lister.gemspec
CHANGED
@@ -31,5 +31,5 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_development_dependency "awesome_print", "~> 1.2"
|
32
32
|
spec.add_development_dependency "pry", "~> 0.9"
|
33
33
|
spec.add_development_dependency "fuubar", "~> 1.3"
|
34
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
34
|
+
spec.add_development_dependency "rubocop", "~> 0.23"
|
35
35
|
end
|
data/lib/code_lister/cli.rb
CHANGED
@@ -33,13 +33,13 @@ Options:
|
|
33
33
|
-b, [--base-dir=BASE_DIR] # Base directory
|
34
34
|
# Default: . (current directory)
|
35
35
|
-e, [--exts=one two three] # List of extensions to search for
|
36
|
-
-f, [--non-exts=one two three] # List of
|
37
|
-
-n, [--inc-words=one two three] # List of words to be included
|
38
|
-
-x, [--exc-words=one two three] # List of words to be excluded from the result
|
39
|
-
-i, [--ignore-case], [--no-ignore-case] #
|
40
|
-
# Default:
|
36
|
+
-f, [--non-exts=one two three] # List of files without extension to search for
|
37
|
+
-n, [--inc-words=one two three] # List of words in the filename to be included with the result if any
|
38
|
+
-x, [--exc-words=one two three] # List of words in the filename to be excluded from the result if any
|
39
|
+
-i, [--ignore-case], [--no-ignore-case] # Ignore the case in the input filename
|
40
|
+
# Default: --ignore_case
|
41
41
|
-r, [--recursive], [--no-recursive] # Search for files recursively
|
42
|
-
# Default:
|
42
|
+
# Default: --recursive
|
43
43
|
-v, [--version], [--no-version] # Display version information
|
44
44
|
|
45
45
|
List files by extensions, patterns, and simple criteria
|
@@ -50,3 +50,8 @@ List files by extensions, patterns, and simple criteria
|
|
50
50
|
default_task :usage
|
51
51
|
end
|
52
52
|
end
|
53
|
+
|
54
|
+
if __FILE__ == $PROGRAM_NAME
|
55
|
+
require_relative "../code_lister"
|
56
|
+
CodeLister::CLI.start(ARGV)
|
57
|
+
end
|
@@ -1,18 +1,24 @@
|
|
1
1
|
module CodeLister
|
2
2
|
CustomError = Class.new(StandardError)
|
3
3
|
class << self
|
4
|
-
# List files base on
|
4
|
+
# List files base on multiple simple criteria
|
5
|
+
#
|
6
|
+
# @param [Hash<Symbol>,<Object>] args argument hash
|
7
|
+
# @option args [String] :base_dir the starting directory
|
8
|
+
# @option args [Boolean] :recursive flag to indicate if the search will be done recursively
|
9
|
+
# @option args [Array<String>] :exts list of file extension to search for (without the dot)
|
10
|
+
# @option args [Array<String>] :non_exts list of file without any extension to search for
|
11
|
+
# @return [Array<String>] the list of file based on the matching criteria
|
5
12
|
def files(args = {})
|
6
13
|
opts = {
|
7
|
-
base_dir:
|
14
|
+
base_dir: Dir.pwd,
|
8
15
|
recursive: false,
|
9
|
-
exts:
|
10
|
-
non_exts:
|
16
|
+
exts: [],
|
17
|
+
non_exts: []
|
11
18
|
}.merge(args)
|
12
19
|
|
13
20
|
# always expand the path
|
14
21
|
base_dir = File.expand_path(opts[:base_dir])
|
15
|
-
# base_dir = opts[:base_dir]
|
16
22
|
fail CustomError, "The directory #{base_dir} is not valid or or not readable!" unless File.exist?(base_dir)
|
17
23
|
|
18
24
|
wildcard = opts[:recursive] ? "**" : ""
|
@@ -28,7 +34,14 @@ module CodeLister
|
|
28
34
|
(files_with_extension + files_without_extension).sort
|
29
35
|
end
|
30
36
|
|
31
|
-
# Filter out the list based on
|
37
|
+
# Filter out the list based on simple criteria
|
38
|
+
#
|
39
|
+
# @param [Array<String>] file_list the input file list
|
40
|
+
# @param [Hash<Symbol, Object>] args the option hash
|
41
|
+
# @option args [Array<String>] :inc_words list of words that must be match to be included in the result
|
42
|
+
# @option args [Array<String>] :exc_words list of words that will be excluded fromt the result
|
43
|
+
# @option args [Boolean] :ignore_case flag to indicate how the string comparision should be performed
|
44
|
+
# @return [Array<String>] the original list with the result filtered
|
32
45
|
def filter(file_list, args = {})
|
33
46
|
opts = {
|
34
47
|
inc_words: [],
|
data/lib/code_lister/main.rb
CHANGED
@@ -3,13 +3,9 @@ module CodeLister
|
|
3
3
|
class << self
|
4
4
|
def run(options = {})
|
5
5
|
args = default_options.merge(options)
|
6
|
-
|
7
6
|
files = CodeLister.files(args)
|
8
|
-
|
9
|
-
# Now filter out the list if any
|
10
7
|
inc_words = args.fetch(:inc_words, [])
|
11
8
|
exc_words = args.fetch(:exc_words, [])
|
12
|
-
|
13
9
|
files = CodeLister.filter(files, inc_words: inc_words,
|
14
10
|
exc_words: exc_words)
|
15
11
|
puts files
|
@@ -19,13 +15,13 @@ module CodeLister
|
|
19
15
|
private
|
20
16
|
|
21
17
|
def default_options
|
22
|
-
{base_dir:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
18
|
+
{ base_dir: Dir.pwd,
|
19
|
+
recursive: true,
|
20
|
+
ignore_case: true,
|
21
|
+
inc_words: [],
|
22
|
+
exc_words: [],
|
23
|
+
exts: [],
|
24
|
+
non_exts: [] }
|
29
25
|
end
|
30
26
|
end
|
31
27
|
end
|
data/lib/code_lister/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: code_lister
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Burin Choomnuan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0.
|
145
|
+
version: '0.23'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0.
|
152
|
+
version: '0.23'
|
153
153
|
description: List/filter files similar to 'find then grep' command in Linux/Unix based
|
154
154
|
system
|
155
155
|
email:
|